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を作ろうか? (笑