SailingEase WinForm Framework WinForm開發框架開發手冊:http://docs.shengxunwei.com/Home/Browser/sewinformfw/
概述
SailingEase WinForm 應用程序開發框架是針對微軟 .NET 平台下 Windows 應用程序的開發所精心設計實現的源代碼級開發平台。由原江蘇電信10000號開發團隊技術經理主導開發的WinForm開發框架。本框架來源於實際項目開發,又不斷應用在新的項目中,這種遞歸式的開發不但使框架的功能性完整性貼合項目所需,也不斷推動框架的完善。
下面是兩個基於 SailingEase WinForm 應用程序框架開發的項目截圖:

這是一個用於.NET應用程序國際化的多語言處理工具,使用SailingEase框架為該項目的開發周期縮短百分之七十以上。事實上我們只編寫了用於處理多國語言的核心類庫,其它所有功能皆來自SailingEase 框架。

這是一個用於復雜表單設計的應用程序,該項目業務邏輯復雜,功能點眾多,但是在 SailingEase 框架的支撐下,項目結構有序清晰,開發進度快,問題少,邏輯統一。基於 SailingEase 框架提供的插件式開發功能,模塊內聚性強,偶合性低。
SailingEase WinForm框架主要包括哪些功能
SailingEase 並非一個簡單的 WinForm 控件包,而是一個能夠貫穿整個項目周期的,完全的插件式 Winform 應用程序開發平台,所有源代碼完整提供,並包括相當清晰的注釋說明。
主要包括以下內容:
插件式開發平台
豐富的控件
豐富的組件
插件式平台
SailingEase WinForm框架的核心功能之一就是支持模塊化應用程序開發(Modular Application Development),並且在運行時對各個模塊進行動態管理。幫助開發人員構建松散耦合的、更靈活、更易於維護並且更易於測試的WinForm應用程序。使用SailingEase WinForm框架可以使程序開發更趨於模塊化,整個項目將由多個離散的、松耦合的模塊組成,而各個模塊又可以又不同的開發者或團隊進行開發、測試和部署。
一個基於 SailingEase WinForm框架的項目的結構:

Modules 目錄下為該項目中的模塊,模塊指是一些邏輯上相關的類或者資源文件的集合。而每一個Module都會進行其自身的初始化工作以及與系統進行集成,比如向容器中注冊一些Service,或者將視圖集成到程序中等等。
Shell 是應用程序的主體,用於承載應用程序中的模塊,以及提供一些應用程序的基本功能。

這是上文中提到的用於設計復雜表單的應用程序的Shell項目,可以看到其包含的內容並不多,因為所有的業務邏輯,程序功能都按模塊划分並單獨實現在Module中,在程序啟動時才會動態加載。
我們在江蘇電信某大型項目的開發中,即使用了與SailingEase WinForm框架中類似的衍生技術。
SailingEase WinForm框架中插件平台的實現,技術成熟可靠,適用性強,使用SailingEase WinForm框架實現插件式WinForm應用程序,可靠性、擴展性優異,開發難度低,幾乎可以直接在我們提供的DEMO上立即開始業務功能的開發。
豐富的控件包
WinForm控件開發一直是基於.NET Windows應用程序開發的難點之一,開發人員水平的參差不齊,Web的流行,使企業或開發團隊想找到精於WinForm控件開發的人才非常困難,我們的團隊在人才招募時,精通GDI+的.NET開發人員很難遇到。而我們的SailingEase WinForm開發框架為您提供了最常用也最實用的控件包: 如 DataGridView美化,ComboBox 美化以及專門開發的用於復雜情況的 ComboBox,用於圖像縮略圖瀏覽的ImageView。
在此向您簡要介紹幾種具有代表性的控件效果和我們實現方法的簡要說明
DataGridView
我們為微軟原生 DataGridView 提供了美化和搜索/替換等功能。

經美化后的DataGridView使您的應用程序具有相當專業水平的視覺效果。此外,我們提供了單元格搜索替換,背景水印文本,帶有禁用效果的CheckBox列,以及通過對象類型或屬性值映射從而顯示不同圖像的Image列。
部分源代碼結構如下:

如何根據項目需要調整DataGridView的視覺效果?通過DataGridViewRendererTheme類:

通過獨立的渲染機制,如何定制您自己的DataGridView視覺效果相信您已一目了然。
如何為DataGridView 實現搜索/提換功能?如果您想將此功能集成到現有項目中是否需要大幅度更改現有代碼?並不需要,您只需要在您現有的使用 DataGridView的代碼中添加一行代碼:
DataGridViewSearchPresenter searchPresenter = new DataGridViewSearchPresenter(dataGridView);
即可調用 DataGridViewSearchPresenter 中提供的公開方法來實現各種對單元格的搜索替換功能。像這樣在面像對象編程中使用對象復合的方式來提供功能的例子在我們的框架中有許多。
ComboBox
我們除了提供微軟原生ComboBox的加強版本之外,完全重新實現了一個更加美觀功能更強的ComboBox。


我們提供的ComboBox除了具有效好的視覺效果,對於開發人員來講,具有極高的擴展性。定制外觀的方式與上文中提到的DataGridView外觀定制方法類似,這里主要講如何擴展ComboBox。首先看一看源代碼結構圖:

從源代碼結構中可以看出我們的 ComboBox 是一個復合控件,點擊 ComboBox 時所呈現的列表,使用的是 SEListView來實現的。通過 SEComboSelectorTheme類,您可以定制個性化的視覺效果,而通過 SEListView 提供的 Layout 功能,您可以實現任意效果的下拉列表。這個任意效果的 Layout 實現,到底可以實現什么,我們不妨看一看用於呈現圖像的ImageView控件。

ImageView 控件本身就是一個 SEListView,但我們為其實現了專門用於呈現圖像的 Layout,在這個復雜的Layout實現中,我們定義了列表項的呈現方式,提供了框選,單選,反選和鍵盤操作功能。如果您希望在ComboBox 展開時呈現圖像縮略圖供用戶選擇,應用這個 Layout 即可。
使用SEListView 的Layout功能和 Theme功能,幾乎可以實現任意效果和功能的列表。
ExtendedWebBrowser
即使是Windows應用程序,也許某些情況下也不可避免與Web頁面產生交互。

此處點擊 Web 頁面中的 “Open Project” 或 “New Project” ,會調用WinForm應用程序中對應的功能。
將Web頁面集成到您的項目中,除了業務邏輯與其它Web項目可能產生的交互外,使用Web頁面來替代一些Windows界面,不僅美觀,其設計實現的難度比使用GDI+的WinForm 控件要大大降低,您只需要美工設計傳統網頁即可。
AddressBar
使用類似Windows7的地址欄為您的應用程序做導航,不但結構清晰,功能性強,同時也獲得了專業級別的導航效果。

其它典型WinForm控件:

專業標題欄效果

菜單,上下文菜單美化

命令行效果

向導框架
以上列出了部分具有代表性的部分WinForm控件,尚有部分外觀改動較小只是功能性增強的控件沒有列出,我們的控件都經過專業的設計和細致的實現,相信您能夠從我們上文中的源代碼結構和介紹中有所了解,使用 SailingEase WinForm 框架提供的控件,能夠大大提高您的應用程序開發效率和專業化水平,使您的項目團隊在開發WinForm應用時輕松自如。
豐富的組件包
SailingEase WinForm 開發框架提供了大量的功能組件,這些組件可能多數沒有直接反應在項目的用戶界面上,但卻是框架中的重要組成部分,如:基於HTTP的應用程序自動升級更新,AES,DES,MD5加密算法封裝,為提高反射性能的高速緩存,對象屬性值快照/還原功能,Attribute相關功能,對類型(Type)功能的加強,XML、ZIP流/文件包的處理,正則表達式相關功能,TCP通信的封裝實現等等。
部分源代碼結構:

SailingEase WinForm 框架中所有的組件皆是在多年的項目實踐中提煉完善而來,能夠解決很多WinForm應用程序開發中遇到的問題,能夠提高您的項目開發效率,縮短50%以上的開發周期,極好的節約您的項目成本,而框架本身良好的設計實現,亦能夠大大提升或加強您項目的健壯性。
總結
SailingEase WinForm 框架提供完整的源代碼,代碼風格優秀,帶有詳細的注釋和說明,在使用 SailingEase Winform框架的過程中,我們提供全程指引與技術支持。
相信不管是小規模的 WinForm 項目,還是由大型團隊開發的企業級項目,本框架都能大大節約您的開發成本,縮短您的開發周期,使您的項目開發工作如履平地。
另請參閱:
使用 SailingEase WinForm 框架構建復合式應用程序(插件式應用程序)
未完待續,敬請期待……
Email:cao.silhouette@gmail.com
QQ:279060597
Windows開發框架,WinForm開發框架,.NET開發框架
