印刷用ページ       送信     
クリックして評価とフィードバックをお寄せください
 ツールボックス: Web アプリケーション エラーのログ記録、LINQ...
Related Articles

Udi Dahan が、大規模な Software Plus Services 取引アプリケーションの開発中に、予測していなかった問題を彼らのチームがどのようにして識別し、乗り越えていったのかを説明します。

Udi Dahan

MSDN Magazine April 2009

...

Read more!

今月は、AJAX アプリケーションでフォームを使用するケースについて説明し、自動保存、JIT 検証、送信回数の削減などの機能を実装するさまざまな方法を紹介します。

Dino Esposito

MSDN Magazine June 2009

...

Read more!

優れたナビゲーションはユーザーを満足させます。そして、満足したユーザーは皆さんのビジネスにとってプラスになります。今月は、ユーザーを満足させる方法について考えてみたいと思います。

Dr. Charles B. Kreitzberg および Ambrose Little

MSDN Magazine March 2009

...

Read more!

この記事では、同じアプリケーションの 2 つのバージョン (オンプレミス データ サービスを利用するアプリケーションと Azure Table データ サービスを利用するアプリケーション) を取り上げて、クラウドのデータにアクセスする方法について説明します。

Elisa Flasko

MSDN Magazine May 2009

...

Read more!

先月から始めたコール センター クライアント アプリケーションの話題を締めくくります。ここで説明する手法は、Silverlight を使用した現実世界のエンタープライズ ソリューションの構築に役立ちます。

Hanu Kommalapati

MSDN Magazine February 2009

...

Read more!

Also by this Author

今月は、固定長ファイルと区切りファイルへのシリアル化および逆シリアル化に役立つツール、Scott Allen のブログ、Web ページの検査用ツールなどを紹介します。

Scott Mitchell

MSDN Magazine August 2008

...

Read more!

今月は、.NET アプリケーションへのアクティブ レコード パターンの実装について説明し、アスペクト指向プログラミングで考慮事項がどのように分離されるかを示します。

Scott Mitchell

MSDN Magazine February 2009

...

Read more!

今月のツールボックスでは、エラー ログ記録の支援に関する情報を提供し、LINQ クエリの記述に役立つアプリケーションを紹介し、開発の技術以外の側面について探求します。

Scott Mitchell

MSDN Magazine September 2008

...

Read more!

今回のテーマは、Windows フォームのグリッド、洗練された外観の日付テキスト ボックス、ファイルのマージ、およびその他です。

Scott Mitchell

MSDN Magazine November 2007

...

Read more!

今月は、作業の実行に必要ないくつかのツールについて説明します。

Scott Mitchell

MSDN Magazine December 2007

...

Read more!

Popular Articles

サイドバー ガジェットは小さいけれど強力なツールで、驚くほど簡単に作成できます。ここでは、Donavon West がその楽しさを教えてくれます。

Donavon West

MSDN Magazine August 2007

...

Read more!

Chris Tavares は、ASP.NET MVC Framework の Model View Controller パターンが、柔軟性に富み簡単にテストできる Web アプリケーションの作成にどのように役立つかを説明しています。

Chris Tavares

MSDN Magazine March 2008

...

Read more!

James Avery does it again with his popular list of developer tools. This time he covers the best Visual Studio add-ins available today that you can download for free.

James Avery

MSDN Magazine December 2005

...

Read more!

UI パーツ間の対話の基盤となる Windows Presentation Foundation のルーティング イベントとルーティング コマンドについて説明します。

Brian Noyes

MSDN Magazine September 2008

...

Read more!

The MVP pattern helps you separate your logic and keep your UI layer free of clutter. This month learn how.

Jean-Paul Boodhoo

MSDN Magazine August 2006

...

Read more!

ツールボックス
Web アプリケーション エラーのログ記録、LINQ について、その他
Scott Mitchell

