ツールボックス
オンライン スケジュール、Jeff Smith の SQL ブログ、簡単な正規表現、その他
Scott Mitchell
すべての価格は 2008 年 9 月 18 日時点のものであり、変更される可能性があります。このコラムに記載されている見解は、執筆者の個人的な見解であり、必ずしもマイクロソフトの見解を反映するものではありません。

目次
カレンダーおよびスケジュールのオンライン インターフェイスを作成する
多くのビジネス アプリケーションでは、ユーザーが特定の日付および時刻に対して、資産をリソースに簡単に割り当てられることが求められます。たとえば、医師のオフィスで利用されるソフトウェアでは、医師、患者、装置などの資産を、オフィスや部屋などのリソースに対してスケジュール設定する必要があります。また、タイム シート アプリケーションでは、従業員の時間および活動をプロジェクトや会議に関連付けます。
ASP.NET には Calendar Web コントロールが含まれていますが、このコントロールには、堅牢なスケジュール ユーザー インターフェイスに必要な特性や機能が欠けています。幸運なことに、Dan Letecky の DayPilot 4.8 を使用すれば、プロ仕様の機能豊富なスケジュール機能を簡単に実装できます。DayPilot は、カレンダーおよびスケジュール用の AJAX 対応ユーザー インターフェイスを表示する Web コントロールのコレクションです。DayPilot では、インストール後すぐに、月、週、または日のビューを使用して特定の資産のスケジュールを表示できます。これらのユーザー インターフェイスは、Microsoft Outlook の予定表など、デスクトップ ベースのスケジュール アプリケーションで使用されているのと同様なものです。
また、スケジューラ ビューでは、左の列にリソースの一覧が表示され、日付と時刻が上の行に表示されます。このビューでは、リソースの割り当て状況がすぐにわかり、競合や使用可能なリソースを簡単に特定できます。
DayPilot コントロールに表示される情報は、いくつかの方法で指定できます。この情報は、プログラムで配列として提供できます。データが XML ファイルまたはデータベースに格納されている場合は、データ ソース コントロールを使用するか、またはプログラムでデータをバインドできます。データが表示されたら、各種のプロパティを使用して外観をカスタマイズできます。さらに、多くのイベントおよび拡張ポイントがあるため、これらのコントロールの表示や動作を簡単にカスタマイズできます。たとえば、わずか数行のコードを使用するだけで、資産またはリソースに基づいてイベントに異なる背景色を使用するよう DayPilot に指示できます。
DayPilot の最も魅力的な側面は、その統合された AJAX サポートです。DayPilot のユーザー インターフェイスでは、エンド ユーザーがスケジュール設定されたイベントをドラッグ アンド ドロップしたり、クリック、ドラッグ、およびダブルクリックによりイベントの長さや情報を変更したりできます。また、ユーザーが既存のスケジュール設定済みイベントを右クリックすると、統合されたコンテキスト メニューが表示されます。このコンテキスト メニューを使用して、選択したイベントを変更または削除したり、何らかのカスタム アクションを実行したりできます。
この記事を書いている時点で、DayPilot は Internet Explorer 6.0 以上および Firefox 2.0 以上で十分に動作確認済みです。開発ロードマップでは、Safari と Opera の両ブラウザのサポートも予定されています。
DayPilot には、2 つのエディションがあります。無料のオープンソース バージョンと、Pro バージョンです。簡単に言うと、オープンソース バージョンでは日と週のビューを読み取り専用で使用できます。月およびスケジューラのビューを使用したり、ユーザーが DayPilot ユーザー インターフェイスからイベントを移動して編集できるようにしたりするには、Pro バージョンを使用する必要があります。
価格: オープンソース バージョンは無料、Pro バージョンは 549 ドルです。
DayPilot によって機能豊富なスケジュール機能を簡単に実装 (クリックすると拡大画像が表示されます)
注目のブログ
ほとんどのアプリケーション開発者は、データベースの情報を取得および変更するためのクエリ言語である SQL の実用的な知識を持っています。データを選択し、結果のフィルタ処理や並べ替えを行い、レコードを更新、削除、挿入するなど、データ駆動型アプリケーションで実行されるほとんどの一般的なタスクの実行方法はわかっていますが、通常の範囲を超えたデータ関連の問題に突き当たると、行き詰ってしまいます。SQL のスキルを強化するために、Jeff Smith のブログをチェックしてみてください。Jeff は、SQL に精通した .NET 開発者です。データベース デザインに関する記事やガイダンスと共に、毎週いくつかのヒントや秘訣を投稿しています。
Jeff のブログ エントリでは、GROUP BY ステートメントでの ALL キーワードの機能、左側と右側の外部結合の違いとその比較、グループごとの上位 n パーセントの取得方法、データベースのデザイン時に列のデータ型を選択する最良の方法など、さまざまなトピックが扱われています。また、各ブログ エントリは、現実に即して記述されており、読みやすく理解しやすいものになっています。
どうにも手に負えないような特別に厄介なクエリはありませんか。Jeff に質問を送ってみてください。あつかましいと思われないかなどと遠慮する必要はありません。Jeff は読者からの SQL に関する電子メールでの質問を歓迎しています。これらの質問や回答は、他のユーザーにも役立つように、Jeff のブログに投稿されます。質問がない (または質問を送る勇気がない) 場合でも、他のユーザーからの質問と Jeff の解決策を読むことで、多くを学ぶことができます。
自分専用の正規表現アシスタント
正規表現は、文字列パターンのマッチングに使用する簡潔な構文であり、テキストの本文中で文字列を検索または置換するための理想的な方法でもあります。正規表現は一般に、特定のパターンに従う必要のあるユーザー入力 (電話番号、電子メール アドレスなど) の検証や、高度な検索置換シナリオで使用されます。
通常、短く単純な正規表現であれば、読むのも書くのも簡単ですが、より長く、より複雑なものになると、扱いは一般に困難です。長い正規表現は、リテラル文字、特殊記号、グループ、キャプチャ、検索機能などが寄せ集められたものであり、判読不能な文字のかたまりとなってしまいがちです。正規表現の作成、解析、テスト、デバッグの助けとして、Just Great Software の RegexBuddy 3.1.1 をお試しください。
RegexBuddy では、[Insert Token] (トークンの挿入) ツール バーにより、正規表現をポイント アンド クリックで簡単に作成できます。まず、正規表現に追加するトークンを選択します。これは、リテラル テキスト、および数字、スペース、英字などの文字クラス、キャプチャまたは非キャプチャのグループ、前方参照などです。RegexBuddy は、正規表現をテキストとして表示する一方、トークンのツリーとしても表示します。[Insert Token] (トークンの挿入) ツール バーから新しいトークンを追加すると、該当するトークンがツリーに追加され、正規表現が更新されます。ツリーからトークンを選択すると、正規表現で対応する文字が強調表示されます。逆に、正規表現で文字を選択すると、ツリーで対応するトークンが強調表示されます。
このトークン ツリー ビューは、既存の扱いにくい正規表現を理解するのに役立ちます。正規表現を RegexBuddy に貼り付けると、トークン ツリーが自動的に読み込まれ、正規表現の各トークンの動作が 1 つずつ順番に説明されます。
RegexBuddy は、正規表現のテストやデバッグのためのツールを提供します。正規表現を作成または入力したら、[Test] (テスト) タブでそれを試すことができます。テキストの本文は、手動で入力するか、またはファイルや URL から読み込みます。テキストの本文に一致するパターンがあると、自動的に強調表示されます。[Debug] (デバッグ) タブでは、パーサーがテキスト本文を正規表現に対してどのように評価するかを調べることができます。
RegexBuddy は、正規表現のリポジトリとしても機能します。正規表現を保存できる [Library] (ライブラリ) タブがあります。また、[Library] (ライブラリ) タブには、HTML および XML 処理、数値および日付文字列の処理など、一般的なタスクを実行するためのさまざまな正規表現があらかじめ用意されています。RegexBuddy では、アプリケーション内から正規表現を使用するために必要な Visual Basic または C# のコードを作成することもできます。言語と実行する動作 (テキスト本文内の正規表現との一致の検索、一致した正規表現から別の文字列への置換など) を選択すると、RegexBuddy は対応するソース コードを表示します。
価格: 39.95 ドル
RegexBuddy で正規表現をテキストおよびトークンのツリーとして表示 (クリックすると拡大画像が表示されます)
推薦図書
『The Productive Programmer』 (O'Reilly、2008 年) では、Neal Ford が開発者の生産性向上に役立つ実証済みの技法を紹介しています。この本の最初の部分では、開発者の生産性を高めるための動作およびツールについて述べられ、次の部分では、より合理化された開発プロセスのために寄与するソフトウェア開発手法に焦点を当てています。
Ford は早くから、コンピュータを生産的に使用するメカニズムに注目してきました。ここでは、一般的なプログラミング関連タスクの実行に必要な時間を短縮するためのヒントおよびツールが紹介されています。彼は、生産性向上のために DRY (Don't Repeat Yourself) 原則を信奉し、バージョン管理から技術文書までのさまざまな領域で無用な繰り返しを避ける方法の例を示しています。
ソフトウェア開発手法が不適切であると、これらの生産性向上が簡単に帳消しになってしまうと Neal は注意を述べています。不要な機能の追加、コードの不十分なテスト、オブジェクトを正しくカプセル化しないなどは、すべてバグや保守性の低いコードへとつながる悪習です。
開発者の生産性で重要なもう 1 つの側面は、進んで現状を疑ってみる態度です。あまりに多くの開発者が、型にはまってしまい、単にいつもそうしているからという理由で特定のデザイン パターンやコーディング技法を繰り返し使用し、より効率が高いかもしれない別の手法を見落としたり拒否したりしています。
『The Productive Programmer』には、特定のフレームワークに対する多数のコード例や説明が含まれていますが、それらは .NET 開発者にとっては残念なことに、Java および Ruby に焦点が当てられています。また、取り上げているツールのいくつかは UNIX ベースまたは Mac OS システムに対応したものです。ただし、提示されたアイデアの大部分はアーキテクチャ、フレームワーク、プログラミング言語に依存しないので、すべてのプログラマにとって、ソフトウェア アプリケーションのより適切で迅速な構築の手助けとなります。
価格: 39.99 ドル