我的開發框架(WinForm)


近來,看園子里,好多同學,展示自己工作中的開發框架,有的功能強大,有的短小精悍,我也來湊個熱鬧,望各位大俠指點一二。

一、指導思想

     1、盡量減少程序員對數據庫的依賴,或者說盡力少的寫sql 語句。根據以前做項目的經驗,大概10%的代碼時間,在拼sql,主要是想利用現有的ORM技術,使得程序員能擺脫大部分拼sql的工作。

     2、支持多種數據比如Sqlerver、Oracle等。公司是做項目為主,不同的項目甲方要求的數據庫可能會不同,所以必須支持多數據庫。sqlserver和oracle是最常用的,優先支持。

     3、模塊化,功能模塊間可插拔設計。系統的各個模塊間沒有必然的聯系,可以通過復制一個dll或幾個dll,簡單的配置一下權限,有的甚至不需要配置,即可使用。

     4、集成日志和權限功能。這兩塊是系統框架最基本的東西,必須有的。

     5、針對接口編程。有些功能不是從底層寫的,是基於第三方的軟件進行二次開發的,比如GIS,CAD,不同的項目,選用的平台會有不同。如果更換了二次開發的平台,那么將相關的接口再實現一遍,不影響其他模塊。

     6、面向業務。做項目的公司,不做業務,就沒飯吃了。因此,程序員的主要精力應該是理解業務和實現業務。

     7、要易於擴展易於部署。技術是不斷發展的,業務也是不斷變化的,不同的地區,不同的公司的業務是千差萬別的,領導的想法也是不斷變化的,因此必須容易修改,方便部署。

二、框架設計

下面是我針對CS模式的一個設計,

image

你也許已經看過很多架構示意圖,我的這個算是比較簡陋的一個了,但我覺得能說明的我的設計的東西。整個圖分為三塊:圖例、整體結構、單模塊結構。

首先左上角的是圖例,右上角的是一個模塊的結構,下面的部分是整體的。

先說說圖例,藍色方塊 標示定義的接口,沒有真正的實現代碼。橙色方塊是針對接口的實現。橙色到藍色的漸變方塊 是既有接口又有默認實現。

模塊分為3種:核心模塊、非業務模塊和業務模塊。顧名思義,核心模塊定義了一系列的通用接口,和部分默認的實現。非業務模塊是指和業務無關的模塊,用於支撐業務的實現。比如數據操作模塊。主要封裝數據庫的操作。業務模塊指針對項目的需求進行實現的模塊。

  • 核心模塊: Core模塊,主要定義了數據操作的接口,日志接口、配置的接口、權限的接口。
  • 非業務模塊:Data模塊,這個模塊主要實現針對實體的一個增刪改查的操作,不同的數據庫有不同的實現。
  •                Auth模塊,實現權限管理的模塊。

在一個業務模塊中包括以下內容

     Menu(菜單):模塊匯總包括哪些菜單,或者說實現了哪些業務的功能。單擊一個菜單后,執行什么操作,展示哪些界面等。

     Tool(工具條):模塊包括哪些工具,執行什么操作,展示哪些界面等。

    Control:模塊中的子界面。

三、用到的技術

     基於.net4.0實現。用到的組件

     1、Mef。 插件機制的實現,.net4.0自帶

     2、ServiceStack.OrmLite。 Orm映射的實現,之所以選他是因為,它是針對單表設計的,比較簡單易用,不用配置。NHibernate配置太多,容易搞錯,EntityFramework目前只支持Sqlserver,不符合要求。

     3、Autofac。Ioc組件

     4、Log4Net。這個不用多說了。

四、項目組織

    不多說啦,上圖

image

在實現過程中,增加了Common組件,提取通用的功能,Core.Map組件,提取地圖相關的接口。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM