人気のある.NET向けのアスペクト指向プログラミングフレームワークであるPostSharp(リンク)は、新たなバージョン、バージョン1.5 CTP 3(リンク)をリリースする。このリリースには、1.0 SP1のバグ修正が含まれ、1.5 CTP 2の設計上の問題を改善し、最重要ポイントとして、大幅なパフォーマンスの拡張がある。リリースノートによると、PostSharp 1.5 CTP 3は、PostSharp 1.0の倍の速度で動作する。1.5 CTP 3は、PostSharpサイトでダウンロードで利用可能(リンク)である。
メソッド起動インターセプターの設計時スペックを通じて、AOP機能を提供するInversion of Controlコンテナとは異なり、PostSharpは属性のアプリケーションを通して統合する。PostSharpは、ビルドプロセスにインサートし、コンパイル済みのアセンブリを事後処理する。PostSharpはMSILレベルで動作するため、実質、.NETフレームワークを対象にしているすべての静的言語をサポートする。
バージョン1.0に改善がなされ、バージョン1.5には以下の改善点が含まれる。
- CLRにロードすることなく、アセンブリを読み出す。
- アセンブリの怠惰なロード
- パフォーマンスの最適化
- Novell Monoのサポート
- Silverlight 2.0のサポートおよびCompact Framework
- プラグ可能なアスペクトシリアライザーおよび部分信頼
バージョン1.0では、PostSharpは読み出すことができるように、CLR(つまり、アプリケーションドメイン内)にロードされるアセンブリを必要とした。PostSharpは、SilverlightまたはCompact Frameworkアセンブリを処理する場合、決してCLRによってロードされない。
PostSharpが依存性アセンブリをロードする必要がある場合、本当に必要なメタデータオブジェクトのみを読み出す。その結果「パフォーマンスが大幅に改善し、メモリ消費が少なくなる」。
注意深くコードがプロファイル作成され、最大のパフォーマンスに最適化される。
今やPostSharpは、真にクロスプラットフォームである。Microsoftプラットフォームにコンパイルされるバイナリは、Novell Monoのもとで実行される。WindowsおよびLinuxは、テストおよびサポートされる。以下の環境において、NAntタスクはPostSharpの使用をさらに簡単にする。
Silverlight 2.0またはCompact Framework 2.0を対象としたプロジェクトにアスペクトを追加することができる。
以前、すべてのアスペクトは.NETバイナリフォーマッターを使用したシリアライザーであった。別のシリアライザーを選択することができ、自分自身で実装もでき、そして部分信頼で実行されるアセンブリを拡張することができる。
CTP 3は、最終1.5 CTPになる予定であり、バグレポート次第で、1から2ケ月以内に最初のRelease Candidateが予定されている。