DIの式評価エンジン どれを使う?

私にとって、すっかりシリーズ化してしまった感のある.NETのDIコンテナにおける式評価エンジンの実装だが、現時点で評価式と式評価のクラス構成はこのようになった。

むろん、これら全てを使う訳は無く、実際には適材適所で使い分けることを考えている。

  • JavascriptExpression

S2Container.NETと同様の方式。JScript.NET Frameworkで直接サポートされているスクリプトなので、別途インストールする必要が無く、最も無理なく導入できる。ランタイムと実行アセンブリ以外は配布したくないスマートクライアント等ではこれ一択だろう。

  • PowerShellExpression

.NET Frameworkと直接統合されているので、機能としては一番強力。.NETで書けることは殆ど書けるだろう。問題はまだ正式版ではないことと、式評価エンジンとしてみた場合はかなり重い部類に入ること、実績が無いことか。

  • IronPythonExpression

IronPythonの最新版である1.0 Beta 9は.NET2.0のLCG(Lightweight Code Gen)機能を駆使することにより、上記の二つに比べて、特にPowerShellに比べると非常に軽く、高速に動作する。従って、インストールするアセンブリに拘る必要の無いASP.NET環境であれば、私はこれを選ぶだろう。サーバサイドのプログラマWindowsPowerShellの経験者は暫く出てこないだろうが、Pythonの経験者であればある程度いるのではないだろうか。

さて、あとはRuby.NETを待ってRubyExpressionを作ろうか? (笑