はじめに
私としてはよくあることなのですが、本稿のアイデアは私が最近携わったプロジェクトから生まれたものです。詳しい説明は省きますが、とあることを毎日実行する必要がある、というのが基本的な要件でした。
この種の要件を実装するのは初めてではなかったのですが、以前のソリューションを引っ張り出してみると、確かに有効ではあるものの、非常に時代遅れであることが分かりました。そのソリューションは.vbsファイルに書かれていて、WSHから実行するように設計されていました。
つまり、プレーンテキストに書かれていてコンパイルされていないので変更は簡単にできましたが、変更後の動作確認をしたり、新バージョンのスクリプトのデバッグを行ったりするのは、控えめに言っても面倒な(率直に言えばうんざりする)作業でした。
私はもっと良い方法があるはずだと考え、まずコマンドラインの.NETアプリケーションを作成し、それをWindowsのタスクスケジューラでスケジュール設定することを思いつきました。.NET Frameworkの機能を利用できることはもちろんですが、アプリケーションのテストとデバッグも簡単になるだろうと思ったからです。
本稿では、実行をスケジューリングする簡単な.NETのコマンドラインアプリケーションの作成プロセスについて説明します。今回のサンプルアプリケーションは、WebサーバにHTTPリクエストを送り、返されたHTMLをメールの本文として送信します。
必要なツール
コマンドラインアプリケーションをビルドするVisual Studioを持っていない場合は、お好みのExpress Editionをダウンロードしてインストールする必要があります。
どれか1つあれば十分ですが、以降の解説ではVisual Basic 2008 Express Editionを使用します。別の言語を選んだ場合、コードは当然異なってきますが、考え方はまったく同じです。
既にVisual Web Developer 2008 Express Editionを使っていても心配はいりません。Express Editionの製品を複数インストールしていても、そのまま使用できます。