色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

使用 MEF 公開 Silverlight MVVM 應用程序中的接口

  下載代碼示例

  許多開發(fā)人員可能都將 Silverlight 視為以 Web 為中心的技術(shù),但實際上,它已經(jīng)成為構(gòu)建任何應用程序的優(yōu)秀平臺。 Silverlight 本身就支持許多概念,例如數(shù)據(jù)綁定、值轉(zhuǎn)換器、導航、瀏覽器外操作和 COM 互操作,因此它可以相對直觀簡便地創(chuàng)建任何種類的應用程序。 我說的是“任何種類”,其中當然也包括企業(yè)級應用程序。

  利用 Model-View-ViewModel (MVVM) 模式來創(chuàng)建 Silverlight 應用程序,這使您除了能夠使用 Silverlight 中已有的功能以外,還能獲得更強的可維護性、可測試性以及用戶界面與其背后的邏輯之間的可分離性。 當然,您不需要完全靠自己來解決所有問題。 有很多信息和工具可以幫助您入門。 例如,MVVM Light Toolkit (mvvmlight.codeplex.com) 是一款輕量級框架,用于通過 Silverlight 和 Windows Presentation Foundation (WPF) 來實現(xiàn) MVVM;借助代碼生成,WCF RIA 服務 (silverlight.NET/getstarted/riaservices) 可幫助您輕松訪問 Windows Communication Foundation (WCF) 服務和數(shù)據(jù)庫。

  利用托管可擴展性框架 (mef.codeplex.com)(簡稱為 MEF),您可以進一步擴展 Silverlight 應用程序。 此框架提供了探測功能,可利用組件和復合創(chuàng)建可擴展的應用程序。

  在本文的其余部分,我將介紹如何使用 MEF 來集中管理 View 和 ViewModel 創(chuàng)建工作。 當您獲得此工具之后,所能做到的就不只是將 ViewModel 放入 View 的 DataContext 中了。 所有這些都將通過自定義內(nèi)置的 Silverlight 導航來實現(xiàn)。 當用戶導航到給定的 URL 時,MEF 會攔截此請求,查看路線(有點類似于 ASP.NET MVC),查找匹配的 View 和 ViewModel,通知 ViewModel 發(fā)生了什么,然后顯示 View。

  Getting Started with MEF

  由于 MEF 是將本示例中所有部分都連接起來的引擎,因此最好從它開始。 如果您還不熟悉 MEF,請先閱讀 Glenn Block 的文章“在 .NET 4 中使用托管可擴展性框架構(gòu)建可組合的應用程序”,該文章發(fā)表在 MSDN 雜志 的 2010 年 2 月號上 (msdn.microsoft.com/magazine/ee291628)。

  首先,您需要處理 App 類的 Startup 事件,以便在應用程序啟動時正確配置 MEF:

private void OnStart(object sender, StartupEventArgs e) {
// Initialize the container using a deployment catalog.
var catalog = new DeploymentCatalog();
var container
= CompositionHost.Initialize(catalog);
// Export the container as singleton.
container.ComposeExportedValue<CompositionContainer>(container);
// Make sure the MainView is imported.
CompositionInitializer.SatisfyImports(this);
}

NET技術(shù)使用 MEF 公開 Silverlight MVVM 應用程序中的接口,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 庆城县| 清河县| 外汇| 滦南县| 姜堰市| 醴陵市| 无为县| 枝江市| 崇明县| 保德县| 荥经县| 漠河县| 大竹县| 山阴县| 孟连| 安徽省| 广饶县| 濮阳县| 格尔木市| 湟源县| 尖扎县| 靖州| 类乌齐县| 库伦旗| 昌图县| 文水县| 思南县| 儋州市| 综艺| 武定县| 双辽市| 栾川县| 依兰县| 金阳县| 通道| 江华| 班戈县| 襄汾县| 疏勒县| 广南县| 儋州市|