プログラムコードの追加
最後に、アプリケーションにプログラムコードを追加してみましょう。Studentテーブルに年齢計算用のAge列を追加し、年齢計算のためのコードを記述します。
以下の手順で作成します。
[10]StudentテーブルにAge列を追加する
Studentテーブルに年齢計算用のAge列を追加します。
ソリューションエクスプローラーで[StudentSet]をダブルクリックすると、Stuentテーブルのテーブルデザイナが表示されます。次に、デザイナ上部にある[Computed Property]ボタンをクリックします(図32)。
すると[Property1]という列名で計算プロパティ(Computed Property)が追加されます。テーブルデザイナ上で、列名を「Age」に変更し、データ型を[String]から[Int32]に変更します(図33)。
次に、Age列のプロパティウィンドウで[Is Computed]プロパティのチェックボックスがオンになっていることを確認します。これにより、追加したAge列が計算プロパティであることが分かります。計算プロパティでは、値をデータベースに格納せず、毎回プログラムにより値を計算します。
さらにプロパティウィンドウで[Display Name]プロパティの値を「年齢」に設定します。
[11]年齢計算のためのコードを追加する
年齢を計算してAge列の値に設定するプログラムコードを追加します。
Age列のプロパティウィンドウで[Edit Method]リンクをクリックします(図34)。
すると、Student.csファイルが表示されます。リスト1のように、Age_Computeメソッドにコードを追加します(太字部分)。
public partial class Student { partial void Age_Compute(ref int result) { // Set result to the desired field value if (BirthDate != null) { // うるう年を無視した簡単な年齢計算の値を、Age列に設定する result = (new DateTime((DateTime.Today - (DateTime)BirthDate).Ticks)).Year - 1; } } }
自動生成されたStudentクラスのAge_Computeメソッドにより、Age列の値を計算して設定できます。追加コードでは、BirthDate列にデータが格納されている場合、今日の日付と生年月日から年齢を計算しています。コードをシンプルにするために、うるう年を無視した簡単な年齢計算となっているのでご了承ください。
[12]生徒検索画面を修正する
生徒検索画面で、年齢を表示するように修正します。
ソリューションエクスプローラーで[生徒検索画面]をダブルクリックすると、生徒検索画面のデザイナが表示されます。次に[DataGrid | 生徒Collection]を展開し、その中にある[DataGridRow | Student]を展開します。そして[Add]メニューボタンをクリックし[年齢]をクリックします(図35)。
すると、年齢表示用のLabelコントロールが追加されます。
[13]生徒検索画面を実行して確認する
ここまでの手順で、StudentテーブルにAge列を追加し、年齢計算用のプログラムコードを記述できました。それでは、動作を確認してみましょう。
デバッグ開始を実行してビルドが完了すると、アプリケーションが起動して、先生一覧画面が表示されます。右側の[Tasks]の一覧から[生徒検索画面]をクリックすると、生徒検索画面が表示されます。生徒データを見てみると、生年月日から計算した正しい年齢が表示されていることが分かります(図36)。
以上で、サンプルは完成です。
まとめ
本稿では、マイクロソフトの新しい開発環境であるVisual Studio LightSwitchを紹介しました。そして、実際にシンプルなデスクトップアプリケーションを作成してみました。マウス操作によるテーブル設計と画面設計だけで、簡単にビジネスアプリケーションを作成できることがお分かりいただけたのではないでしょうか。さらに、プログラムコードを追加してアプリケーションをカスタマイズすることが容易であることもご理解いただけたと思います。
読者の皆さんも、ぜひLightSwitchを実際にインストールして、LightSwitchによるビジネスアプリケーション開発の手軽さや、楽しさを味わってみてください。