図 2. プロジェクト "EventUIWin" の追加 なお、デフォルトで作成される "Form1.vb" は使用しないため削除します。 |
| テンプレート | ファイル名 |
|---|---|
| クラス | SessionEntry..vb |

図 5. クラス "SessionEntry" の追加
まず始めに、認証情報として使用する NetworkCredential クラスを使用する、下記の赤字のコードを記述します。
Public Class SessionEntry ' 認証情報 Private nc As System.Net.NetworkCredential Public Sub New() ' 認証情報設定 nc = New System.Net.NetworkCredential("user01", パスワード) End Sub End Class
認証情報として使用する NetworkCredential クラスを Private フィールドとして宣言し、コンストラクタ内にてWeb サービスの認証情報へ基本認証を行うためのユーザー名およびパスワードを設定します。
※ユーザー名およびパスワードについては、 今回のサンプル用に認証専用のユーザーを作成するなど Web サービスが動作するマシンで認証が可能な任意のユーザー名およびパスワードを設定ください。
次に、"GetEntry" メソッドおよびメソッドコードを実装します。
Public Class SessionEntry … Public Function GetEntry(ByVal EventID As Integer) As SessionEntryWS.SessionEntryDataSet Dim ds As New SessionEntryWS.SessionEntryDataSet() Dim se As New SessionEntryWS.SessionEntry() ' 認証情報設定 se.Credentials = nc ' セッションリスト取得 ds = se.GetEntry(EventID) ' 取得したデータセットを返す Return ds End Function End Class
認証情報を設定した後、 Web メソッド "GetEntry" よりセッションリストを取得し "SessinoEntryDataSet" を返します。
更に、セッション参加登録処理である "UpdateEntry" メソッドおよびメソッドコードを実装します。
Public Class SessionEntry … Public Function UpdateEntry(ByVal ds As SessionEntryWS.SessionEntryDataSet) As Integer Dim se As New SessionEntryWS.SessionEntry() ' 認証情報設定 se.Credentials = nc ' セッション参加登録 Return se.UpdateEntry(ds) End Function End Class
認証情報を設定した後、 Web メソッド "UpdateEntry" にてセッション参加登録を行い、戻り値をそのまま呼び出し元へ返します。
次のステップ以降で本クラスを使用するため、 "SessionEnrty.vb" ファイルを一度保存します。 ( メニュー [ファイル] - [App_Code/SessionEntry.vb の保存])

Windows フォームのデザインおよびデータ連結の設定を行います。
まずは、Windows フォーム "SessionEntryForm" を追加します。
メニューより [ プロジェクト ] - [ Windos フォームの追加 ] の順に選択後、Windows フォーム "SessionEntryForm" を追加します。
| テンプレート | ファイル名 |
|---|---|
| Windows フォーム | SessionEntryForm.vb |

図 6. Windows フォーム "SessionEntryForm" の追加
追加した Windows フォーム "SessionEntryForm" へ、下記の通りコントロールを配置します。
Windows フォームのデザインなどについては、 「10 行でズバリ !! Windows フォームによるクライアント アプリケーション開発 (VB)」を参照ください。

図 7. Windows フォーム "SessionEntryForm" デザイン
なお、配置したコントロールへ以下の設定を行います。

図 8. Windows フォーム "SessionEntryForm" コントロール調整
次に、 DataSet コンポーネント (ツールボックス / データタブ内) を配置し、型指定されたデータセットより Web サービスにて公開されている "SessionEntryDataSet" を選択します。

図 9. データセット "SessionEntryDataSet" の追加
更に、配置したコントロールの各プロパティを設定し、データソースを設定行います。
| コントロール | プロパティ | 設定値 |
|---|---|---|
| BindingSource1 | DataSource | 他のデータベース - SessionEntryForm 一覧インスタンス -- SessionEntryDataSet1 |
| DataMember | SessionEntry | |
| BindingNavigator1 | BindingSource | BindingSource1 |
| DataGridView1 | DataSource | BindingSource1 |
最後に、 DataGridView の列の設定を行い "EventID" と "ProfileID" 列を非表示に設定します。
配置した DataGridView のスマート タグをクリックし、 [ 列の編集 ] をクリックします。
[ 列の編集 ] ダイアログにて、 "EventID" および "ProfileID" 列のプロパティ "Visible" を "False" に設定します。

図 10. 非表示列の設定
以上で、 Windows フォームのデザインおよびデータ連結の設定が完了しました。

