电竞比分网-中国电竞赛事及体育赛事平台

分享

Winform開發(fā)框架的重要特性總結(jié)

 櫻啊小櫻啊 2018-03-14

從事Winform開發(fā)框架的研究和推廣,也做了有幾個年頭了,從最初的項目雛形到目前各種重要特性的加入完善,是經(jīng)過了很多項目的總結(jié)歸納和升華,有些則是根據(jù)客戶需要或者應(yīng)用前景的需要進行的完善,整個Winform開發(fā)框架具有很好的通用性和借鑒性,本文從該Winform開發(fā)框架進行概括總結(jié),力求把各個重要的特性進行一些詳細的說明,使大家了解整個Winform開發(fā)框架的面貌和特性。

Winform開發(fā)框架總體性概括有:支持插件化應(yīng)用開發(fā),能夠動態(tài)配置及加載開發(fā)的插件;菜單支持動態(tài)配置,可根據(jù)用戶權(quán)限進行動態(tài)控制顯示;集成各種獨立開發(fā)好的模塊,如權(quán)限管理系統(tǒng)、字典管理模塊等,自動更新模塊等,實現(xiàn)系統(tǒng)的權(quán)限控制、字典管理、軟件支持遠程自動更新等功能;可重復(fù)使用的系統(tǒng)基礎(chǔ)模塊,Winform分頁控件和.NET開發(fā)公用類庫等;整個框架通過與代碼生成工具Database2Sharp進行配合,能夠一鍵生成整體性框架代碼,Winform系統(tǒng)界面代碼,開發(fā)更高效。

整個Winform開發(fā)框架,提供了很多常見業(yè)務(wù)系統(tǒng)提供的功能,包括Excel數(shù)據(jù)導(dǎo)入導(dǎo)出,能快速導(dǎo)入自定義模塊的Excel數(shù)據(jù),快速導(dǎo)出列表數(shù)據(jù);自定義Excel自定義模板報表的生成,生成各種復(fù)雜的Excel報表;強大通用的統(tǒng)計圖表模塊,數(shù)據(jù)統(tǒng)計更方便;基于多數(shù)據(jù)的數(shù)據(jù)查詢模塊和通用高級查詢模塊,查詢數(shù)據(jù)更方便;框架提供基于多種數(shù)據(jù)庫(Sqlserver/Oracle/Mysql/Sqlite/Access)的整合,能夠手動配置數(shù)據(jù)庫類型,通用模塊內(nèi)置支持多種數(shù)據(jù)庫切換;框架提供了高度封裝的數(shù)據(jù)訪問基類,開發(fā)代碼更少更高效;框架界面基類也進行統(tǒng)一封裝,使用更方便,效果更統(tǒng)一;框架提供基礎(chǔ)性的支持,包括集成登陸、閃屏、托盤功能,以及為插件模塊提供登陸用戶信息和系統(tǒng)信息。

Winform開發(fā)框架的主要功能概覽如下圖所示。

1、支持插件化應(yīng)用開發(fā),能夠動態(tài)配置及加載開發(fā)的插件

框架實現(xiàn)基于插件化的應(yīng)用,如下所示。

支持插件化應(yīng)用的開發(fā)框架能給程序帶來無窮的生命力,也是目前很多系統(tǒng)、程序追求的重要方向之一,插件化的模塊,在遵循一定的接口標(biāo)準(zhǔn)的基礎(chǔ)上,可以實現(xiàn)快速集成,也就是所謂的熱插拔操作,可以無限對已經(jīng)開發(fā)好系統(tǒng)進行擴展,而且不會影響已有的功能,不再需要的模塊,通過修改配置移除即可。

插件化應(yīng)用也是目前框架和系統(tǒng)開發(fā)的主流方向,從開發(fā)企業(yè)的產(chǎn)品管理角度來看,第一可以把控好已有的框架產(chǎn)品,第二可以把內(nèi)部的人員分配到不同的業(yè)務(wù)模塊中,讓他們遵循一定的接口即可快速開發(fā),從而提高團隊對業(yè)務(wù)模塊的橫向切割和快速開發(fā)的效率,更好、統(tǒng)一、高效完成企業(yè)化應(yīng)用框架的搭建和使用。

