馒头的基于ORM的快速开发框架

                     (文/馒头)
      笔者已采用此框架开发一套企业管理系统,在开发速度和运行速度上已得到证实,其开发模型适应于中小型的系统开发。大型的系统需要再加入分布式缓存,负载均衡等技术。
      以下将详细阐述开发框架的功能,应用项目架构的设计以及实际项目的应用。

一,基于ORM的快速开发框架:

框架分为四个项目:
1.Common: 公用函数
      比如Cahce操作,cookie操作,文件操作等,另外简繁转换,网页压缩,多语言等功能

2.Controls:公用控件(具体细节,请点此查看<基础框架之Controls控件说明>)
      主要有四个控件,数据控件LReapter,分页控件AspNetPage,页面顶部信息菜单控件HeadMenuControl,页面切换页控件WebTabControl;

3.Database:数据操作控件 (具体细节,请点此查看<基础框架之Database控件(ORM架构)说明>)
      基于ORM框架,仿照iBatis.Net的风格,整合了几个codeplex开源代码,数据库操作类直接封装了ADO.NET操作,所以在处理速度上非常快,并且避免了开发时忘了关闭数据库而造成数据库连接池溢出。同时在易用性上超越了iBatis.Net,并且弥补了几个iBatis.Net的缺陷。

4.Licence:许可证

此四个为框架的根本,所有的应用系统都基于此开发,其中Controls共用控件和Database数据库操作控件可以分开使用。


二,实际应用项目
1.Model:实体类
      可用工具自动生成,主要应用于ORM的参数的传递。并分离了手工修改和自动生成,可避免更新时带来的混淆。

2.BUControls:常用业务封装控件
      将常用的业务块提取出来,封装成控件,比如数据字典的封装。

3.WebForm:Web应用项目
      在Web应用中,引用框架的Controls公用控件,在此基础上实现快速开发。

4.WinForm / Console: Desktop应用项目
      无论在Web应用还是Desktop应用,Database数据操作控件都可以采用。


 

三,应用项目架构设计:

1.WEB应用程序的快速开发:
(1)开发模式,分为两种:
      第一种,基本上采用.ascx的用户控件。把控件的路径维护到SysTemplet表中,调用时基本上采用LoadUI.aspx?g=***的方式(url重写方式后续在考虑)。
      第二种,基于MasterPage母板的.aspx页面开发,同样把文件相对路径维护到SysTemplet基表中。
      建议采用第二种,笔者用第一种方式开发时,碰到了很多奇怪的问题(虽然都已解决)。

(2)多皮肤实现
      利用模板统一进行皮肤更换,这点实现起来也非常简单,须确保所有的.aspx都采用母板。

(3)多样式实现
      在设计初把多样式考虑进去,通过动态加载不同的CSS来实现多样式。

(4)多语言实现
      采用框架自带的方式,将多语言维护到指定的文件夹下面,采用xml格式(目前不支持数据库的方式),同时在网页里可以直接用{username}这种语言标签来显示。
      您也可以采用其他的方式,这里就不在累赘。

(5)多数据库实现
      采用已封装好的ORM架构,目前只提供Access数据库和SqlServer两种,后续会把Oracle,Mysql,Sqlite等封装进来,您也可以继承框架进行其他数据库的封装。sql配置文件的写法与iBatis.Net相似,不同的数据库sql配置文件放置到不同的文件夹下面,比如SqlServer数据库的sql配置文件放到DB\SqlServer里面,。
示例如下:

<SqlMap>
  
<sql id="InsertTemplet">
      INSERT INTO SysTemplet  WITH (ROWLOCK)  
      ([TempletId],[FunctionId],[Type]) VALUES 
      (#TempletId#,#FunctionId#,#Type#)
  
</sql>
  
  
<!--使用存储过程-->
   
<sql id="SP_InsertTemplet">
      SP_InsertTemplet #TempletId#,#FunctionId#,#Type#
  
</sql>
</SqlMap>


四,基于框架的具体使用方法: (待续)


id 博主 = [[KILONET.CNBLOGS.COM alloc] initWithValue:@"天堂向右,我依然向左"

              网名:@"老舟"

              兴趣:@"影音,阅读"

              动态:@"系统架构设计,Android通信模块开发"

              网址:@"http://kilonet.cnblogs.com"
              签名:@"--------------------------------------------------

                              Stay Hungry , Stay Foolish

                              求  知  若  渴,处  事  若  愚

                          --------------------------------------------------"

              ];         // Never Release

原文地址:https://www.cnblogs.com/KiloNet/p/1555697.html