The Root of .NET Framework Chapter4-1

前回にご紹介した書籍ですが、出版社のソフトバンククリエイティブ様のご好意でChapter4-1を公開できるようになりました。この節は、ガベージコレクタに関して記述したものになりますので、ご興味がある方はご参照ください。

0

The Root of .NET Framework が発売になります

なかなかブログの更新もままならない状態でしたが、やっと「The Root of .NET Framework」という書籍が完成しました。発売予定が12/25ということで、私の手元にも現物が届きました。 この書籍は、共通言語ランタイム(CLR)を共通言語基盤(CLI)という観点から説明することを試みたものです。標準規格に沿っていることが何で、標準規格で実装依存と定義付けていることが何かということを中心にしています。 本書を執筆するに当たって、多くのレビューアの方達にお世話になりました。参加していただいた方達には、本当に感謝しきれないくらいに感謝しています。きっとレビューに参加していただいた方達には、本書が届いているころだと思います。#さんざんレビューでお読み頂いたので、今更というのもありますけど。 本書を贈らせて頂いた方達からは、「本当にコアですね」という言葉を頂いています。初心者向けではありませんが、CLRの深層を知りたい方にとっては、きっと役に立つと思います。というより、そのつもりで執筆しました。 #本音は、年末休暇まで延びないでホットしています。

2

IronPython 2.0 リリース

ついにIronPython 2.0がリリースされました。それと同期するようにDLRも公開されています。ふむDLRのバージョンは0.9となっていますが、12/10にUpされているのでRC2に同期した0.9から、どの程度更新されたかは不明です。 DLR-0.9をダウンロードしてみると、中にIronRuby、ToyScript、IronPythonも含まれています。IronPython.dllのバージョンを見ると2.0.11121.0なのでIronPython 2.0に含まれているのと同じバージョンになります。異なるのはタイムスタンプだけです。また、DLRに関するドキュメントがWORD文書で5つほど含まれています。DLRをホスティングするには、dlr-spec-hosting.docという文書が有益です。 PS:Silverlight Dynamic Lamguage SDKに含まれているバイナリと同じものが、DLR-0.9に含まれています。今回のソースコードに対応したものは、まだ公開されていないようです。

0

IronPython 2.0RC2

出ていました。RC2に同期しているらしい、DLR 0.9も公開されています。 今月は、忙しくてなかなかブログを更新できていません。Silverlight Dynamic Languageシリーズも次回位で終了にしたいのですが、時間が取れていません。期待して方々に、改めてお詫びを申し上げます。

0

DLR プロジェクト

ちょっとしたお知らせです。DLR自体が単独のプロジェクトとして11月から開始されるようです。

1

Silverlight Dynamic Language SDK の使い方4

今回は、 Chiron.exeの/bや/z、/mオプションで作成されるアプリケーション・マニフェストを説明します。例題とするのは、DLR Consoleで使用されているAppManifest.xamlです。<Deployment xmlns=”http://schemas.microsoft.com/client/2007/deployment” xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml” RuntimeVersion=”2.0.31005.00″ EntryPointAssembly=”Microsoft.Scripting.Silverlight” EntryPointType= “Microsoft.Scripting.Silverlight.DynamicApplication” > <Deployment.Parts> <!– Add additional assemblies here –> <AssemblyPart Source=”Microsoft.Scripting.Silverlight.dll”/> <AssemblyPart Source=”Microsoft.Scripting.Core.dll” /> <AssemblyPart Source=”Microsoft.Scripting.dll” /> <AssemblyPart Source= “Microsoft.Scripting.ExtensionAttribute.dll” /> <AssemblyPart Source=”IronPython.dll” /> <AssemblyPart Source=”IronPython.Modules.dll” /> <AssemblyPart Source=”IronRuby.dll” /> <AssemblyPart Source=”IronRuby.Libraries.dll” /> <AssemblyPart Source=”Microsoft.JScript.Runtime.dll” /> <AssemblyPart Source=”Microsoft.JScript.Compiler.dll” /> </Deployment.Parts> </Deployment> 最初に取り上げるのが、Deployment要素のEntryPointAssembly属性とEntryPointType属性です。ここには、以下のように記述されています。 EntryPointAssembly=”Microsoft.Scripting.Silverlight” EntryPointType=”Microsoft.Scripting.Silverlight.DynamicApplication” 属性名が表しているようにSilverlight2.0対応のランタイムが起動するプログラムが格納されたアセンブリと開始するクラスを指定しています。このDynamicApplicationクラスこそが、SilverlightとDLRを結びつけるものです。このエントリポイントのモデルは、DLRに限った話ではなくC#やVBを使ったSilverlightアプリケーションでも使用されているものです。そして、DynamicApplicationクラスはSystem.Windows.Applicationクラスを継承しています。 Deployment.Parts要素内のAssemblyPart要素にSilverlightランタイムが読み込むアセンブリをSource属性で指定します。ここで指定しているアセンブリを以下に示します。 アセンブリ名…