2、菜單支持動態(tài)配置,可根據(jù)用戶權(quán)限進行動態(tài)控制顯示

一般Winform程序中,菜單都是直接寫在主程序中的,這樣對于修改和維護菜單的相關(guān)信息,可能有所不便,而且對于插件化應(yīng)用,新增菜單是常見的事情,這樣就需要對菜單進行動態(tài)配置管理了,通過后臺菜單的配置和權(quán)限的指定,能夠?qū)崿F(xiàn)菜單的動態(tài)加載和權(quán)限驗證。

因此菜單也是權(quán)限分配的一部分,為了有效管理菜單資源,我們把菜單放到權(quán)限管理系統(tǒng)中進行管理控制。

設(shè)定好菜單的圖標(biāo)和Winform窗體類型,就能在Winform框架中動態(tài)構(gòu)建菜單信息了。菜單的圖表放置在系統(tǒng)的相對目錄下即可。

 

3、集成各種獨立開發(fā)好的模塊,如權(quán)限管理系統(tǒng)、字典管理模塊等,自動更新模塊等

 3.1 權(quán)限管理模塊

權(quán)限的分配和管理,基本上是每個業(yè)務(wù)系統(tǒng)需要考慮的東西,而這些常用的東西,在整個Winform開發(fā)框架中,把它作為一個獨立的模塊,既方便維護管理,也留有接口很容易進行集成,這樣能夠在項目中反復(fù)進行使用。

權(quán)限系統(tǒng)需要考慮的系統(tǒng)用戶、組織機構(gòu)、角色、權(quán)限定義及分配、菜單管理、用戶登錄日志等相關(guān)信息。對于每新增一個系統(tǒng),我們只需要在權(quán)限管理系統(tǒng)中增加一個系統(tǒng)類型定義,以及相關(guān)的功能、菜單數(shù)據(jù)即可,非常方便管理。

3.2 字典管理模塊

另外,除了權(quán)限的管理,字典管理也是常規(guī)業(yè)務(wù)模塊的一個總要功能,因此字典管理模塊在Winform開發(fā)框架中,也是一個獨立的模塊進行開發(fā)管理,在使用的時候進行集成即可。

字典的分類可以按多級進行分類管理,可以拖拉進入新的分類,非常方便。

3.3 自動更新模塊

一般情況下,為了有效管理應(yīng)用程序的發(fā)布及更新,我們需要軟件支持遠程自動更新功能;在Winform開發(fā)框架中再引入一個自動升級更新的通用模塊,這個自動升級的通用模塊除了具備一般的功能外,可以通過配置程序標(biāo)題、升級路徑方式等方式,實現(xiàn)通用化的升級操作,其他需要升級的程序,拿過來就可以使用,經(jīng)過項目的整合及優(yōu)化,已經(jīng)具備較好的應(yīng)用前景了。

本通用自動更新模塊具有下面幾個特點:

1)程序標(biāo)題可配置,更新路徑可配置,適用于各種需要更新的項目整合。

2)支持文件復(fù)制或者對壓縮包進行解壓,適合更多瑣碎程序集的整體升級。

3)支持文件更新后自動啟動,或者帶參數(shù)的啟動方式。

4、可重復(fù)使用的系統(tǒng)基礎(chǔ)模塊,Winform分頁控件和.NET開發(fā)公用類庫等

4.1 Winform分頁控件

為了提高數(shù)據(jù)的獲取及顯示效率,一般情況下,我們都需要對數(shù)據(jù)進行分頁獲取和顯示,在網(wǎng)絡(luò)化環(huán)境,這種方式獲取數(shù)據(jù)特別重要,在Winform里面,沒有現(xiàn)成的分頁控件可以使用,因此出于這個考慮,把數(shù)據(jù)顯示、數(shù)據(jù)導(dǎo)出、數(shù)據(jù)打印等眾多功能集成一起,更加方便使用。分頁控件完美支持列表數(shù)據(jù)的分頁,可以調(diào)整顯示列及順序,是否顯示復(fù)選框,字段別名,奇偶列的顏色變化,列信息提示和數(shù)據(jù)復(fù)制等等眾多實用細致的功能的。