Web アプリケーション エラーをログ記録する/確認する
理想の世界では、運用環境でエラーが発生することはないでしょう。データベースや Web サーバーは決してダウンしません。コードは、エラーを引き起こすようなあらゆる状況または入力を正常に処理するように、完璧にテストおよび設計されていることでしょう。実際にはそうはいきません。プログラミングの現場は現実の世界です。常に納期が存在し、機能の要求に終わりはありません、さらに、データベースや Web サーバーがオフライン状態に陥ることもあります。運用環境でエラーが発生した場合は、その詳細をログに記録し、開発チームに迅速に通知することが絶対的に求められます。
ASP.NET アプリケーションのエラーをログ記録するための一般的なソリューションとして、ASP.NET の状態監視システムと Atif Aziz のエラー ログのモジュールとハンドラ (ELMAH: Error Logging Modules and Handlers) の 2 つがあります。どちらのシステムを使用する場合でも、ページ開発者は、指定したログ ソースにエラーの詳細を記録するようにプログラミングできます。加えて、どちらのシステムも、ハンドルされていない例外を自動的にログに記録するためのメカニズムを備えています。
マイクロソフトの状態監視システムは、ASP.NET 2.0 で採用された堅牢で低レベルのフレームワークです。エラーの監視に加えて、アプリケーション ライフサイクル イベント (アプリケーションの起動、シャットダウンなど)、要求レベル イベント、およびセキュリティ関連のイベント (承認違反、成功および失敗したログイン試行など) を含むさまざまなメトリックスを記録することができます。
監視対象のイベントが発生した場合、そのイベントを任意の数の指定されたログ ソースに記録することができます。状態監視システムのログ機能は、プロバイダ モデルの上に構築されているので、開発者は、カスタム ログ プロバイダをプラグインとして利用したり、任意の組み込みプロバイダを使用したりできます。組み込みプロバイダの中には、イベントの詳細を Windows® イベント ログに記録するもの、イベントを SQL Server データベースに書き込むもの、詳細を電子メール アドレス宛てに送信するものがあります。
状態監視システムの使用を開始するには、適切な構成マークアップをアプリケーションの web.config ファイルに追加します。状態監視構成情報には、監視対象のイベント、ログ プロバイダ、および各監視対象イベントの記録方法が含まれている必要があります。
この基本情報に加え、構成マークアップは、ログをバッファ処理するかどうか、ログを開始するまでに発生する必要があるイベントの回数、特定のイベントを記録する最大回数 (それ以降のインスタンスは無視されます) などのオプションを含むことができます。
もう 1 つの一般的なログ オプションである ELMAH は、オープン ソースの HTTP ハンドラとモジュールのセットです。ASP.NET 状態監視システムがさまざまなイベントを監視できるのに対し、ELMAH は、アプリケーション エラーのみを記録するように設計されています。エラーが発生すると、ELMAH は、指定されたログ プロバイダに詳細を記録し、オプションで電子メールを構成可能な受信者のセット宛てに送信します。
ELMAH には、組み込みのログ プロバイダのほか、コミュニティによって作成されたログ プロバイダが多数あります。このようなログ プロバイダには、XML ファイル、SQL Server® データベース、Oracle データベース、および SQLite データベース (軽量のオープン ソース データベース エンジン) を記録先とするものがあります。
ELMAH は、いくつかの興味深い表示機能を備え、ASP.NET のすべてのバージョンをサポートしています。ASP.NET 状態監視システムがログに記録されたイベントを表示するための機能を備えていないのに対し、ELMAH には、エラー ログを Web ページから表示したり RSS フィードとして表示したりできる組み込み HTTP ハンドラが含まれています。また、状態監視システムが ASP.NET 2.0 以降のみに対応するのに対し、ELMAH は ASP.NET 1.0 以降に対応します。
私は、2006 年 8 月のツールボックスで初めて ELMAH を記事にしました (msdn.microsoft.com/msdnmag/issues/06/08/Toolbox を参照)。その後、Atif は、ELMAH を更新して、いくつかの新機能の追加およびパフォーマンス強化 (たとえば例外フィルタ) を行いました。
既に説明したように、ELMAH は既定ですべてのエラーを指定されたログ プロバイダに記録します。ただし、現在では、例外フィルタを使用することで、エラーを破棄する (したがってログに記録しない) 状況を指定できます。さらに、ELMAH の最新バージョンでは、エラー ログ全体を .csv ファイルとしてダウンロードできるようになり、サイズが大きなエラー ログのパフォーマンスも向上しています。
状態監視システムと ELMAH は、根本的には、ASP.NET アプリケーションのエラーを記録するための同じ機能を提供します。異なる種類のイベントを監視できるという理由で状態監視システムを好む開発者もいます。また、組み込みのエラー ログ表示機能や ASP.NET バージョン 1.x アプリケーションのサポートがあるという理由で ELMAH を好む開発者もいます。長い目で見れば、どちらのログ記録プラットフォームを選ぶかは重要ではありません。大切なのは、精密なエラー ログ システムを適切に配置して、避けられないアプリケーション エラーの詳細をすべて記録することです。
価格 : 無料
状態監視システム : go.microsoft.com/fwlink/?LinkId=109807
Error Log in ELMAH  (画像を拡大するには、ここをクリックします)

