これは、既存のASP.NetベースのWebアプリ(バックエンドとしてLINQ-to-SQLベースのSQL DBを使用しています)と統合したい、シンプルでありながら効率的なアクティビティログフレームワークに関するものです。私はサービスアーキテクチャのようなものを使用してDB操作を実行しています。つまり、関連するLINQ操作を呼び出しています。私はほぼすべてのエンティティ(つまりDBテーブル)のサービスクラスを持っており、CRUD操作を処理します。
一般に、次のようなアクティビティを追跡する必要があります-Mr.Xが新しいアイテムを追加した、My.Yがこのフィルターで検索した、Mr.Zがグリッドの結果をExcelドキュメントにエクスポートした、など...および同様の簡単な操作ベースのロギング(フィールドレベルのロギングは今のところ遠いです)
それで、SO、他のフォーラム、およびWebでの2日間のR&Dで私が見つけたものは次のとおりです。
アプローチ1: 2つのテーブルを使用する単純な古い方法:Activity(すべてのアクティビティをそのアクターとともに格納する)とActivityType(アクティビティのタイプをリストする)。私はサービスレイヤーを持っているので、すべてのCRUDイベントをタップして関心のあるイベントをログに記録する「ServieBase」クラスを持つことができます。すべてがコード内から処理されます。
例: http ://dotnetslackers.com/articles/aspnet/Tracking-User-Activity.aspx
アプローチ2: データベースTRIGGERを使用して、テーブルレベルでイベントをタップしてから、ログを実行します。これは、アプリにとって完全に「抽象的」です。各テーブルに「LastModifiedBy」フィールドがあるので、「actor」データを取得してログを記録できますが、これによりDB操作が制限され、他のアプリアクティビティを個別に追跡する必要が生じる可能性があります。しかし、その価値があれば、私はそれを考えることができます。
アプローチ3:(概念的、より多くのガイダンスが必要)
3.1 MVCアプローチ-将来的にMVCを採用することを考えており、MVCでいくつかの効率的なロギングトリックを見つけました-(従来のL2SベースのWebアプリのようなものはありますか?)
ASP.NETMVCアプリケーションでユーザーアクティビティをログに記録 するasp.netmvcWebサイトのユーザーアクティビティ/アクションを追跡しますか?
3.2追跡サービスWindowsで「追跡サービス」機能に出くわしました-そのWebに相当するものはありますか?
http://msdn.microsoft.com/en-us/magazine/cc163466.aspx http://www.codeproject.com/KB/WF/WWF__Tracking_Service.aspx?msg=2879654
3.3その他-私が出くわしたがあまり説得力がないように思われる他のいくつかのオプション、または私は彼らが彼らの仕事をしているが私のものではないと言ったほうがいいです:-)
参照-
http://learn.iis.net/page.aspx/480/sample-web-analytics-tracking-module/
SQLプロファイラー: https ://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-5054787.html http://technet.microsoft.com/en-us/ library / cc966515.aspx
それで、何と言いますか?任意の提案や新しい考えを歓迎します。今のところ、最初の2つのアプローチの間のどこかに着陸するようです。これは、将来、ログに記録するアクティビティを追加できるようにするのが簡単になるようにするためです。
ありがとうございました。