列表的數(shù)據(jù)綁定及顯示代碼,通過代碼生成工具,可以一鍵生成所需的界面代碼,開發(fā)效率飛一般的提升。

  

4.2 .NET公用類庫

俗話說,一個好漢十個幫,眾人拾柴火焰高等都說明一個道理,有更多的資源,更豐富的積累,都是助你走向成功,走向頂峰的推動力。就我們開發(fā)者而言,其中技巧的積累、資源的積累,就是類似一個個好漢、一根根好柴,是我們能夠進行高效開發(fā)的保證和推動力。

這些類庫是我從事多年軟件開發(fā),逐漸提煉和發(fā)現(xiàn)的一些閃光點或者好片段,有些是吸收別人的優(yōu)秀的東西,有些是自己逐步提煉的精華,以前,在網(wǎng)絡(luò)上看到一些開源的項目,總會先看看其是否有封裝良好、功能獨立的輔助類庫,發(fā)現(xiàn)好的輔助類庫,總是欣喜若狂好一陣子,學(xué)習(xí)中逐步積累,研究中逐漸提煉,多年過后,略有小成,終為今天所介紹的輔助類庫集合。這些輔助類庫平時也并不是所有的都會用得上,不過一些常用的,幾乎各個項目就會用到,類庫涉及面非常廣,能夠為我們開發(fā)節(jié)省很多時間,并且我們也可以根據(jù)自己的需要進行擴充完善,形成自己的類庫集合。

博客公用類庫在線幫助文檔列表:

 厚積薄發(fā),豐富的公用類庫積累,助你高效進行系統(tǒng)開發(fā)(1)----開篇總結(jié)
 厚積薄發(fā),豐富的公用類庫積累,助你高效進行系統(tǒng)開發(fā)(2)----常用操作
 厚積薄發(fā),豐富的公用類庫積累,助你高效進行系統(tǒng)開發(fā)(3)----數(shù)據(jù)庫相關(guān)操作
 厚積薄發(fā),豐富的公用類庫積累,助你高效進行系統(tǒng)開發(fā)(4)----CSV、Excel、INI文件、獨立存儲等文件相關(guān)
 厚積薄發(fā),豐富的公用類庫積累,助你高效進行系統(tǒng)開發(fā)(5)----熱鍵、多線程、窗體動畫凍結(jié)等窗體操作
 厚積薄發(fā),豐富的公用類庫積累,助你高效進行系統(tǒng)開發(fā)(6)----全屏截圖、圖標(biāo)獲取、圖片打印、頁面預(yù)覽截屏、圖片復(fù)雜操作等
 厚積薄發(fā),豐富的公用類庫積累,助你高效進行系統(tǒng)開發(fā)(7)-----聲音播放、硬件信息、鍵盤模擬及鉤子、鼠標(biāo)模擬及鉤子等設(shè)備相關(guān)
 厚積薄發(fā),豐富的公用類庫積累,助你高效進行系統(tǒng)開發(fā)(8)----非對稱加密、BASE64加密、MD5等常用加密處理 
 厚積薄發(fā),豐富的公用類庫積累,助你高效進行系統(tǒng)開發(fā)(9)----各種常用輔助類
 厚積薄發(fā),豐富的公用類庫積累,助你高效進行系統(tǒng)開發(fā)(10)---各種線程同步的集合類
 厚積薄發(fā),豐富的公用類庫積累,助你高效進行系統(tǒng)開發(fā)(11)---各種線程相關(guān)操作類
 厚積薄發(fā),豐富的公用類庫積累,助你高效進行系統(tǒng)開發(fā)(12)--- 網(wǎng)絡(luò)相關(guān)操作輔助類

5、代碼生成工具Database2Sharp的整合

整個框架通過與代碼生成工具Database2Sharp進行配合,能夠一鍵生成整體性框架代碼,Winform系統(tǒng)界面代碼,開發(fā)更高效。

在整個Winform開發(fā)框架中,Database2Sharp生成出來的代碼體現(xiàn)了非常完美的整合性,能夠無縫接入開發(fā)的框架系統(tǒng)中,無論是常規(guī)的業(yè)務(wù)邏輯和數(shù)據(jù)訪問層代碼,以及一些列表、編輯界面的Winform界面代碼,都能快速生成,稍作調(diào)整即可滿足業(yè)務(wù)模塊的需要。

Database2Sharp是一個簡單點擊幾次鼠標(biāo)就能完成一周代碼量的代碼生成工具,效率驚人、友好體貼,真正的開發(fā)好伴侶。提供了對SqlServer 2000、SqlServer 2005、Oracle、Mysql、Access、SQLite的支持;可以生成各種架構(gòu)代碼、Winform界面代碼,并且和Winform開發(fā)框架完美整合,體現(xiàn)出更高的開發(fā)效率。

6、通用的Excel數(shù)據(jù)導(dǎo)入導(dǎo)出,能快速導(dǎo)入自定義模塊的Excel數(shù)據(jù),快速導(dǎo)出列表數(shù)據(jù)

由于一般的業(yè)務(wù)系統(tǒng),經(jīng)常性的數(shù)據(jù)導(dǎo)入時很正常的業(yè)務(wù)需求,因為畢竟使用Excel來操作數(shù)據(jù)也很方便,或者由于系統(tǒng)之間的數(shù)據(jù)交換需要,我們需要提供一個入口給客戶導(dǎo)入所需要的數(shù)據(jù)。但是導(dǎo)入數(shù)據(jù)的時候,不同的業(yè)務(wù)數(shù)據(jù)對應(yīng)不同的Excel文件,很難做到統(tǒng)一,但如果是每個業(yè)務(wù)模型,都創(chuàng)建一個不同的導(dǎo)入界面來操作Excel數(shù)據(jù),又會覺得可能某種程度上重復(fù)勞動,增加開發(fā)及維護成本。

那么有無一種介于兩者之間的方法,來實現(xiàn)效率的最優(yōu)化,并且能夠統(tǒng)一利用好一個導(dǎo)入的界面呢,在開發(fā)領(lǐng)域,只要能想到的,一般也能做到,由于工作的需要,在我的Winform開發(fā)框架中引入了一個通用的數(shù)據(jù)導(dǎo)入模塊,來實現(xiàn)這個既是統(tǒng)一,又是變化的業(yè)務(wù)需求。Winform框架提供的個通用的Excel數(shù)據(jù)導(dǎo)入導(dǎo)出機制,通過代碼生成工具Database2Sharp自動生成的代碼,就包含了如何使用這個通用導(dǎo)入模塊的相關(guān)代碼以及該模塊的導(dǎo)出數(shù)據(jù)的代碼,我們要做的就是在系統(tǒng)運行起來,導(dǎo)出一些數(shù)據(jù)作為某個模塊的Excel模板即可。下面的功能按鈕就是使用代碼生成工具自動生成的界面包含的按鈕。

通用數(shù)據(jù)導(dǎo)入功能,包含下面幾個方面的內(nèi)容。

下面就是一個實際生成的功能模塊,其導(dǎo)入界面的運行效果。

在最底的狀態(tài)欄里面,但我們保存數(shù)據(jù)的時候,會調(diào)用后臺線程進行數(shù)據(jù)保存,并顯示數(shù)據(jù)導(dǎo)入的進度狀態(tài),由于是采用后臺線程處理,不會阻塞當(dāng)前的界面,在多文檔的Winform開發(fā)框架界面中,可以切換到其他業(yè)務(wù)界面進行其他處理,不影響整體界面操作。

7、自定義Excel自定義模板報表的生成,生成各種復(fù)雜的Excel報表

很多情況下,我們需要生成比較專業(yè)的Excel模塊,因此自定義模板報表就是一種很好的方案,Winform開發(fā)框架提供了多種自定義Excel報表的生成。

使用普通的二維表,雖然能滿足大多數(shù)的情況,不過在一般的業(yè)務(wù)中,自定義模板的報表根據(jù)貼近實際,符合客戶的要求,雖然自定義模板的報表,比普通的二維報表復(fù)雜一些,不過利用Apose.Cell控件,并在預(yù)設(shè)模板中預(yù)設(shè)變量,可以生成很復(fù)雜的報表。

具體的自定義模板報表可以參考下我總結(jié)的兩篇文章。

使用Aspose.Cell控件實現(xiàn)Excel高難度報表的生成(一)

使用Aspose.Cell控件實現(xiàn)Excel高難度報表的生成(二)

例如生成一個標(biāo)準(zhǔn)的出庫單,這個表單有表頭信息,列表數(shù)據(jù)信息,并非一個普通的二維表,而且這種格式比較固定,因此很適合自定義模塊報表的生成操作。

  

 其他設(shè)計模板如下所示:

 

 

實際生成的報表如下所示:

8、強大通用的統(tǒng)計圖表模塊,數(shù)據(jù)統(tǒng)計更方便

統(tǒng)計圖表在很多項目都可能用到,集成到框架中,更方便大家對一些圖表項目的設(shè)計理解以及功能的重用。在一般的傳統(tǒng)的框架中,可以采用ZedGraph開源控件或者微軟自帶的MSChart進行圖表設(shè)計,DevExpress控件套件有自己的圖表控件,這里主要介紹基于DevExpress控件的圖表控件進行圖表設(shè)計。

8.1 普通統(tǒng)計圖表

這里指的普通統(tǒng)計圖表,只是對表某一項目進行單一的統(tǒng)計,可以從餅狀圖、柱狀圖的圖表中體現(xiàn)這些項目各自所占的比例和數(shù)值,在Winform框架中的普通統(tǒng)計圖表模塊中,包括了餅狀圖、柱狀圖和數(shù)據(jù)表格,這樣更方便對數(shù)據(jù)進行全面的分析和查看。整個模塊是可以重用的,指定字段屬性就可以比較合理的展現(xiàn)出不同分類項目的統(tǒng)計效果了,具體效果圖如下所示。

上面的統(tǒng)計圖表中,還包含了下面兩個功能模塊,如下所示。

8.2 動態(tài)項目統(tǒng)計圖表

有時候,對于表里面的數(shù)據(jù),可能要對不同類型的內(nèi)容進行動態(tài)的統(tǒng)計,以確定他們各自的比例情況,那么這些動態(tài)項目的統(tǒng)計圖表就比較合適了,例如,對于病人資料的管理,可能需要統(tǒng)計各種病種所占的比例或者各種職業(yè)類型的犯病率,這些不太確定的統(tǒng)計項目,就需要一個能夠支持動態(tài)項目的統(tǒng)計圖表進行支撐,對于本W(wǎng)inform框架,為了較好呈現(xiàn)這個類型報表的意義,我選擇了對備件類型所占的比例進行一個統(tǒng)計分析,得到下面的統(tǒng)計圖表,如下所示。

上面的圖表統(tǒng)計,除了能夠根據(jù)一些條件進行限定查詢范圍外,還可以對一些預(yù)設(shè)的統(tǒng)計字段進行動態(tài)選取,然后根據(jù)字段里面的各種內(nèi)容(統(tǒng)計項目)進行統(tǒng)計,這樣就可以比較有效的統(tǒng)計出各種類型的數(shù)值和比例了。

8.3 多重坐標(biāo)對比統(tǒng)計圖表模塊

在Winform框架里面,可以對某一年各月份的出入庫數(shù)量進行一個分析,得到下面的統(tǒng)計圖。

以上數(shù)據(jù)不多,展現(xiàn)可能不太好看,下面我給出我另一個軟件系統(tǒng)的界面,其中對病人的出入院記錄進行一個統(tǒng)計對比分析,統(tǒng)計報表如下所示。

9、基于多數(shù)據(jù)庫的數(shù)據(jù)查詢模塊和通用高級查詢模塊,查詢數(shù)據(jù)更方便

在我的Winform開發(fā)框架中,使用了一個查詢輔助類SearchCondition來實現(xiàn)查詢條件的獲取和轉(zhuǎn)化,這個輔助類內(nèi)置了對多種數(shù)據(jù)庫條件的分析處理,因此能夠很好生成所需要的數(shù)據(jù)查詢條件,正確高效獲取所需的數(shù)據(jù)進行顯示。

