単体入力エラーチェックの実装パターン

さて Part 1. のエントリでは、業務処理の終了パターンの分類と、各アプリケーションタイプにおける基本的な実装パターンを整理しました。要点をまとめると、以下のようになります。 業務処理の終了パターンは、以下のように分類される。 突き合わせエラーについては、バックエンドのモジュール(BC や DAC)との連携によるチェック作業が必要になる。UI 部単体でチェックが可能なのは、単体入力エラーに限られる。 .NET Framework では、UI 開発技術として、ASP.NET, Silverlight, WPF, Windows フォームなど、様々なテクノロジが提供されています。これらの技術には、いずれにも、UI 部において、単体入力エラーチェックを効率よく実装していくための機能が備わっています。(これらの機能は、いずれも単体入力チェックを効率よく実装するための機能であり、突き合わせエラーのチェックや、システムエラーに関する対処を実装するための機能ではありません。いや無理矢理使えば使えるかもしれませんが;、それはこれらの機能が用意された目的や意図とはズレた使い方だと考えるべきだと思います。) ① ASP.NET Web フォーム : 入力検証コントロール ② Silverlight 3, WPF 3 : 例外ベースの双方向データバインド ③ Windows フォーム 2.0, WPF 3.5 : IDataErrorInfo ベースの双方向データバインド さてこれらの機能は、いずれも「単体入力チェックを行う」「フィールド単位のチェックとインスタンス単位のチェックを行う」という点においては違いがありません。しかし、その実装方法や、エラーチェックに対する考え方は、全くといっていいほど違います。この実装方法の特性の違いを理解しておかないと、単体入力エラーチェックをうまく実装できないばかりか、開発生産性をかえって大幅に損なう結果に繋がりかねません。特に、ASP.NET Web アプリケーション開発の入力検証コントロールの使い方に慣れた人が、Windows フォームや WPF などのテクノロジを遣うと、おそらく入力検証のやり方が全くといっていいほど違うため、相当に戸惑うことになるはずです。(というよりも私はむちゃくちゃ戸惑いましたよ....orz) 本エントリの目的は、これらの各テクノロジにおける、実装パターンの違い(実装方法やエラーチェックに対する考え方の違い)を明確化することです。 ① ASP.NET Web フォーム : 入力検証コントロール 検証コントロールを使って、「正しい文字列」を作成する方式 ②…

6

Silverlight 2 開発用 SDK の RTM 版

急に話が飛びますが、せっかくなので^^。昨日~今日にかけて、日本語用のSilverlight 2の開発用SDKがリリースされました。以下のセットでSilverlight 2 の開発環境がそろいます。 Visual Studio 2008 (Professional 以上) ※ SP1 を当ててください。 Expression Blend 2 ※ SP1 を当ててください。 http://www.microsoft.com/downloads/details.aspx?familyid=EB9B5C48-BA2B-4C39-A1C3-135C60BBBE66&displaylang=ja Visual Studio 2008 SP1 用 Microsoft Silverlight Tools http://www.microsoft.com/downloads/details.aspx?FamilyID=c22d6a7b-546f-4407-8ef6-d60c8ee221ed&DisplayLang=ja ※ このぺージの説明が一部 update されていませんが、これが正式リース版になっています。 Silverlight 2 ソフトウェア開発キット ドキュメント(オフラインでも読める製品ドキュメント) http://www.microsoft.com/downloads/details.aspx?FamilyID=bce7684a-507b-4fc6-bc99-6933cd690cab&DisplayLang=ja ようやくこれでツールセットが揃ったので早速インストール作業。今から Workshop のコンテンツの update 作業(β2→RTM)です。ComboBox、TabControlが追加されたのはかなり大きいポイントですね。

1

Part 3. 高度な Silverlight 2 アプリ開発

というわけで、Silverlight 2 & Expression Blend 2.5 の記事の最終回 Part 3. では、ここまでの知識を総括して、XML Web サービス経由でデータベースからデータを取り出して ListBox に表示するアプリケーションを開発してみることにします。 なお、以降の作業は Part 2. で完成させたソリューションファイルに対して行います。Expression Blend から Visual Studio の方に戻り、以下の作業を続けてください。 ※ Part 2. 終了時点のファイルはこちらになります。 [Step 10] データ取得のための XML Web サービスの準備 まず、サーバ側にデータベースからデータを取得して送り返す XML Web サービスを準備します。出版社サンプルデータベースである pubs.mdf ファイルを準備し、以下の作業を行います。(準備できない方は、後ろに書いてある回避策を使ってください。) Web サイトの App_Data フォルダ下に pubs.mdf ファイルを貼り付ける。 App_Code フォルダ下に、Pubs.dbml ファイル(LINQ to SQL の O/R マッピングファイル)を新規作成する。 Pubs.dbml ファイルを開き、サーバエクスプローラからすべてのテーブルをドラッグ&ドロップで追加する。(ドラッグ&ドロップできたらファイルはセーブしておきます。)…

