kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

C#とXAMLでHTML5ページを作る

 


C#/XAML for HTML5

こんなのが回ってきたので、ちょっと試してみました。waiting list入りだったのですが、すぐにダウンロードリンクが送られてきました。サービスじゃないので、先着xx名様とかあまり意味もないような。それはともかく。

f:id:kkamegawa:20141004112545p:plain

Visual Studio 2013にこんな風にプロジェクトテンプレートが追加されます。

f:id:kkamegawa:20141004112625p:plain

XAMLで書いてみます。C#は90%くらい、.NETの型サポートは25%くらい、XAMLは20%くらい、XAMLの型とコントロールは30%のサポートと公式サイトにもあるように、決して多くはありません。プレビューも当然なしです。実行するとこんな感じでシミュレータが起動します。

f:id:kkamegawa:20141004112609p:plain

iPhone,iPadの縦横が表示されます。Final Versionタブを選択して、Click to run in ther browserをクリックするとブラウザ起動する…はずが、Visual Studio 2012起動になりましたw。

 

f:id:kkamegawa:20141004112656p:plain

上半分はスタイルシートなので、省略。コントロール内部の表示はJavaScriptでやっているようですね。JSIL.GetAssemblyってことは.NETのクラスライブラリなどをJavaScriptライブラリで持っているようです。

そんなわけでdebugフォルダを見てみましょう。

f:id:kkamegawa:20141004113546p:plain

f:id:kkamegawa:20141004113557p:plain

JavaScriptこんもりですね。すごいですね。JSILというので検索すると、こんなサイトが出てきました。ここの技術を使っているのかな。


JSIL - .NET to JavaScript compiler

でも、それよりも何よりも、もう少し古い人だとVoltaって思い出しません?その昔、MicrosoftのLiveのDevLabで.NETからJavaScriptを生成するもの作っていたことがあるんですよ。Visual Studio 2008の時代だったかな。

Volta Technology Preview from Microsoft Live Labs Helps Developers Build Innovative, Multi-Tiered Web Applications with Existing Tools, Technology | News Center

当時、Hello Worldをコンパイルするだけで数十MB単位のJavaScriptが生成されていたと記憶しています。当時はまだmscorlibのなかに結構入っていたはずだし。それに比べれば今回は5MB位。.NET Frameworkのコア部分のJavaScriptをCDNかなにかにおけば結構いけそうな感じです。

個人的にはXAMLアニメーションのサポートをCSSのアニメーションに変換できれば結構うれしいかなぁと思います。CSSアニメーションのオーサリンツールってまだいいのないですよね。