簡單好用的General開發框架


1、開篇概述

         2004年學習編程,2007年學習C#以來,做的多半都是跟數據庫打交道的工作,所以也積累了很多數據庫方面的知識,用過一些ORM框架,從了解掌握到自己實現,慢慢積累了很多代碼,直到2010年的某天,想把之前和以后積累的一些代碼、編程技巧之類的融合進一個C#的開發框架中去,於是這個開發框架就誕生了。起初叫過NetData,后來改名為General,取通用之意,因為自身編程水平不是很高,所以沒有在這個框架之中糅合進一些高深的技術,都是一些技巧性的、避免重復勞動的代碼,大概也就有些反射、設計模式的應用。還應當說明的是框架之中融進了一些從網上取到的代碼,大部分都經過了本人的修改完善,已經成為了框架的一部分。

         General框架誕生之日起,我就一直將它應用到工作和業余項目,通過項目來完善功能、修改BUG,經過許多年的修改,目前BUG已經相對較少了。它主要是適用於一些中小型管理信息系統的搭建,特別是其中的數據庫訪問和ORM功能,都可以直接利用SQL語句來進行處理,大大降低了學習成本。一直以來我都將這個框架公開給同事們使用,也收到了很多好評,特別是它的簡單方便,得到許多人的青睞,也根據同事們的意見做了非常多的修改,這次將它在這里開源,一是希望將自己的部分勞動成果給更多的人共享,共同學習提升,二是希望更多的人對它進行評價,以檢驗自己的編程水平。

         General框架同時共享的還有一個代碼生成器,暫且就叫做General代碼生成器吧,這個生成器比框架的創建更早,大概是在2008年初左右,剛開始在CSDN上提供過下載,但是由於那時候這個代碼生成器還非常不完善,功能有限,所以沒有起到太好的效果,目前這個代碼生成器經過多年的改造,功能已初步完善,可以支持自定義模板的代碼生成,比較好用,作為General框架的附帶工具,一並共享出來,但目前代碼生成器還不便公開源碼。

         2General框架介紹

         2.1框架的組成

打開解決方案可以看到,其實General框架的組成也不多,包括以下組件:

1General.Common

通用資源部分,包含一些C#常用的輔助類庫,如ConfigXmlString、加解密的幫助類

2General.Data

數據庫訪問與ORM部分,接口類是DataManager

3General.Extend

擴展資源部分,包含一些不常用和引用第三方的類庫,如拼音生成、PdfExcelZip

4General.Web

Web開發輔助資源部分,主要為WebHelper

5General.WinForm

WinForm開發輔助資源部分,主要為FormHelper

6General.WinForm.ExControls

擴展控件資源

7Sample.Market.Logic

示例項目的業務邏輯部分

8Sample.Market.Model

示例項目的實體類部分

9Sample.Market.WinForm

示例項目的WinForm界面

從以上的介紹可以看到,General框架不光包含數據庫訪問與ORM,還包括很多常用的開發輔助類,主要是為了簡化C#程序開發而設計。其中General.Data,即數據庫訪問與ORM部分會有一篇詳細的說明在源碼中包含。

2.2數據庫訪問與ORM

使用General框架進行數據庫開發是非常方便的,主要體現在:

1)配置簡單,通過在App.configWeb.config加入兩行配置或是一行代碼就可以完成配置;

2)支持多數據庫,目前General框架支持的數據庫有:AccessSqliteSqlServerOracleMySql幾種;

3)統一訪問接口,所有的數據庫訪問都可以通過DataManager一個類來進行,並且DataManager提供了一個名為Default的默認實例來方便使用;

4)使用特性或Xml文件兩種方式進行數據庫映射,特別是使用特性的方式,結合代碼生成器可以非常快速的生成完所有的實體類文件;

5)豐富的方法支持,不僅支持原生SQL操作,還提供豐富的ORM方法,並且ORM結合SQL語句使用,更為靈活;

6)多種參數化支持方案,即可以通過動態參數、字典參數還可以通過鏈式編程進行參數化;

7)方便的事務支持;

8)主鍵生成支持;

9)數據庫結構訪問支持。

2.3 ORM使用舉例

下面以一個簡單的例子來了解General框架ORM部分的使用方法

1)配置

App.configWeb.config中加入數據庫類型和默認連接字符串的配置

<? xml version="1.0" encoding="utf-8"  ?>
< configuration >
   < appSettings >
     <!-- 加入默認數據庫類型 -->
     < add  key ="DatabaseType"  value ="SqlServer2005" />   
   </ appSettings >
   < connectionStrings >
     <!-- 加入默認連接字符串 -->
     < add  name ="Default"  connectionString ="Data Source=(local);Database=Market;Persist Security Info=True;User ID=sa;Password=" />
   </ connectionStrings >
</ configuration >

在程序初始化部分加入以下代碼

    DataManager.SetDefaultConnectionByConfig();

2)生成實體類代碼

打開General代碼生成器,批量生成所有的實體類文件到項目中

3)進行ORM操作

在界面上加入一個表格控件,並在后台代碼中加入查詢並綁定實體列表到表格控件的代碼。

    exDataGridView1.DataSource = DataManager.Default.FindList<Goods>();

4)運行程序

2.4 WebWinForm界面開發支持

在界面開發上,以前經常會有大量的控件取值賦值操作,如實體保存前,將控件值賦值給實體屬性,如:

    Customer cust =  new Customer();
    cust.類型 = cb_lx.SelectedValue;
    cust.供貨商 = txt_ghs.Text;
    cust.聯系人 = txt_lxr.Text;
    cust.電話 = txt_dh.Text;
    cust.手機 = txt_sj.Text;
    cust.郵箱 = txt_yx.Text;
    cust.地址 = txt_dz.Text;
    cust.QQ = txt_qq.Text;
    DataManager.Default.Save(cust);

而使用General框架,只要將控件ID命名為與實體屬性相同的名稱,然后使用WebHelperFormHelperCollectAndFill方法即可自動完成控件到屬性的賦值工作,如:

    Customer cust =  new Customer();
    FormHelper.CollectAndFill( this, cust);
    DataManager.Default.Save(cust);

2.5其他功能

General框架更詳細介紹會在以后慢慢完成,下面提供General框架源碼和代碼生成器的下載。

  General框架源碼下載

  General框架示例程序的數據庫

General代碼生成器 

 

      


免責聲明!

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



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