1

Silverlight Dynamic Language SDK の使い方3

Dynamic Language SDK で提供されるスクリプトのserver.batとは、chiron.exeをラップしただけのものです。このため指定できるオプションを確認するには、「/?」か「/h」オプションを指定します。指定できるオプションを以下に示します。 オプション 説   明 /d:パス 又は /dir、/directory アプリケーション(スクリプトやプログラム)を格納しているフォルダを指定します。デフォルトは「app」になります。 /x:xapファイル 又は /xap、/xapfile xapファイルを作成する場合に「/x:app.xap」のようにxapファイルを指定します。/dで指定したフォルダの中身がxapファイルに格納されます。 /n 又は /nologo バナーの表示を抑制します。 /s 又は /silent コンソール出力を抑制します。 /z:xapファイル 又は /zipdlr DLRアプリケーション向けのxapファイルを生成します。/dで指定したフォルダにAppManifest.xamlが存在しなければ自動的に生成します。/xオプションとの違いは、スクリプトファイルを解析して必要なアセンブリと生成したAppManifest.xamlをxapファイル内に含めることです。 /w 又は /webserver テスト用のWebサーバーを起動します。デフォルトのポートは、2060になります。ポートを指定する場合は、/w:ポート番号と指定します。 /b 又は /browser テスト用のWebサーバーを起動して、ブラウザを起動します。開始時のURLを指定するには、/b:パスオプションを指定します。/dオプションを組み合わせれば、WebサーバーのトップURLの場所を指定することができます。 /m 又は /manifest アプリケーション・マニフェスト(AppManifest.xaml)を生成します。 /? 又は /h、/help ヘルプを表示します。 /r:パス 又は /refpath 参照するアセンブリへのパスを指定します。デフォルトは、Chiron.exeが存在するフォルダを参照します。このオプションは、ヘルプに表示されません。 オプションの使い方は、ヘルプコマンドで確認するか、SDKに含まれるReadme.txtに記述されています。前回に解説したプログラムをテスト実行するだけであれば、「chiron.exe /b /d:アプリケーションフォルダ」を実行することでブラウザで実行することができます。 配布用にXAPファイルを作成するには、以下のようにコマンドを入力します。chiron.exe /d:アプリケーション・フォルダ /z:app.xap これでXAPファイルが出来ますので、index.htmlとjavascriptフォルダ、stylesheetsフォルダ、作成したXAPファイルをWebサーバーへ配置すれば本番環境への移行が完了します。 chiron.exeには/xオプションでXAPファイルを作成できますが、このオプションは動的言語に特化したものではありません。どういう場合に使うかというと、既存のXAPファイルを展開して、中身のリソース(画像など)を入れ替えた場合などの再XAP化に使用することができます。つまり、リソース入れ替えでVisual StudioのリビルドなどをしなくてもXAPファイルを作成できるのです。具体的には、以下のようなコマンドを入力します。chiron.exe…

2

Silverlight Dynamic Language SDK の使い方2

今回は、SDKで提供されるテンプレート集の構造を説明します。最初にindex.htmlのobjectタグを解説します。<object data=”data:application/x-silverlight,” type=”application/x-silverlight-2″ width=”100%” height=”100%”> <!– XAPファイルを指定します。指定したファイル名が 開発中に使用するフォルダ名になります。 –> <param name=”source” value=”python.xap”/> <!– “initParams”はkey=valueの形式で、カンマ区切りで複数の パラメータを指定できます。 –> <param name=”initParams” value=”debug=true, reportErrors=errorLocation” /> <!– Silverlightランタイムのエラーを処理する javascript関数を指定します。この関数は javascripts/error.js で定義されています。 –> <param name=”onerror” value=”onSilverlightError” /> <!– 他のパラメータは、Silverlightのプロパティです。 –> <param name=”background” value=”white” /> <param name=”windowless” value=”true” /&lg; <!– Silverlight ランタイムのインストール用のリンクです。 –> <a href=”http://go.microsoft.com/fwlink/?LinkID=124807″      style=”text-decoration: none;”> <img src=”http://go.microsoft.com/fwlink/?LinkId=108181″ alt=”Get Microsoft…

