検索
特集

初めて作る.NET WindowsサービスVisual Studio Magazine(7/7 ページ)

特にUIを持たずWindowsのバックグラウンドで動作する「Windowsサービス」。この特集では、実践的な開発手法レクチャーとして、.NETアプリケーションにモニタリング機能を提供するWindowsサービス作成方法を解説していく。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

 実際のところおそらく実環境では、この種のモニタリングの設計は採用しないだろう。そのわけは、ファイルI/Oと単純にしすぎた整数のサービスコマンドに頼り切っているためだ。

 よりエレガント(だが複雑な)設計では、サービスのOnStartメソッドにおいて、分離されたスレッドを生成するようにするだろう。このスレッドでは、アプリケーションのモニタリングコマンドのためのメッセージキューを初期化する。そうしておいて、AppMonitorサービス自身が整数コマンドを実行するのではなく、MonitorWrapperクラスがメッセージキューと通信するように変更する。

 新しいWindowsサービスの配置準備が整ったら、それをコンパイルして改訂し、現在のバージョンと共にサイドバイサイドで実行できるよう、新しいMonitorWrapperクラスをGACに配置する(訳注:サイドバイサイドとは、.NET Frameworkにおいてコンパイルした時に、参照設定したアセンブリと同じバージョンのアセンブリを実行時にも使う機能)。古いAppMonitorサービスと並行してサイドバイサイドで実行できるようにするために、新しいWindowsサービスにはバージョンに依存する重複しない名前を与えることになる。

 デスクトップアプリケーションが新しいモニタリングの設計を利用できるようにするには、単に新しいMonitorWapperクラスを参照設定し直して再コンパイルするだけでよい。これで、.NETでWindowsサービスを開発する基礎知識が身に付いたはずだ。

 すでにお分かりのように、Visual Studio .NET 2003では、サービスを簡単に作成ならびに配置できる。そしてサービスイベントのフックはどんな.NET言語でも構築でき、もっとも複雑とも言えるWindowsサービスを構築するときの強い基盤となってくれる。

 今回例示した単純な設計は、より高負荷に耐えられるようにするために容易に拡張可能だ。そうとはいえ、本稿は「Getting Startedコラム」だ(訳注:原文はVisual Studio Magazineの「Getting Startedコラム」に掲載されたものである)。それゆえ、スレッドやMSMQを使ってどのようにAppMonitorサービスを拡張させればよいのかという点については、後の課題としたい。

 理想的なモニタリングの設計には、私が過去6カ月の間にVisual Studio Magazineに書いた.NETのテクノロジー(スレッドやMSMQ)とWindowsサービスとを組み合わせて、このAppMonitorサービスを改良すれば良いとだけ書いておこう。

著者について:

Doug Thews氏は、ダラスのD&D Consulting Servicesのソフトウェア開発ディレクター。C/C++、VB/ASP、VB.NET/C#による19年以上のソフトウェア開発経験がある。Visual Studio Magazineの「Getting Startedコラム」の執筆者で、「Professional ASP.NET Performance」(Wrox/Wiley Press刊)の共著者)

日本語訳:大澤文孝

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

前のページへ |       

© Copyright 2001-2005 Fawcette Technical Publications

ページトップに戻る