zoukankan      html  css  js  c++  java
  • 简单好用的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代码生成器 

          

  • 相关阅读:
    Python 学习笔记 11.模块(Module)
    Python 学习笔记 8.引用(Reference)
    Python 学习笔记 9.函数(Function)
    Python 学习笔记 6.List和Tuple
    Python 学习笔记 4.if 表达式
    Python 学习笔记 2.自省
    Python 学习笔记 3.简单类型
    Python 学习笔记 7.Dictionary
    Python 学习笔记 5.对象驻留
    Python 学习笔记 10.类(Class)
  • 原文地址:https://www.cnblogs.com/lgyup/p/4613250.html
Copyright © 2011-2022 走看看