注目のブログ
最近の同僚との会話の中で、Jeff Atwood 氏のブログ「Coding Horror」にあった投稿について話題にしました。同僚はこのブログを知らず、どのような内容が書かれているブログなのか私にたずねてきました。私は、"コンピュータとプログラミング関連" について書かれているという答えを返すことしかできませんでした。
「Coding Horror」で扱われている内容は多岐にわたっているので、どのようなサイトであるかを説明するのは困難です。このブログには、非常に技術的な記事 (主に ASP.NET および Web 関連のテクノロジ) のほか、優秀なプログラマになるための提案や優れたプロジェクト管理上の決定を行うための提案が書かれています。さらに、各ブランドのマザーボード、マウス、モニタを比較して、コンピュータ ハードウェアを評価している記事もあります。消費者向けガジェットのユーザビリティやデザイン上の欠点、ダイエットやエクササイズのマニア向けの話題、ブログの将来、EULA の問題、DONKEY.BAS の歴史などの記事も登場します。
Jeff 氏は、間違いなく、業界のいくつかの重要な問題の核心に迫っています。ソフトウェアに関する高等教育の現状に対する彼の見解を読んでください。Jeff 氏が指摘しているように、Visual Studio® を使用しているときにどこをクリックするか、といったことから、チューリング マシンの理論まで、ソフトウェアの学習内容は多岐にわたります。では、ソフトウェアを作成する場合の最善のアプローチとは何でしょうか。その答えはここには書きません。ぜひ、Jeff 氏のブログを読んで、答えを見つけてください。
彼のブログは人気があります。75,000 人を超える読者が RSS フィードを購読しているので、山ほどのコメントが寄せられています。加えて、Jeff 氏は他の有名ブログ作成者へのリンクも提供しているので、意見をサンプリングする場所として非常に有用です。唯一のマイナス面は、大量のコンテンツ内を探索するためのツールがないことです。検索ボックスはありますが、カテゴリ別に記事が分類されてはいません。
Jeff Atwood's Blog, Coding Horror  (画像を拡大するには、ここをクリックします)

推薦図書
Microsoft® .NET Framework 3.5 における最も有用な技術革新の 1 つは LINQ です。簡単に説明すると、開発者は LINQ を使用することで、T-SQL の構文を忠実に反映しながら、任意のサポートされているデータ ソース (列挙可能なコレクション、XML ドキュメント、SQL Server データベースなど) を直接クエリするための C# コードおよび Visual Basic コードを記述できます。たとえば、次の C# コードは、ここに定義されている配列に偶数を出力します。
int[] numbers = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
var evens = from p in numbers
            where p % 2 == 0
            select p;

foreach (var e in evens)
    Console.WriteLine(e);
新しい言語構文と LINQ の豊富な機能および複雑さゆえに、私は、オンラインの記事やチュートリアルを探索するのに時間を費やすよりも、本を読んで LINQ について学習する方法を選びました。私が最初に選んだ LINQ 関連の本は、Joseph C. Rattz Jr. 氏によって書かれた『Pro LINQ in C# 2008』でした。
この本は、わかりやすく好奇心をそそられる LINQ の紹介から始まります。この部分では、コレクション、XML ファイル、および SQL Server データベースをクエリするための LINQ の使用法が解説されています。次に、LINQ を可能にしたラムダ式、匿名型、オブジェクト初期化、拡張メソッド、自動プロパティなどの新しい言語機能が簡単に説明されています。
この本の大部分は、LINQ to Objects、LINQ to XML、LINQ to DataSets、および LINQ to SQL を説明する 4 つのセクションに分けられます。各セクションでは、LINQ 構文と、LINQ を使ってこれらの異なるデータ ストアをクエリできるようにする各種のクラスおよびメソッドがていねいに解説されています。LINQ to Objects に関するセクションは、標準クエリ演算子のテクニカル リファレンスとして使用できます。演算子が列挙され、簡単な説明とプログラミング例が示されています。後続のセクションには、有用なヒント、よくある落とし穴、現実により即した例など、LINQ についてさらに有益な情報が含まれています。
最後の LINQ to SQL に関するセクションは、大多数の開発者にとっておそらく最も興味深く有用な章です。当然ながら、内容の 1/3 は LINQ to SQL の説明に費やされ、オブジェクト リレーショナル デザイナと SQLMetal.exe コマンド ライン ツールを使用して基底の SQL エンティティ クラスを作成するための手順が解説されています。これらのクラスを DataContext クラスと共に使用して、データのクエリ、更新、挿入、および削除を行う例も紹介されています。加えて、同時実行制御やトランザクションなどの、より複雑なデータベースの問題を扱う章もあります。
価格 : 44.99 ドル
  

ご意見やご質問は、Scott まで英語でお送りください。 toolsmm@microsoft.com.


Scott Mitchell は、多数の著書を出版し、4GuysFromRolla.com の創設者でもあります。また、1998 年からは Microsoft MVP としてマイクロソフトの Web テクノロジ開発に携わっています。現在は、フリーのコンサルタント、トレーナー、およびライターとして活躍しています。Scott の連絡先は、Mitchell@4guysfromrolla.com (英語) です。また、ScottOnWriting.NET にブログを公開しています。

Page view tracker