24

実稼働環境でPostsharp AOP フレームワークを使用した人はいますか? 落とし穴はありますか?ロギングなどを行うために、Postsharp を Log4Net と組み合わせて使用​​できますか?

Web Apps や Log4Net で Postsharp を使用するためのチュートリアルは高く評価されます。

4

6 に答える 6

26

私ともう 1 人のチームメイトは、運用中のいくつかのプロジェクトで PostSharp をさまざまな方法で使用しており、数か月間使用しています。たとえば、あるケースでは、例外が発生した場合にメソッド パラメーター値をログに記録するために使用します。PostSharp Laos (PostSharp に含まれる) は、メソッド呼び出し (メソッドのエントリ、終了、例外など) を挿入する使いやすい方法であり、log4net 登録済みロガーにログ呼び出しを簡単に追加できます。

ビルド時間が長くなり、私のビルドの習慣を少し変えるのに十分ですが、IMO が提供する利点に対しては確かにそれほど多くはありません。コードを記述しているときに、ローカル ビルドからコードを除外したい場合があります。これは簡単に実行できるため、頻繁かつ迅速にビルドを続け、ビルド サーバーなどに含めることができます。

これは、Gael (PostSharp の作成者)による優れた PostSharp チュートリアルです... 古いものですが、一通り見られるのはうれしいことです。これまでに遭遇したコンソール、winforms、WPF、または WebApp での使用に違いはありません。

また、プロジェクトにラオスの側面を追加する方法を理解したら、演習を繰り返すのは非常に簡単だと思います. また、アスペクトを適用するアセンブリ/クラスの数と、PostSharp がビルドに追加する時間との間には関係があります。したがって、ビルド時間の問題を少し制御することもできます。

コードに関しては、PostSharp がうまく機能することに非常に感銘を受けました...ビルドを台無しにしたり、アセンブリを無効にしたり、コードを台無しにしたりしたことはありません。また、コード カバレッジとパフォーマンス インストルメンテーションを使用して、ASP.NET アプリでも使用しました (したがって、MS のアセンブリ インストルメンテーション ツールでうまく機能します)。

全体として、私は間違いなくそうします。log4net の要件に合わせて試してみることをお勧めします。

于 2009-01-06T21:23:03.703 に答える
5

私はPostsharpを使用していて、気に入っています。それは私が他の方法で追加しなければならなかった多くの重複したコードを私に保存します。

log4Netの高度な機能は必要ありませんでしたが、Googleはそれがどのように機能するかを知るのに十分です。それはただ仕事をします。今のところ不利な点は見ていません。

Postsharpの場合、Webサイト、ブログ、およびソースの閲覧に関する入門ガイドで十分です。主な欠点は、ビルド時間が長くなることです。私は自分のコンピューターが仕事をするのを待つのが嫌いです。ポストシャープビルドアクションを使用した2つのプロジェクトで+-60Klocソリューションを実行するには、Visual Studio(高速PC上)でctrl-shift-bを押すのに約8秒かかります。可能であれば、可能な限り少ないプロジェクトでPostsharpを使用するようにしてください。

本当にpostsharpを使用したくない場合は、20個のプロジェクトでソリューションを作成し、それらすべてにpost-buildコマンドを追加できます。ビルド時間は、チームの他のメンバーを悩ませるのに十分な長さになります。

個人的には、今後のプロジェクトでPostsharpを使い続けるでしょう。利点は、余分なビルド時間を無効にします。

于 2009-01-06T19:49:54.657 に答える
4

ポスト シャープを使用して 1 つまたは 2 つのことを試してみましたが、問題は、ビルド時間が長すぎることでした。CI を使用していて、頻繁にチェックイン方法を使用している場合は、非常に優れたビルド サーバーとワークステーション マシンを使用することをお勧めします。

どうやら .net 4.0 には、AOP などを簡単に実行できるようにするためのコンパイラ フックが多数含まれる予定です。私たちの最終的な結論は、それを待つことでした。

于 2009-01-06T16:31:07.507 に答える
2

3.5 ランタイムと Silverlight ランタイムの両方で、本番環境で PostSharp を使用しています。ビルドを少し高速化するには、/m: msbuild のスイッチを使用できます (msbuild を使用した並列ビルドの場合は google)。彼らはまた、次のリリースで劇的に高速化することを約束しています.

于 2009-03-05T19:03:59.420 に答える