復(fù)制代碼
        /// <summary>
        /// 根據(jù)查詢條件構(gòu)造查詢語句
        /// </summary> 
        private string GetConditionSql()
        {
            //如果存在高級查詢對象信息,則使用高級查詢條件,否則使用主表條件查詢
            SearchCondition condition = advanceCondition;
            if (condition == null)
            {
                condition = new SearchCondition();
                condition.AddCondition("ItemName", this.txtName.Text, SqlOperator.Like)
                    .AddCondition("ItemBigType", this.txtBigType.Text, SqlOperator.Like)
                    .AddCondition("ItemType", this.txtItemType.Text, SqlOperator.Like)
                    .AddCondition("Specification", this.cmbSpecNumber.Text, SqlOperator.Like)
                    .AddCondition("MapNo", this.txtMapNo.Text, SqlOperator.Like)
                    .AddCondition("Material", this.txtMaterial.Text, SqlOperator.Like)
                    .AddCondition("Source", this.txtSource.Text, SqlOperator.Like)
                    .AddCondition("Note", this.txtNote.Text, SqlOperator.Like)
                    .AddCondition("Manufacture", this.txtManufacture.Text, SqlOperator.Like)
                    .AddCondition("ItemNo", this.txtItemNo.Text, SqlOperator.LikeStartAt)
                    .AddCondition("WareHouse", this.txtWareHouse.Text, SqlOperator.Like)
                    .AddCondition("Dept", this.txtDept.Text, SqlOperator.Like)
                    .AddCondition("UsagePos", this.txtUsagePos.Text, SqlOperator.Like)
                    .AddCondition("StoragePos", this.txtStoragePos.Text, SqlOperator.Like);
            }
            string where = condition.BuildConditionSql().Replace("Where", "");
            return where;
        }
復(fù)制代碼
復(fù)制代碼
    /// <summary>
    /// Sql的查詢符號
    /// </summary>
    public enum SqlOperator
    {
        [Description("Like 模糊查詢")]
        Like,

        [Description("Not LiKE 模糊查詢")]
        NotLike,

        [Description("Like 開始匹配模糊查詢,如Like 'ABC%'")]
        LikeStartAt,

        [Description("= 等于號")]
        Equal,

        [Description("<> (≠) 不等于號")]
        NotEqual,

        /// <summary>
        /// > 大于號
        /// </summary>
        [Description("> 大于號")]
        MoreThan,

        [Description("<小于號")]
        LessThan,

        [Description("≥大于或等于號 ")]
        MoreThanOrEqual,

        [Description("≤ 小于或等于號")]
        LessThanOrEqual,

        [Description("在某個字符串值中")]
        In
    }
復(fù)制代碼

另外,一個好的數(shù)據(jù)查詢 ,一般有一個強大的高級查詢模塊,這個模塊在很多程序中都很常見,也是給客戶擴展查詢的一個很好的補充,由于我一直希望我的Winform開發(fā)框架能夠精益求精,所以做了這個通用高級查詢模塊,希望對今后我自己所有的項目以及框架本身,都能高效的使用。

 在介紹輸入條件的時候,我們注意到,查詢輸入,基本上可以分為幾類:其一是常規(guī)的文本類型,使用文本框替代即可;其二是下拉列表類型,用戶從列表下面選擇內(nèi)容;其三是日期類型,需要用戶指定開始日期和結(jié)束日期;其四是數(shù)字類型,需要用戶指定起始和結(jié)束的數(shù)值。

1)常規(guī)的文本類型條件輸入界面:

2) 下拉列表類型條件輸入界面:

3) 日期類型條件輸入界面:

4) 數(shù)字類型條件輸入界面:

10、框架提供基于多種數(shù)據(jù)庫(Sqlserver/Oracle/Mysql/Sqlite/Access)的整合

雖然我們在實際項目中,一般采用一種數(shù)據(jù)庫進行處理,但是不同的項目,采用的數(shù)據(jù)庫類型可能不同,本W(wǎng)inform開發(fā)框架為了方便演示和擴展的需要,內(nèi)置支持了Sqlserver/Oracle/Mysql/Sqlite/Access,更多的數(shù)據(jù)庫,也可以通過擴展數(shù)據(jù)庫訪問基類的方式進行更多數(shù)據(jù)庫的支持。

