ページ

2006年5月24日水曜日

Script#

Script# Prototype より


うーん、この発想にびっくり(^^;
Script# とは HTML 上に JavaScript を書く代わりに C# で書けるようにするもの、ということです。上記記事では HelloWorld.cs という C# コードが紹介されています。また、記事中にデモビデオがありますが、この中でもほとんど同じようなデモコードを書いています。その C# コードが HTML 上のスクリプトとして実行される部分です。記事では ssc という Script# コンパイラでコンパイルすると解説されています。ビデオの中では Visual Studio 2005 の中で自動的にビルドしています。記事の方を見ると一目瞭然なんですが、HellowWorld.cs を ssc でコンパイルした結果は HelloWorld.js なんです。また、js ファイルではなく dll にすることもできるとありますが、これは dll の中にリソースとして js をそのまま格納しているだけです。dll だからといって IL が生成されるわけじゃありません。さらに、オプションで、人間が読みやすいような js ファイルとするかスペースなどを削り可能な限りコンパクトにした js ファイルとするかを指定できるそうです。あとは、この js ファイルを HTML 内の <script> タグで普通に読み込んでやれば OK というわけです。nstuff:Scriptlet というのも用意されていますが、これも単に <script> タグを生成してくれるサーバコントロールということみたいです。


こんなことができる種明かしは、記事の "How does it work?" に書かれているとおり 「本質的に Script# コンパイラは IL の代わりに JavaScript を生成する C# コンパイラである」 というだけなんですね(^^ C# のコードでは using ScriptFX; using ScriptFX.UI; としていますが、これらは C# 的に正しくなるようにってことと、VS2005 上でインテリセンスが効くようにっていうだけで、中身は空っぽじゃないかと思います。

0 件のコメント:

コメントを投稿