有沒有人知道企業WinForms應用程序的可用MVC/MVP框架?.NET WinForms應用程序的MVC/MVP框架
之前有User Interface Process Application Block for .NET。但是由於Windows Workflow Foundation已經發布(它也將被.NET 4.0完全重寫),因此它不再處於開發階段。
也許我沒有達到最新的,但我在我看來,像有此刻的差距。
有沒有人知道企業WinForms應用程序的可用MVC/MVP框架?.NET WinForms應用程序的MVC/MVP框架
之前有User Interface Process Application Block for .NET。但是由於Windows Workflow Foundation已經發布(它也將被.NET 4.0完全重寫),因此它不再處於開發階段。
也許我沒有達到最新的,但我在我看來,像有此刻的差距。
微軟的複合應用程序塊(CAB)與WinForms的應用。雖然不是技術上的MVC/MVP實施,但它確實提供UI代碼和非UI代碼之間很好的分離:http://msdn.microsoft.com/en-us/library/aa480450.aspx
這也是相當受歡迎,只是做自己不使用任何框架,只要你是舒服的相關模式。
Build your own CAB Part #1 - The Preamble
Build your own CAB Part #2 - The Humble Dialog Box
Build your own CAB Part #3 - The Supervising Controller Pattern
Build your own CAB Part #4 - The Passive View
Build your own CAB Part #5 - The Presentation Model
:採用這種方法時傑里米米勒有一些最佳實踐的優秀系列文章
Build your own CAB - Answering some questions
Build your own CAB Part #7 - Whats the Model?
Build your own CAB Part #8 - Assigning Responsibilities in a Model View Presenter Architecture
Build your own CAB Part #9 - Domain Centric Validation with the Notification Pattern
Build your own CAB Part #10 - Unit Testing the UI with NUnitForms
Build your own CAB Part #11 - Event Aggregator
Build your own CAB Part #12 - Rein in runaway events with the "Latch"
Build your own CAB Part #13 - Embedded Controllers with a Dash of DSL
智能客戶端軟件工廠?
我一直滾我自己 - 這是不是真的很難,我在我的代碼庫中的「控制」多多益善感覺。
我只是想知道一個MVC框架將如何適應,也就是說,CastleWindsor或之類的?
這可能不是最有用的答案,但如果你已經考慮過這個選項只是想知道!
我們使用MS的智能客戶端軟件工廠。它提供了IDE集成,完整的MVC支持,一旦你瞭解了它的概念,它就是一個非常稱職的實現。您可以從獲得它:http://msdn.microsoft.com/en-us/library/aa480482.aspx
FWIW,MSDN文檔現在狀態 **退休內容** *此內容已過時,不再維護。它是爲仍然使用這些技術的個人提供的禮貌。* – R0MANARMY 2012-05-08 14:38:03
我不喜歡棱鏡,CAB或SmartClient可爲過於複雜,並最終推出了自己的實現,進行到底。
隨着時間的推移,一些常見的模式正在出現。這些從應用程序重用到應用程序。這裏是一個例子:DDD and Rule driven UI Validation in Windows.Forms with MVC。
我正在插入我自己的框架:TrueView for .NET。它基於DDD和Naked Objects模式。
至少,使用它來創建快速原型是獲得業務用戶良好反饋的好方法。
所有這些標準框架都不適用於大型複雜的應用程序開發,並且他們假設顯示屏是靜態的。 我也開發了我自己的,因爲屏幕控件必須是動態的,即使MVC/MVP模式都假設顯示是靜態的,所以當控件中顯示的字段取決於用戶的角色MVC/MVP模式不適合。 我已經開發了一個工具,您可以將業務對象及其屬性加載到數據庫中構建屏幕,然後用戶只需選擇要顯示的對象和對象屬性,控件可以由任意數量的控件組成組,每個控制組都可以包含任何業務對象屬性,業務對象由我的Linq ORM的視圖生成。因此控件將只顯示用戶有權訪問的控件組的字段。 您也可以使用面向方面的編程來爲MVC模式提供gule,但是當顯示必須基於角色動態變化時,這種開銷可能會增加一點點複雜性和性能成本。
除TrueView外,還有Naked Objects for .NET。這支持客戶端/服務器模式,並且當前正在移植Web查看器(基於Java等效查看器)。
至於哪些屬性/動作可用於給定的用戶/角色,這是在裸體對象中動態完成的。有三種支持的業務規則前提條件:1.成員是否可見? 2.會員可用嗎? 3.對會員的更改(新屬性值或操作參數)是否有效?或者更有說服力的:你能看到它嗎?你可以使用它嗎?你可以做到嗎?裸體對象編程模型可以通過聲明和命令的方式指定這些規則。
即使您最終將自己的域模型包裝在自己的UI層中,我建議您看看NO。
乾杯
丹·海伍德
筆者:「使用裸對象領域驅動設計」,pragprog.com
我已經成功使用了以下開源項目以實現MVP模式ASP.NET + WinForms + C#:
看看我的博客文章,顯示了完整的ASP.NET Web應用程序示例:
codebetter.com似乎失敗了。希望只有今天! – Marcel 2010-08-03 14:05:59
有沒有這個系列中說過的任何示例代碼?如果他們在同一篇文章中被鏈接並且我錯過了,我很抱歉。 – IsmailS 2010-11-02 10:48:03