図 11. Windows フォーム "SessionEntryForm"

Step 4 にて追加したクラス "SessionEntry" を使用し、各ボタンのボタン クリック イベントにて、セッションリスト参照処理およびセッション参加登録処理を実施します。
まず始めに Button1 ("参照") コントロールをダブルクリックし、イベント ハンドラとして下記の赤字のコードを実装します。
Private Sub Button1_Click(…) Handles Button1.Click Dim obj As New SessionEntry() Me.SessionEntryDataSet1 = obj.GetEntry(2) Me.BindingSource1.DataSource = Me.SessionEntryDataSet1 End Sub
SessionEntry オブジェクトを作成後、 "GetEntry" にて新しいセッションリストのデータセットを取得し、 "SessionEntryDataSet1" および "BindingSource1.DataSource" へその参照を再設定します。
次に Button2 ("登録") コントロールをダブルクリックし、イベント ハンドラとして下記の赤字のコードを実装します。
Private Sub Button2_Click(…) Handles Button2.Click Dim status As Integer Dim obj As New SessionEntry() ' データ検証および編集操作の終了 Me.Validate() Me.BindingSource1.EndEdit() status = obj.UpdateEntry(Me.SessionEntryDataSet1) ' ステータスによるメッセージボックス表示 Select Case status Case 0 MessageBox.Show("更新完了") Case 1 MessageBox.Show("その他エラー", "エラー", _ MessageBoxButtons.OK, MessageBoxIcon.Error) Case 2 MessageBox.Show("同時実行制御エラー", "エラー", _ MessageBoxButtons.OK, MessageBoxIcon.Error) Case Else MessageBox.Show("ステータス エラー", "エラー", _ MessageBoxButtons.OK, MessageBoxIcon.Error) End Select End Sub
SessionEntry オブジェクトを作成後、 "UpdateEntry" にてセッション参加登録を実施し、戻されたスタータスに応じたメッセージを表示します。なお、編集中のデータ検証および編集内容をデータセットへ反映するコードをデータセットを使用する前に実施します。
以上で、実装は完了です。
作成した Windows アプリケーションから実行させるために "EventUIWin" をスタートアップ プロジェクトへ設定します。
ソリューション エクスプローラ上で、 " EventUIWin" Windows アプリケーションを選択後、メニューより [ プロジェクト ] - [ スタートアップ プロジェクトに設定 ] を選択し、 "EventUIWin" をスタートアップ プロジェクトへ設定します。
更に、 Windows フォーム "SessionEntryForm.vb" をスタート フォームへ設定します。
メニューより [ プロジェクト ] - [ EventUIWin のプロパティ ] を選択し、 "EventUIWin" プロジェクトのプロパティ [ アプリケーション ] タグ- [ スタートアップ フォーム ] の項目にて、 "SessionEntryForm" を設定します。
最後に、 "EventUIWin" をビルドします。
メニューより [ ビルド ] - [ EventUIWin のビルド ] を選択し、正しくビルド出来ることを確認します。

作成した Windows アプリケーションを実行します。
"EventUIWin" の実行 (デバックなしで開始) を実施し、Windows アプリケーションを実行します。
実行後、 "参照" ボタンをクリックすると、セッションリストが表示されます。

図 12. セッションリスト参照
セッションリスト参照については、以下の流れで実施されます。

図 13. セッションリスト参照
次に、任意の行の "Entried" 列のチェックボックスを変更後、"登録" ボタンをクリックすると、セッション参加登録を実施します。

図 14. セッション参加登録
セッション参加登録については、以下の流れで実施されます。

図 15. セッション参加登録
なお、同じセッションに対して編集を行うと例外処理により、同時実行制御エラーが表示されます。

図 16. 同時実行制御エラー
ここまでで、サンプル アプリケーション "イベント 2005" の Windows アプリケーション開発が完了しました。
今回の Visual Studio 2005 によるプレゼンテーション層の開発については、下記のものを使用して行いました。
このように、プレゼンテーション層の開発についても、 Web や Windows など使用するテクノロジーに特化した各種コントロールなどを利用することにより、効率よく開発を行うことが可能です。
また、サービス コンポーネントの利用については、異なるテクノロジーにおいても、 Web 参照を含め同じスタイルで使用することが可能です。
以上で、イベント 2005 プレゼンテーション層の開発は完了となります。
Top of Page