Visual WebGUIによるAJAX対応CMS(コンテンツ管理システム)の構築
フレームワークの作成
柔軟なソフトウェアシステムの開発には、強固なフレームワークが不可欠
ダウンロード サンプルソース (148.7 KB)
ワークプレースとモジュールを使った処理の実例
ワークプレースとモジュールを使用したサンプルアプリケーションの構造については既に取り上げました。メインフォームには2つのワークプレースがあります。1つはフォームの左側、もう1つは右側です。左側のワークプレースはDashboardモジュールをロードします。これがさらに他のモジュールを起動することもあり、右側のワークプレースに表示することもあれば、左側のDashboardを置き換えることもあります。図5と図6はその例です。
WTWorkplaceクラスとWTModuleクラスの使い方は簡単です。サンプルアプリケーションのワークプレースの名前は、左側がmainPanel、右側がworkPanelです。DashboardモジュールはWTModuleを継承し、TargetWorkplaceというプロパティを新たに追加しています。このプロパティは、最初は右側のワークプレースworkPanelへの参照を保持しています。
Dashboardをメインフォームにロードするコードは次のとおりです。
private void Form1_Load(object sender, EventArgs e) {
Dashboard d = new Dashboard();
mainPanel.LoadModule(d, null);
d.TargetWorkplace = workPanel;
}
これでDashboardは、自身と同じワークプレースへのモジュールのロード(自モジュールの置き換え)、または右側のワークプレースへのモジュールのロードを行えます。実行例を次に示します。
// Dashboard loads Browser module in right workpanel TargetWorkplace.LoadModule(new BrowserModule(), this); // . . . // Dashboard loads data entry module in own workpanel HostWorkplace.LoadModule(new ModuleName(), this);
ロードされたモジュールは終了時にCloseModule(...)メソッドを呼び出します。呼び出し側のモジュールに渡すべきデータがある場合は、CloseModuleの引数にあるWTCancelGenericEventArgオブジェクトを利用します。次のコードはその例です。
// in called module, in the event handler for Save button
private void buttonSave_Click(object sender, EventArgs e) {
WTCancelGenericEventArgs evt = new WTCancelGenericEventArgs();
// add data to pass back to calling module
Evt["FirstName"]= textFirstName.Text;
Evt["LastnName"]= textLastName.Text;
Evt["Age"]= textAge.Text;
CloseModule(evt);
}
呼び出し側のモジュールがデータにアクセスするときには、キーを使用するか、またはforeachで全データフィールドへの反復処理を行います。
// . . .
// in caller module, the code for Refresh method
public override void Refresh(WTCancelGenericEventArgs e){
// if cancel is true, the called module was closed with cancel button
if (e.Cancel)
statusBar1.Text = "Name was canceled";
else {
ContactBO contact = new ContactBO();
Contact.FirstName = e["FirstName"];
Contact.LastName = e["LastName"];
statusBar1.Text =
string.Format("Welcome, {0}",
e["FirstName"].ToString());
}
}
本稿のダウンロードファイルには、Visual Studio 2005用と2008用の両方のサンプルソリューションが含まれています。Web.Configで開発プラットフォームに合った正しいバージョンを設定してください。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- japan.internet.com翻訳記事連載記事一覧
- この記事の著者
-
japan.internet.com(ジャパンインターネットコム)
japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.com や EarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
Bogdan Zamfir(Bogdan Zamfir)
コンピュータ科学で修士号を取得。1993年から独立系コンサルタント兼ソフトウェア開発者として活躍する。Webアプリケーションとデスクトップアプリケーションの両方を手がける。使用言語とプラットフォームは、C#、VB.NET、Visual FoxPro、Microsoft Access、Visual ...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア


