欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
張文韜 : 組合界面程序塊介紹(Composite UI Application Bloc...

組合界面程序塊介紹(Composite UI Application Block)

 看來(lái)微軟要全力推SmartClient了,Application Block推出了一個(gè)又一個(gè)。我們這個(gè)項目既然要用SmartClient,自然會(huì )關(guān)注這些好東

東。目前我們確定要使用的Application Block 包括, Offline 和 CompositeUI 。有的同學(xué)就會(huì )說(shuō),這些個(gè)Block實(shí)在是太復雜,不好用。確

實(shí)他們的代碼都很復雜,滿(mǎn)是什么模式XXX一大堆。但是用起來(lái)卻不是很難。這里就介紹一下CAB(Composite UI Application Block)的基本使

用方法。注意是使用方法和一些使用原則的東西,因為還沒(méi)有深入去分析具體的代碼。
  
首先介紹一下CAB是個(gè)什么東西,CAB最大的特征是她就是一個(gè)IOC界面容器,它可以根據容器內組件的依賴(lài)關(guān)系自行組裝,以解除耦合,CAB中

的View,Controler,以及Service組件都是通過(guò)該容器自行組裝,以完成業(yè)務(wù)操作。CAB中的 Event attribute 和 command attribute 又為解

耦提供了許多方便?!?br>  下面中就幾個(gè)主要和我們打交道的類(lèi)做一下介紹。
(1)  SmartParts
     就是我們最小的界面組件,并且和WorkItem中的View一一對應。聲明SmartPart的方式也非常簡(jiǎn)單。比如

[SmartPart]public partial class DropRegistration : UserControl{}


在類(lèi)DropRegistration上面加上[SmartPart]這個(gè)屬性就好。容器就會(huì )認為這個(gè)是一個(gè)SmartPart,在需要的時(shí)候會(huì )將其注入到需要的類(lèi)中。一般

在View上設計展示給用戶(hù)的最小元素,比如一個(gè)登陸框。你可以用SmartPartHolder或是WorkSpace來(lái)裝載顯示它。
(2)  WorkSpace
    是顯示組件的容器,WorkSpace中的WorkItem都是通過(guò)傳入的WorkSpace來(lái)顯示自己。CAB中提供了幾種WorkSpace,不同的展示方式。
  1)MdiWorkspace:把WorkItem 作為一個(gè)子窗體進(jìn)行顯示,與平常的MDI窗體相似。
  2)TabWorkspace: 以tag的形式顯示W(wǎng)orkItem。
  3)DeckWorkspace: 以平鋪的形勢,一次只顯示一個(gè)WorkItem。
  4)ZoneWorkspace:這個(gè)還沒(méi)試過(guò),找個(gè)時(shí)間補齊 ^_^。

(3)WorkItems
    這個(gè)家伙是一個(gè)用例中不同組件的運行時(shí)容器。所以在項目中決定以用例來(lái)劃分WorkItem,來(lái)作為我們的一個(gè)原則之一。
 在一個(gè)WorkItem中包含了重要的方法、屬性還有成員.
 1) 首先當然是初始化的方法,每個(gè)WorkItem都必須實(shí)現Run(IWorkspace workspace)方法.
        2) 每個(gè)WorkItem都有State,你可以把它想象成Asp.net中的Session一樣,可以把一些在本W(wǎng)orkItem中傳遞的信息存到State中。
 這樣在這個(gè)WorkItem中的都可以訪(fǎng)問(wèn)他。要實(shí)現這并不難。在你類(lèi)屬性上面加上[State]的屬性比如:

[SmartPart]public partial class DropRegistration : UserControl{[State]private Customer customer = null;public CustomerDetailView(){InitializeComponent();}private void CustomerSummaryView_Load(object sender, EventArgs e){if (!DesignMode){customerBindingSource.Add(customer);}}



 就表示用的是State中的該類(lèi)型的信息,在窗體加載的時(shí)候就可以直接綁定customer信息到窗體中,而沒(méi)有在此之間發(fā)現實(shí)例  

化的代碼。
    3) WorkItem 中運用到了MVC模式。所以包括了View和Controller,一般情況下一個(gè)View和一個(gè)Controller.


(4)ApplicationHost
 Application host 是應用程序中的各種組件的組織體。程序的WorkItem均運行于A(yíng)pplication Host之上。他是CAB容器的入口。
   
(5) Services
     CAB 中提供了一系列的基礎服務(wù)類(lèi)以供在程序中使用。當然你也可以實(shí)現自己特殊功能的服務(wù)。這里介紹CAB中的幾種重要的服務(wù):
   1) Catalog Reader Service: 用于讀取配置目錄的服務(wù)。
   2) Event Broker Service : 事件代理服務(wù),符合CAB中事件聲明規則的事件可以通過(guò)它來(lái)傳遞,很多時(shí)候解耦就靠它哦。
   3) Module Loader Service : 模塊加載服務(wù),目前用的比較少,或是用了沒(méi)感覺(jué).
   4) Authentication Service : 估計我們會(huì )借鑒一下然后,自己實(shí)現一套.
  5) State Persistence Service : WorkItem中的狀態(tài)持久化服務(wù),用以保存WorkItem的State中的信息到持久層。


(6) Modules
    模塊由以上說(shuō)到的 Services, WorkItems, SmartParts, Controllers, Business Entities 組成. 從最直觀(guān)的形象上說(shuō)就是一個(gè)Dll,一 

 個(gè)子系統。他有自己的初始化方法Start(),用于初始化本模塊和運行它的WorkItems.

基礎的東西就先介紹到這里,希望對組員有所幫助。以后會(huì )隨著(zhù)研究的深入,繼續在Blog上探討CAB的各個(gè)特性以及使用的方式。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Table of Contents: Introduction to CAB/SCSF ? Rich Newman
用于構建集成式桌面應用程序的新指南和新工具
Prism研究(for WPF & Silverlight) 1
Getting started with Tuscany
兼容火狐ie 在html中給.swf傳遞參數
C4C和微信集成系列教程
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久