Winform開發(fā)框架里面的所有模塊,如用到了數(shù)據(jù)存儲的,如權(quán)限管理管理模塊、通用數(shù)據(jù)字典管理模塊,均內(nèi)置支持這幾種數(shù)據(jù)庫的整合支持。整個Winform開發(fā)框架的數(shù)據(jù)庫訪問,能夠手動配置數(shù)據(jù)庫類型,對于同一種數(shù)據(jù)庫,也可以把數(shù)據(jù)存儲分開存儲,如業(yè)務(wù)數(shù)據(jù)存儲在一個數(shù)據(jù)庫,權(quán)限管理控制存儲在另外一個數(shù)據(jù)庫這種方式。

Winform開發(fā)框架提供多種數(shù)據(jù)庫支持,數(shù)據(jù)訪問基類依然很精簡,因為我們利用的數(shù)據(jù)庫訪問模塊是EnterpriseLibrary,把數(shù)據(jù)庫抽象化,并且我把所有數(shù)據(jù)庫通用操作放在了一個超級基類上,具體的數(shù)據(jù)庫基類只需要實現(xiàn)變化的部分即可。業(yè)務(wù)訪問類則使用泛型進行封裝處理。

因此,Winform開發(fā)框架提供了高度封裝的數(shù)據(jù)訪問基類,開發(fā)代碼更少更高效。

11、框架界面基類也進行統(tǒng)一封裝,使用更方便,效果更統(tǒng)一

為了更好開發(fā)常用界面模塊,Winform開發(fā)框架把一些公用的界面模塊,統(tǒng)一放置在了一個BaseUI的項目中,把其中的通用高級查詢、通用數(shù)據(jù)導(dǎo)入模塊、常見處理界面基類,插件接口等模塊放在一起,根據(jù)易于管理和使用。這樣開發(fā)的模塊,重用很多常規(guī)的界面,開發(fā)效率更快,使用更方便,效果更統(tǒng)一了。

12、框架提供基礎(chǔ)性的支持,包括集成登陸、閃屏、托盤功能,以及為插件模塊提供登陸用戶信息和系統(tǒng)信息

整個Winform開發(fā)框架,是有一個框架啟動模塊進行集中處理的,系統(tǒng)啟動后,用戶登錄處理后,通過動態(tài)加載菜單和插件模塊,并在主體框架界面中進行展示,提供權(quán)限控制和登錄用戶信息等方面的框架支持。另外框架支持閃屏圖片的動態(tài)配置,系統(tǒng)激活熱鍵和托盤縮小燈功能。

由于系統(tǒng)登錄后,框架本身存儲了用戶登錄和權(quán)限信息,框架動態(tài)加載某個模塊后,會把用戶信息和權(quán)限控制信息,注入到模塊的界面基類中,因此插件的界面模塊只要是繼承了BaseUI的界面基類,就能夠獲取到用戶信息和權(quán)限控制信息了。

特性總結(jié)

Winform框架,本身就是為了能夠快速開發(fā)一個高效、穩(wěn)定、美觀大方、擴展性強的應(yīng)用軟件系統(tǒng)。因此我在自己十年左右的共享軟件開發(fā)生涯以及公司項目開發(fā)中,不斷思考,精雕細琢,對很多重要的特性都進行了歸納和升華,吸收項目中好的閃光點,借鑒一些好的軟件開發(fā)思路,力求把軟件做的更好;在開發(fā)效率方面,除了開發(fā)一些常規(guī)通用的模塊、在模塊內(nèi)部又充分考慮繼承、重用的規(guī)則,還對大幅度提高效率的代碼生成工具,根據(jù)Winform開發(fā)框架的實現(xiàn)思路和特點,進行了完善優(yōu)化,使得無論在業(yè)務(wù)代碼生成,還是在界面代碼生成方面,均能把開發(fā)效率發(fā)揮到極致,希望整個Winform開發(fā)框架能夠持續(xù)發(fā)揮它的魅力和吸引力,為更多的人帶來希望,體驗開發(fā)的樂趣。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多