2

Part 2. Expression Blend との連携

さて、引き続き Part 2 では、Expression Blend との連携方法と、このツールの使い方について解説していきます。 Expression Blend は、WPF や Silverlight 2 で用いられている新しい UI 概念に基づいて作られた UI デザイナツールであり、特にコントロールの配置(レイアウト)の手法に関する考え方が、従来とは全くといっていいほど異なっています。このため、このツールに触れた直後は「どう使えばいいのかさっっっっぱりわからない」になると思いますが、WPF/SL2 の UI 概念とリンクさせながら理解すると、簡単に使いこなせるツールになっています。 というわけで、以下に Expression Blend による画面デザイン手法について解説していきます。ここでは、最終ゴールとして以下のような画面を作るという前提で、この画面を Expression Blend でデザインしていく手法を解説します。 [Step 5] Expression Blend の起動 Expression Blend は、Visual Studio と同じソリューションファイルを利用するため、Visual Studio で開発したプロジェクトをそのまま開くことができます。連携のためのショートカットも用意されており、Visual Studio の開発画面から右クリックを押すことで、Expression Blend を起動することができます。 Expression Blend を起動すると、セキュリティ警告が出ますが、ここではそのまま無視して進んで構いません。完了すると、Expression Blend 上で Visual Studio 2008 の Silverlight 2 プロジェクトが開かれます。…

4

Part 1. 最も簡単な Silverlight 2 アプリ開発

というわけで今日は TechEd 2008 Yokohama の会場に来てます。今回は MCS がコンサルティングサービス体験コーナーを出展していて、そのヘルプで来てるんですが、なにげにお昼までは出番がない…… というわけで、昨日書きかけた原稿を完成させるべく控え室で Live Writer と格闘中。そんなわけで、早速 SL2 アプリの開発を見て行きます。 まず Part 1. では、以下の項目について解説したいと思います。 Visual Studio 2008 を使った Silverlight 2 アプリ開発の基本 Hello World Silverlight 2 アプリの開発 XML Web サービス連携の基本 なお、本資料を書くにあたっては、Silverlight 2 beta 2 chained installer の SDK キットと、Expression Blend 2.5 June Preview (日本語版) を利用しています。こちらのセットアップ方法については解説しませんので、必要な方はネットを検索してみてください。 [Step 1] Silverlight 2 プロジェクトの新規作成 まず、VS2008 を起動して、新規に Silverlight…

2

Hello World, Silverlight 2 !!

というわけで、まずしょっぱなは VS2008 と Expression Blend 2.5 を使った Silverlight 2 のアプリケーション開発の基本について説明してみたいと思います。実は今年の TechEd 2008 では Silverlight 2 の説明をやりたかったんですが、技術調査が間に合わずに断念……してしまったので、ここで解説してみようと思います。(TechEd の Agenda 締め切りってめっちゃ早いんですよ……とまあそれはともかく。) さて、Silverlight 2(以下 SL2)は WPF のサブセットのプログラミングモデルを持っています。この WPF は、もともと以下の 3 つの異なるプログラミングモデルを統合するために開発されたフレームワークでした。 ドキュメントタイプのコンテンツ(HTML のようなワープロタイプのコンテンツ) 固定座標レイアウトタイプのフォーム(Windows フォームのようなもの) 3D ベクターグラフィックス(DirectX のようなもの) 従来、全く異なるプログラミングモデルで開発されていたこれらのアプリケーションを、XAML を中心とした一つのプログラミングモデルで開発できるようにしたのが WPF であり、サブセットである SL2 も同じ特徴を持ちます。しかしこの WPF/SL2 のプログラミングモデルでは、レイアウトシステムやコンテンツ合成モデルなどの新しい UI 構築概念が導入されており、これらの特有の概念を理解しないと、WPF や SL2 を「全く」使いこなせないと思います。特に、Expression Blend はこの WPF, SL2 の UI 概念に基づいて作られたツールなので、起動したはいいけどなにしていいのやら、という状態にもなるかと思います。…

1