<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>blog ViolentCoding &#187; Silverlight</title>
	<atom:link href="http://violentcoding.com/blog/tag/silverlight/feed" rel="self" type="application/rss+xml" />
	<link>http://violentcoding.com/blog</link>
	<description>for more violent coder</description>
	<lastBuildDate>Tue, 18 Aug 2009 06:11:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>[Silverlight]Silverlight 3 betaだとローカルでうんたら</title>
		<link>http://violentcoding.com/blog/2009/04/09/archives/557</link>
		<comments>http://violentcoding.com/blog/2009/04/09/archives/557#comments</comments>
		<pubDate>Wed, 08 Apr 2009 17:51:46 +0000</pubDate>
		<dc:creator>e_s_jp</dc:creator>
				<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://violentcoding.com/blog/?p=557</guid>
		<description><![CDATA[
「Silverlight 3 betaだとブラウザで表示しているSilverlightのコンテンツをローカル（OutOfBrowser）でも使えるよ」の仕組みを適当に調べてみた。

&#160;

もろもろの環境作って [...]]]></description>
			<content:encoded><![CDATA[<p>
「Silverlight 3 betaだとブラウザで表示しているSilverlightのコンテンツをローカル（OutOfBrowser）でも使えるよ」の仕組みを適当に調べてみた。
</p>
<p>&nbsp;</p>
<p>
もろもろの環境作って、以下のSilverlightのサイトにある「#11: Out-of-browser Experiences」ソースをダウンロードし、 サンプルを ビルドして試した。
</p>
<blockquote><p>
<strong>Videos : The Official Microsoft Silverlight Site</strong><br />
<a href="http://silverlight.net/learn/videocat.aspx?cat=12#sl3">http://silverlight.net/learn/videocat.aspx?cat=12#sl3</a>
</p></blockquote>
<p>&nbsp;</p>
<p>
実行してみると、「MyTasks」というSilverlightコンテンツがlocalhostで立ち上がって、Silverlight上で右クリックしたらこんな感じ。「Install MyTasks onto this computer&#8230;」を選んでみた。
</p>
<p><img src="http://violentcoding.com/blog/wp-content/uploads/2009/04/outofbowse01.png" alt="outofbowse01" title="outofbowse01" width="487" height="344" class="aligncenter size-full wp-image-580" /></p>
<p>
次に、ダイアログがでてきて、「OK」するとローカルにアプリとして展開、自動でローカルアプリになったSilverlightのコンテンツが普通のEXEウィンドウで立ち上がった。<br />
<img src="http://violentcoding.com/blog/wp-content/uploads/2009/04/outofbowse02.png" alt="outofbowse02" title="outofbowse02" width="480" height="219" class="aligncenter size-full wp-image-582" />
</p>
<p>&nbsp;</p>
<p>
んで、ウィンドウのタイトルバーに「MyTasks」ってあって、右クリックしてみると、今度は「Remove this application&#8230;」のメニューになってる。<br />
<a href="http://violentcoding.com/blog/wp-content/uploads/2009/04/outofbowse03.png"><img src="http://violentcoding.com/blog/wp-content/uploads/2009/04/outofbowse03_0.png" alt="outofbowse03_0" title="outofbowse03_0" width="640" height="484" class="aligncenter size-full wp-image-586" /></a>
</p>
<p>&nbsp;</p>
<p>
ブラウザのSilverlightもまだ生きてて、こっちも「Remove this application&#8230;」になってた。かしこい。<br />
<img src="http://violentcoding.com/blog/wp-content/uploads/2009/04/outofbowse04.png" alt="outofbowse04" title="outofbowse04" width="487" height="344" class="aligncenter size-full wp-image-587" />
</p>
<p>&nbsp;</p>
<p>
どこにローカルに関連するファイルとかあるんかなーと見てみたら<br />
Windows XPで「C:\Documents and Settings\[ユーザー]\Local Settings\Application Data\Microsoft」に「Silverlight」てのができてて、そん中に「Offline」ってフォルダがあった。（たぶんVistaだとRomingの中とか）
</p>
<p>
そのなかの「localhost.0」ってのが今回できたローカル用ファイルみたい。（localhost実行だからこんな名前なのかな？）<br />
<a href="http://violentcoding.com/blog/wp-content/uploads/2009/04/outofbowse05.png"><img src="http://violentcoding.com/blog/wp-content/uploads/2009/04/outofbowse05_0.png" alt="outofbowse05_0" title="outofbowse05_0" width="640" height="280" class="aligncenter size-full wp-image-590" /></a><br />
<br />
<strong>Windows XP</strong><br />
C:\Documents and Settings\[ユーザー]\Local Settings\Application Data\Microsoft\Silverlight\Offline\localhost.0
</p>
<p>&nbsp;</p>
<p>
.xapとかある。なんかhtmlもあるんです。
</p>
<p>htmlのobject タグのsourceが「value=&#8221;offline://localhost.0&#8243;」となってて、さっきの「localhost.0」を指してるっぽい。</p>
<pre class="brush: xml;">
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; &gt;
  &lt;!-- saved from url=(0014)about:internet --&gt;
&lt;head&gt;
  &lt;style type='text/css'&gt;
    html, body { height: 100%; overflow: auto; }
    body { padding: 0; margin: 0; }
    #silverlightControlHost { height: 100%; }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body scroll=no&gt;
    &lt;div id=&quot;silverlightControlHost&quot;&gt;
      &lt;object data=&quot;data:application/x-silverlight,&quot; type=&quot;application/x-silverlight&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;param name=&quot;source&quot; value=&quot;offline://localhost.0&quot;/&gt;
          &lt;param name=&quot;background&quot; value=&quot;white&quot; /&gt;

          &lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkID=124807&quot; style=&quot;text-decoration: none;&quot;&gt;
              &lt;img src=&quot;http://go.microsoft.com/fwlink/?LinkId=108181&quot; alt=&quot;Get Microsoft Silverlight&quot; style=&quot;border-style: none&quot;/&gt;
          &lt;/a&gt;
      &lt;/object&gt;
      &lt;iframe style='visibility:hidden;height:0;width:0;border:0px'&gt;&lt;/iframe&gt;
    &lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>&nbsp;</p>
<p>
で次。<br />
<img src="http://violentcoding.com/blog/wp-content/uploads/2009/04/outofbowse06.png" alt="outofbowse06" title="outofbowse06" width="132" height="124" class="aligncenter size-full wp-image-595" />
</p>
<p>
デスクトップのショートカットのプロパティを見たら<br />
「&#8221;C:\Program Files\Microsoft Silverlight\3.0.40307.0\sllauncher.exe&#8221; localhost.0」だってさ。「sllauncher.exe」ってので動かしてるっぽい。<br />
ここでもさっきの「localhost.0」がでてきた。
</p>
<p>&nbsp;</p>
<p>
ふーん、だいたい分かったから、いたずらする。
</p>
<p>
そのSilverlightの内容が表示されてるローカルのEXEウィンドウにURLショートカットをD&#038;Dします。
</p>
<p>&nbsp;</p>
<p>
結果コレ。<br />
<a href="http://violentcoding.com/blog/wp-content/uploads/2009/04/outofbowse07.png"><img src="http://violentcoding.com/blog/wp-content/uploads/2009/04/outofbowse07_0.png" alt="outofbowse07_0" title="outofbowse07_0" width="640" height="484" class="aligncenter size-full wp-image-598" /></a><br />
タイトルバーは「MyTasks」のまま。
</p>
<p>&nbsp;</p>
<p>
ローカル？でSilverlightを動かす「sllauncher.exe」ってやつは、ウィンドウ全体にIEコンポーネント（WebBrowserコンポーネント的なやつ？）を敷いてるのただのEXEってことですか？
</p>
<p>
結局IEだったとしたら、そりゃIEにFlash Playerが入っていれば、SWFがあるサイトだって動くよね。GoogleのURLショートカットからGmailへのログインだってOKだったよ。普通にWebのネットワークと繋がって、UIが全然ないIEってことだからそうなるよね。
</p>
<p>&nbsp;</p>
<p>
んー、Out of Browserと、確かにWeb上のブラウザ外ではあると思います。
</p>
<p>しかしながら、IEのセキュリティ設定をそのまま持ってるってことなの？</p>
<p>
でも、なんつーかウェブ上でしてることと同じことではないの？。まだbetaだからってこと？。もっと劇的なローカルだからできることとか用意されてんのか？<br />
<br />
Web上からだってローカルのストレージ（IsolatedStorage）は使えるんだし、よくわかんね。
</p>
<p>&nbsp;</p>
<p>
Webから右クリックで・・・というのは良いアイディアだと思うのだけど、なんか拍子抜け。
</p>
<p>
なんというか、もっと直接.xapファイルをローカルEXEとして起動するみたいな仕組みに成ってるのかと思ってたけど、本当にこの適当に確認した仕組みのとおりだったら見せかけだけのギミックみたいでなんかつまんない。
</p>
<p>
あーでも、Macではどうやるんだろう？とかあるけど、このへんでおしまい。
</p>
<p>&nbsp;</p>
<p>
ちなみにローカルデータの使用はC#のソースで以下になってた。</p>
<pre class="brush: csharp;">
if (NetworkInterface.GetIsNetworkAvailable())
{
 // save online using web service
}
{
// use IsolatedStorage because we're offline
}
</pre>
<p>ってネットワーク上かどうかのフラグ判定して、Webかローカルのストレージ（IsolatedStorage）のどっちを使うか振り分ける感じだね。
</p>
<p>
なんだか、いろいろまだ不明点は残るけど、いちばんの収穫はif文でelseって省略できるのかな？って発見したこと。<br />
知らなかったな、そんな書き方しないけど一度試してみよ。
</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://violentcoding.com/blog/2009/04/09/archives/557/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Silverlight]Adobe AS3 Class Diagram Viewer</title>
		<link>http://violentcoding.com/blog/2008/03/16/archives/100</link>
		<comments>http://violentcoding.com/blog/2008/03/16/archives/100#comments</comments>
		<pubDate>Sat, 15 Mar 2008 15:14:54 +0000</pubDate>
		<dc:creator>e_s_jp</dc:creator>
				<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://violentcoding.com/blog/2008/03/16/archives/100</guid>
		<description><![CDATA[
既に、Pepeさんやnitoyonさんが紹介している「Flex, ActionScript, AIR Posters」をWebで見れるようにしてみました。

Flex Team
Update on Flex, Acti [...]]]></description>
			<content:encoded><![CDATA[<p>
既に、Pepeさんやnitoyonさんが紹介している「Flex, ActionScript, AIR Posters」をWebで見れるようにしてみました。</p>
<blockquote><p>
<a href="http://weblogs.macromedia.com/flexteam/archives/2008/02/update_on_flex.cfm">Flex Team<br />
Update on Flex, ActionScript, AIR Posters</a></p>
<p><a href="http://shigeru-nakagaki.com/index.cfm?mode=entry&#038;entry=6AC4EFF1-3048-79ED-99ADB6186963F549&#038;lang=ja_JP">中垣 茂 （ Shigeru Nakagaki ） | ブログ （ Flex, AIR, ColdFusion ）<br />
AS3, Flex 3, AIR ポスター．．．97メガっすか</a></p>
<p><a href="http://d.hatena.ne.jp/nitoyon/20080312/air_as_flex_poster">てっく煮ブログ<br />
AIR・AS3・Flex3のクラス相関図ポスターが公開中</a>
</p></blockquote>
<p>&nbsp;</p>
<p>
申し訳ないですが、Silverlightです。<br />
<del datetime="2009-08-16T00:14:39+00:00">Silverlight 2.0 Beta </del>Silverlight  3のプラグインが必要なので見たい人は入れてください。</p>
<blockquote><p>
<strong>Microsoft Silverlight: Light Up the Web</strong><br />
<a href="http://www.microsoft.com/silverlight/default.aspx">http://www.microsoft.com/silverlight/default.aspx</a>
</p></blockquote>
<p>&nbsp;</p>
<p>
<strong>Deep Zoom Adobe ActionScript 3.0 Class Diagram Viewer &#8211; Silverlight 3</strong><br />
<a href="http://violentcoding.com/content/AdobeAS3ClassDiagramViewer/index.html">http://violentcoding.com/content/AdobeAS3ClassDiagramViewer/index.html</a>
</p>
<p>
posters.pdfから1枚7,200×10,800ピクセル（解像度300相当）のPNG画像に書き出し、それら５枚を横に並べています。各画像のサイズは、22.3MB、32.3MB、32.7MB、24.1MB、30.0MBというボリュームです。
</p>
<p style="text-align:center;">
<img src='http://violentcoding.com/blog/wp-content/uploads/2008/03/as3classviewer001.png' alt='Adobe AS3 Class Diagram Viewer01' />
</p>
<p>&nbsp;</p>
<p>
SilverlightのDeep Zoomという機能を使って表示してます。<br />
MIX08で紹介されていたHard Rock Cafeのサイトで使っているやつです。</p>
<blockquote><p>
<strong>Hard Rock Memorabilia</strong><br />
<a href="http://memorabilia.hardrock.com/">http://memorabilia.hardrock.com/</a>
</p></blockquote>
<p>マウスドラッグで画像の移動やマウスホイールで拡大縮小ができます。
</p>
<p style="text-align:center;">
<img src='http://violentcoding.com/blog/wp-content/uploads/2008/03/as3classviewer002.png' alt='Adobe AS3 Class Diagram Viewer02' />
</p>
<p>
Deep Zoomでは拡大縮小や移動を行っている最中に、結構な負荷がかかっています・・・。<br />
CPU%で拡大縮小・移動時には80% &#8211; 90%位のスコアをたたき出しております。
</p>
<p>&nbsp;</p>
<p>
作りはMSエバンジェリスト 大野さんの完コピです。</p>
<blockquote><p>
<strong>develop .net : Silverlight 2 の新機能 &#8211; Deep Zoom</strong><br />
<a href="http://blogs.msdn.com/mohno/archive/2008/03/12/silverlight-2-deep-zoom.aspx">http://blogs.msdn.com/mohno/archive/2008/03/12/silverlight-2-deep-zoom.aspx</a></p>
<p><strong>develop .net : Silverlight 2 の新機能 &#8211; Deep Zoom（マウスホイール編）</strong><br />
<a href="http://blogs.msdn.com/mohno/archive/2008/03/12/Silverlight-2-Deep-Zoom-with-Mouse-Wheel.aspx">http://blogs.msdn.com/mohno/archive/2008/03/12/Silverlight-2-Deep-Zoom-with-Mouse-Wheel.aspx</a>
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://violentcoding.com/blog/2008/03/16/archives/100/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[WPF]XBAPとSilverlight</title>
		<link>http://violentcoding.com/blog/2007/10/25/archives/62</link>
		<comments>http://violentcoding.com/blog/2007/10/25/archives/62#comments</comments>
		<pubDate>Wed, 24 Oct 2007 18:06:28 +0000</pubDate>
		<dc:creator>e_s_jp</dc:creator>
				<category><![CDATA[WPF]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://violentcoding.com/blog/2007/10/25/archives/62</guid>
		<description><![CDATA[まれに旭山動物園のサイト「Mother Earth 〜母なる地球」がSilverlightとか書かれているのを見るんだけど、違うんだ。
クロスプラットフォームでは無いWPFのブラウザ展開「XBAP」（拡張子[.xbap] [...]]]></description>
			<content:encoded><![CDATA[<p>まれに旭山動物園のサイト<a href="http://www.asahiyamazoo-aict.jp/">「Mother Earth 〜母なる地球」</a>がSilverlightとか書かれているのを見るんだけど、違うんだ。</p>
<p><strong>クロスプラットフォームでは無い</strong>WPFのブラウザ展開「XBAP」（拡張子[.xbap]）なんだよ。<br />
「XAMLブラウザアプリケーション」って言われたりする。</p>
<ul>
<strong>Web における Windows Presentation Foundation : XAML ブラウザ アプリケーション</strong><br />
<a href="http://www.microsoft.com/japan/msdn/windowsvista/general/wpfandwbas.aspx">http://www.microsoft.com/japan/msdn/windowsvista/general/wpfandwbas.aspx</a></ul>
</p>
<p>&nbsp;</p>
<p>たぶんSilverlightが、Flashみたいなマイクロソフトのブラウザ・プラグイン　→　WPFがWebで動く　→　「旭山動物園」みたいな流れで誤解してしまっているのかな。</p>
<p>でも、SilverlightだったらMacでも見られるよね。</p>
<p>&nbsp;</p>
<p>まあ、この「XBAP」自体、Silverlightがリリースされて、今後目にする機会はあまり無いと思う。<br />
業務アプリとか社内イントラなどの動作環境が特定・統一できるところで（Windowsでしかも.NET Framework 3.0以上が入れられて・・・）、目立たず使われる事があるくらいだろうな。</p>
<p>XBAPは基本的にWPFをブラウザ内で動作させているので、動作環境がVistaか.NET Framework 3.0が入ってるXPで、しかもブラウザはIEのみなんだよ。.NET Framework 3.5 （今はBeta）を入れればFirefoxでも見れるようになるけどさ。</p>
<p>旭山動物園はHTMLページ段階でIE判定が入っているからFirefoxは蹴られちゃう。（XBAPのURLを直接たたけば大丈夫だけど）</p>
<p>&nbsp;</p>
<p>Silverlightと何が違うかっていうと、Silverlightはプラグイン上で動作しているけど、XBAPは違う。実はEXEが動いてる。</p>
<p>&nbsp;</p>
<p>まず「.xbap」はURLを直接指定するか、HTMLのiframeの中で指定しなきゃブラウザで見る事ができない。さらに「.xbap」自体は数KBしかなくて、実際のコンテンツとなるアプリ実体の（サーバーに配置された）「.exe」を指定しているに過ぎないファイル。</p>
<p>そして、もっとややこしいことに、このEXEを実行しているのはブラウザではなく、System32あたりにある「PresentationHost.exe」みたいな名前のWPF実行環境が行ってる。</p>
<p>当然、普通に相対パスとか書いていると、このPresentationHost.exeが基準の相対パスになる。もろにローカルで動いている。またWPFだからといっても、ローカルで動くアプリケーションに比べるとブラウザ内で動く以上、セキュリティ系やパフォーマンス系でいくつかの制約もある。</p>
<p>しかも、Silverlightがでてきて、忘却の彼方へ向かってる。（実際、久しぶりに「XBAP」という言葉を思い出した）</p>
<p>&nbsp;</p>
<p>「旭山動物園」がSilverlightと誤解されたままだと、「Silverlightで3Dを使った、あの旭山動物園みたいの作ってよ」って言われても作れないよ。Silverlightの1.1でもリリースの時に、3Dをサポートする予定はないし。コンテンツ自体は3D部分を除くか、疑似で表現すればSilverlightになりそうな気もするけど。</p>
<p>クロスプラットフォームで動くのはSilverlightだけ。</p>
<p>&nbsp;</p>
<p>じゃあ、結局SilverlightはFlashと比べてどうなのって話になるんだろうけど、たぶん</p>
<ul>
<li>.NET開発者がWebのリッチコンテンツを作れる</li>
<li>DLLが使える</li>
<li>JavaScript・Python・RubyでもOK</li>
<li>LINQでデータにアクセスできる</li>
<li>XAMLのランタイム時のパースや動的生成ができる</li>
<li>.NET Framework の連携開発</li>
</ul>
<p>が主なところになるんかな。
</p>
<p>
.NETでWebリッチコンテンツを作れるってのが一番大きいんだろうけど、技術的興味じゃなくて、そういうモノを作りたいって思う人が.NET開発者にどれだけいるかにかかってるんじゃないかな。
</p>
<p>&nbsp;</p>
<p>あ、もうひとつ付け加えておくと、シンプルなXAMLならXBAPみたく直接ブラウザで見れる「LooseXAML」ってのもある。実際のコンテンツじゃなありえないだろうけど直接URLに「.xaml」を指定して見れるやつ。これもSilverlightじゃないよ。</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://violentcoding.com/blog/2007/10/25/archives/62/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Blend]Canvas.xaml用テンプレートを追加する</title>
		<link>http://violentcoding.com/blog/2007/08/31/archives/31</link>
		<comments>http://violentcoding.com/blog/2007/08/31/archives/31#comments</comments>
		<pubDate>Thu, 30 Aug 2007 16:24:49 +0000</pubDate>
		<dc:creator>e_s_jp</dc:creator>
				<category><![CDATA[Blend]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://violentcoding.com/blog/2007/08/31/archives/31</guid>
		<description><![CDATA[Expression Blendで[ファイル]メニュー &#8211; [新しいアイテムの追加]に、パーシャルクラスを持たないXAMLのみの「Canvas」を追加する方法です。


Canvas.xamlを生成するテンプ [...]]]></description>
			<content:encoded><![CDATA[<p>Expression Blendで[ファイル]メニュー &#8211; [新しいアイテムの追加]に、パーシャルクラスを持たないXAMLのみの「Canvas」を追加する方法です。
</p>
<p>
Canvas.xamlを生成するテンプレート定義を作って、テンプレート用ディレクトリに配置すれば、[新しいアイテムの追加]ダイアログに「Canvas」が追加されます。
</p>
<p><img src='http://violentcoding.com/blog/wp-content/uploads/2007/08/blend1_canvasadd.jpg' alt='Blend1_addNewItem_Canvas' /></p>
<p>&nbsp;</p>
<p>
Blendのテンプレート用ディレクトリは、<br />
<strong>C:\Program Files\Microsoft Expression\Blend 1.0\Templates\ja\</strong>が基本で、さらにその中に言語別の「CSharp」「VisualBasic」というフォルダがあります。
</p>
<p>で、それぞれのフォルダに配置されたテンプレート定義が使用言語プロジェクトの「新しいアイテムの追加」ダイアログで表示されるテンプレートとなります。
</p>
<p>&nbsp;</p>
<p>
テンプレート定義の内訳は、以下の３つです。</p>
<ul>
<li>Canvas.vstemplate</li>
<li>Canvas.xaml</li>
<li>Canvas.png</li>
</ul>
<p>
Canvas.vstemplateが定義ファイルで、Canvas.xamlは追加されるファイル、Canvas.pngはダイアログで表示されるアイコン用です。
</p>
<p>&nbsp;</p>
<p>
<strong>ダウンロード：</strong><br />
Blend1.0用Canvasテンプレート定義：<a href="http://violentcoding.com/blog/download-manager.php?id=2">CanvasTemplate_blend.zip</a><br />
解凍した「Canvas」フォルダを使用する言語用フォルダ内に置いてください。
</p>
<p>
パーシャルクラスのコードを必要としない今回のCanvas.xamlでは、C#・VBを区別する必要が無いので、ResourceDictionaryのテンプレート定義と同じように「ja」直下の<br />
<strong>C:\Program Files\Microsoft Expression\Blend 1.0\Templates\ja\</strong>に３つのファイルを直接配置してもOKです。
</p>
<p>&nbsp;</p>
<p>
「.vstemplate」ファイルでいろいろ設定するんですが、&lt;ProjectItem&gt;タグのSubTypeが&#8221;form&#8221;の場合、ダイアログの「コードファイルを含める」チェックボックス部分が有効になるので、その部分をグレーアウトするために、ResourceDictionaryにならってSubTypeは「Canvas」としておきました。
</p>
<pre>
&lt;ProjectItem TargetFileName="$fileinputname$.xaml" ReplaceParameters="true" SubType="Canvas"&gt;Canvas.xaml&lt;/ProjectItem&gt;
</pre>
<p>&nbsp;</p>
<p>
あんまりWPFアプリケーション作成の場合に使い道は無いですが、Silverlight用のプロジェクトが作成できるBlend2を使う場合には、そこそこメリットがあるかもしれません。
</p>
<hr width="96%"/>
<p>ということで、Silverlight 1.1を作成できるBlend2では、パーシャルクラスを必要としないCanvas.xamlを使用することもあり、そんな場合の単独Canvas.xamlファイルを作成したいときに使えます。
</p>
<p>&nbsp;</p>
<p>
Silverlight 1.1用プロジェクトの場合、UserControlの追加でもCanvasのXAMLファイルが作成されるんですが、VBやC#のコードも作成されるので、CanvasのXAMLを単独で使用したい時には、それらを削除する必要があります。
</p>
<p>
この時、Canvas用テンプレートを用意すれば、VBやC#のコードを削除する手間が省けます。
</p>
<p>&nbsp;</p>
<p>
はい。ただそれだけです。
</p>
<p>&nbsp;</p>
<p>
Blend2 August Previewにテンプレートを追加するには、<br />
まず、<strong>C:\Program Files\Microsoft Expression\Blend 2 August Preview\Templates</strong>に「en」の内容をコピーした「ja」フォルダを作成する必要があります。
</p>
<p>
そしてBlend 1の場合と同じように「ja」直下に「CSharp」「VisualBasic」というフォルダがあります。ちなみに「HTML」というフォルダはSilverlight 1.0用ですね。
</p>
<p>&nbsp;</p>
<p>
<strong>ダウンロード：</strong><br />
Blend2 August Preview用Canvasテンプレート定義：<a href="http://violentcoding.com/blog/download-manager.php?id=3">CanvasTemplate_blend2.zip</a><br />
解凍した「Canvas」フォルダを使用する言語用フォルダ内に置いてください。
</p>
<p>&nbsp;</p>
<p>
「CSharp」とか「VisualBasic」にテンプレート用ファイルを配置するか、「ja」直下に直接ファイルを置くかすれば「新しいアイテムの追加」ダイアログに追加されます。
</p>
<p><img src='http://violentcoding.com/blog/wp-content/uploads/2007/08/blend2_canvasaddorcas.jpg' alt='Blend2 AddItemDialog Orcas' /></p>
<p>&nbsp;</p>
<p>
Blend2 August PreviewではWPFアプリケーション用のプロジェクトの他に、Silverlight 1.1 用に２種類のプロジェクト（Visuau Studio 2005用とVisual Studio 2008 Beta(Orcas)用）があるので、Silverlight用に２つのテンプレート定義を追加します。
</p>
<ul>
<li>Canvas.vstemplate　：WPF用テンプレート定義</li>
<li>Canvas.xaml　：WPF用Canvas.xaml</li>
<li>Canvas_Silverlight2005.vstemplate　：Silverlight 1.1(.NET)用テンプレート定義</li>
<li>Canvas_Silverlight.vstemplate　：Silverlight 1.1(.NET Orcas)用テンプレート定義</li>
<li>Canvas_Silverlight.xaml　：Silverlight用Canvas.xaml </li>
<li>Canvas.png　：ダイアログ用アイコン</li>
</ul>
<p>&nbsp;</p>
<p>
Silverlight用のテンプレート定義では「.vstemplate」内で、<br />
Silverlight(.NET Orcas)用に&lt;templategroupid&gt;を「Silverlight」と指定し、</p>
<ul><strong>&lt;templategroupid&gt;Silverlight&lt;/templategroupid&gt;</strong></ul>
<p>
Silverlight(.NET)のVisual Studio 2005用では「Silverlight2005」とすれば良いみたいです。</p>
<ul><strong>&lt;templategroupid&gt;Silverlight2005&lt;/templategroupid&gt;</strong></ul>
</p>
<p>&nbsp;</p>
<p>
WPF用とSilverlight用でCanvas.xamlが別なのはXAMLのネームスペースが異なるからです。
</p>
<p>
WPFアプリケーション用：</p>
<pre>
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
</pre>
<p></p>
<p>Sliverlight用：</p>
<pre>
xmlns="http://schemas.microsoft.com/client/2007"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
</pre>
</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://violentcoding.com/blog/2007/08/31/archives/31/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Silverlight]SWF+Silverlight1.1のサンプル更新</title>
		<link>http://violentcoding.com/blog/2007/08/16/archives/28</link>
		<comments>http://violentcoding.com/blog/2007/08/16/archives/28#comments</comments>
		<pubDate>Thu, 16 Aug 2007 09:45:31 +0000</pubDate>
		<dc:creator>e_s_jp</dc:creator>
				<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[experiment]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://violentcoding.com/blog/2007/08/16/archives/28</guid>
		<description><![CDATA[
この前、SWFからExternalInterfaceを経由して、Silverlight 1.1 のDLLを使用するサンプル作ってみましたが、Silverlight1.1 が Alpha Refresh版となったことで、 [...]]]></description>
			<content:encoded><![CDATA[<p>
この前、SWFからExternalInterfaceを経由して、Silverlight 1.1 のDLLを使用するサンプル作ってみましたが、Silverlight1.1 が Alpha Refresh版となったことで、Alpha Refresh用にサンプル・ソースを変更しました。
 </p>
<p>
<strong>[Flash]SWFからSilverlight 1.1のDLLを使う</strong><br />
<a href="http://violentcoding.com/blog/2007/06/10/archives/8">http://violentcoding.com/blog/2007/06/10/archives/8</a>
</p>
<p>&nbsp;</p>
<p>
変更といっても、Silverlight.js差し替えたり、<br />
CreateSilverlight.jsの中で「 Sys.Silverlight.createObjectEx({source: &#8217;simple.xaml&#8217;,・・・」となっている部分で、最初の「Sys.」を消すぐらいで済みました。その他はSilverlightのプロジェクト名を変えたのでネームスペースを調整しています。
</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://violentcoding.com/blog/2007/08/16/archives/28/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Flash]SWFからSilverlight 1.1のDLLを使う</title>
		<link>http://violentcoding.com/blog/2007/06/10/archives/8</link>
		<comments>http://violentcoding.com/blog/2007/06/10/archives/8#comments</comments>
		<pubDate>Sat, 09 Jun 2007 15:55:56 +0000</pubDate>
		<dc:creator>e_s_jp</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[experiment]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://violentcoding.com/blog/2007/06/10/archives/8</guid>
		<description><![CDATA[SWFからSilverlight 1.1 AlphaのDLLを拝借する実験（Alpha Refresh対応版）。

Sliverlight 1.1ではJavascriptからC#/VBなどのマネージコードを呼び出す事がで [...]]]></description>
			<content:encoded><![CDATA[<p>SWFからSilverlight 1.1 AlphaのDLLを拝借する実験（Alpha Refresh対応版）。</p>
<p>
Sliverlight 1.1ではJavascriptからC#/VBなどのマネージコードを呼び出す事ができます。
</p>
<p>&nbsp;</p>
<p>
Sliverlight1.1でJavascriptからDLLのコードを呼び出すサンプルはSliverlightのQuickStartsを参考。</p>
<ol>
<strong>Silverlight: QuickStarts > Interaction Between HTML and Managed Code > Calling Managed Code from JavaScript</strong><br />
<a href="http://silverlight.net/QuickStarts/Dom/ManagedCodeAccess.aspx">http://silverlight.net/QuickStarts/Dom/ManagedCodeAccess.aspx</a><br />
※サンプルを試すには<a href="http://silverlight.net/GetStarted/">Silverlight 1.1 Alpha Refresh</a>が必要。<br />
このサンプルでは1×1pxのSilverlightが左上にある。
</ol>
</p>
<p>
日本語での説明はこちらを参照してください。<br />
（以前のSilverlight1.1 Alphaコードでサンプルは動作しない）<br />
<a href="http://develop.net/devpreview/Dom/ManagedCodeAccess.aspx">Silverlight: QuickStarts「JavaScriptからマネージコードを呼び出す」</a>
</p>
<p>&nbsp;</p>
<p>
Javascriptからできるってことは・・・<br />
SWFからそのJavascriptをExternalInterfaceで呼び出せば良いだけでした。
</p>
<p>
<strong>動作サンプル：</strong><br />
<a href="http://violentcoding.com/experiment/swfCallSilverlight02/default.html" target="_blank">Calling managed code from Javascript(+SWF)</a><br />
</p>
<p><a href="http://violentcoding.com/experiment/swfCallSilverlight02/default.html" target="_blank"><img src='http://violentcoding.com/blog/wp-content/uploads/2007/08/swfcallsilverlight02.thumbnail.jpg' alt='swfcallsilverlight02.jpg' /></a></p>
<p>
※要プラグイン<br />
Adobe Flash Player 9<br />
<a href="http://silverlight.net/GetStarted/">Microsoft Silverlight 1.1 Alpha Refresh</a><br />
<br />
この動作サンプルではSilverlight部分を大きくしたり、SWF用に同じ処理内容のJavascriptを加えたりしています。
</p>
<p>&nbsp;</p>
<p>
<strong>ソースダウンロード：</strong></p>
<ul>
<li>SWF+Silverlightサンプル：<a href="http://violentcoding.com/blog/download-manager.php?id=1">動作サンプル(ExternalInterface連携)</a></li>
<li>SWF：<a href="http://violentcoding.com/downloads/swfCallSilverlight02/SilverlightTest01.zip">Flex2プロジェクト</a></li>
<li>Silverlight単独：<a href="http://violentcoding.com/downloads/swfCallSilverlight02/HtmlBridge2.zip">Visual Studio2008 Beta 2 ソリューション</a></li>
</ul>
<p>
※動作サンプルはExternalInterfaceを使っているのでローカル環境(file:///・・・)では動かないかもしれません。確認はローカルサーバー等で試してください。
</p>
<p>&nbsp;</p>
<p>
<strong>メモ：</strong><br />
Silverlight: QuickStarts「 JavaScript からマネージコードを呼び出す」のチュートリアルの注意<br />
チュートリアル/ソースコードを試す場合には、</p>
<ul>
<li>simple.xamlのクラス指定部分でネームスペース、アセンブリ名を調整する。</li>
<li>プロジェクトのプロパティでビルド先指定「CliantBin¥」を取り除く。</li>
<li>「createsilverlight.js」をdefault.htmで指定している「CreateSilverlight.js」に名称変更する。</li>
</ul>
<p>
</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://violentcoding.com/blog/2007/06/10/archives/8/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
