[TechEd] DLR電卓について

TechEdのデモでお見せしたDLR電卓とは、以下のようなものです。
DLR Calc

SilverLight1.1アルファのサンプルである、DLR Consoleを使って電卓アプリをPythonとJScriptから操作するというサンプルです。このサンプルをLL魂でもお見せしているのですが、LL魂で使ったコードから60%のリファクタリングを行ったものをTechEdでは使用しました。見た目は同じなのですが、UIの作成方法が完全に異なっています。具体的に異なっている点は以下です。

  • UIのコードをXAMLで定義。
  • XAMLファイルを動的に読み込む

 UIのコードをPythonで作成していた部分を完全にXAMLに分離しています。分離したXAMLファイルをHTTP Requestを使ってXAMLを読み込まなければなりません。読み込んだXAMLをXamlReaderでオブジェクトにするという方法を使っています。というのもSilverLightはブラウザのプラグイン技術なので、クライアントサイドで動作するからです。メインのXAMLであれば起動時に読み込めるのですが、それ以外のファイルとなるとサーバーからファイルをHTTPを使って読み込む必要があるからです。このような理由からLL魂で使ったサンプルでは、XAMLではなくPythonコードのみで作成していました。

このサンプルを使って動的言語ということで、

  • 動的にUIを作る。
  • 動的にイベントハンドラを登録する。

という内容をお見せしました。コマンドを入力しながら、自由に操作できるという特徴をお見せしたかったからです。もっとも作り込まれたプログラムになると、インタラクティブにコマンドを入力するということは無いと思うのですが、作成途中を確認するコンソールという意味ではDLR Consoleが役に立つと私が考えているからです。