1

Silverlight Dynamic Language SDK の使い方1

既にご案内したようにSilverlight 2.0に対応したDynamic Language SDKがリリースされています。Codeplexのサイトには、以下の5種類が公開されています。 sdlsdk-0.4.0(Everything):バイナリ、サンプル、ソースが含まれています。 sdlsdk-0.4.0-bin:バイナリのみ。 sdlsdk-0.4.0-samples:サンプルのみ。 sdlsdk-0.4.0-src:ソースコードのみ。 sdlsdk-0.4.0-symblos:デバッグなどで使用するシンボル。 開発に利用するには、sdlsdk-0.4.0(Everything)がお勧めでしょう。このパッケージには以下のようなフォルダ構造が含まれています。 bin chiron.exeや使用するdllが含まれます samples サンプルプログラム script 起動用のスクリプトと開発用のテンプレート集(templatesフォルダ) src ソースコード(Managed JS除き) ルート直下のファイル Readmeとライセンス テンプレート集を試すには、scriptフォルダでコマンドプロンプトを開いて、「server /b」を実行するとブラウザが開きます。templates/言語フォルダ/index.htmをブラウザで開くことで、テンプレート集で提供されているプログラムを動かすことができます。  テンプレート集で提供されている構造は以下のようなものです。 javascriptフォルダ error.js:Silverlightランタイムのエラー時に指定するonSilverlightError関数が定義されています。 言語フォルダ app.言語拡張子、app.xaml:言語のコードサンプルと単純なXAML(GridとTextBlockだけ)が定義されています。 stylesheetsフォルダ screen.css、error.css:error.cssはSilverlightランタイムのエラーなどを表示するスタイルシートで、フォントがCourier Newになっています。 index.html Silverlightを起動する指定がobjectタグで記述されています。 このテンプレートを使ってカスタマイズして、動的言語を使ったSilverlight2 アプリを開発できるようになっています。 このテンプレートを使って開発するには、scriptフォルダにある「sl.bat」ファイルを使用するのが簡単です。sl.batの使い方は、scriptフォルダでコマンドプロンプトを開いて以下のようにコマンドを入力します。  sl  言語  アプリケーションフォルダ 言語には、「python」「ruby」「jscript」を指することができます(要は、templatesフォルダ内にある言語フォルダの名前です)。アプリケーションフォルダとは、開発するアプリケーションを格納するフォルダのことです。これで上記のコマンドを実行すると、templatesフォルダで提供されているテンプレート集を指定したアプリケーションフォルダにコピーしてくれます(xcopyです)。これで、必要なコードを記述していけばよいということになります。 提供されているサンプルを試す場合は、scriptフォルダでコマンドプロンプトを開いて以下のようにserver.batにオプションを付けて実行します。 server /d:..\samples /b /dオプションで、開始するフォルダを指定しています。/bオプションは、ブラウザを開く指定です。後は、ブラウザを使って提供されているサンプル(jscript、python、ruby)のフォルダをナビゲートしてindex.htmlを開けば、サンプルプログラムが動作します。 次回は、実際の開発時の注意点などを含めてまとめていきます。 #この時点で試されるかたは、スクリプトファイルのエンコードをunicodeにするようにしてください。日本語を扱うには、エンコードがunicodeになっている必要があるからです。

1

Silverlight 2.0RTM 用のDynamic Language SDKが公開されました

 Silverlight 2.0 RTM対応のDynamic Language SDKが、もうまもなく公開されるようです。JimmyさんのBlogで、リリースの案内が掲載されています。日本時間では、明日でしょうか。codeplexのサイトで公開されますので、今日・明日にでもUpされるのでしょう。と書きながらチェックしたらUpされました。バージョンは、10月初めに公開された0.4.0のままです。

0