本人一直致力于Winform开发框架的研究和使用,有时候项目要求是传统Winform的,直接访问数据库进行获取数据;有的时候项目要求WCF框架,以分布式访问WCF服务获取数据的,虽然在Winform和WCF框架,都有特定的应用场景和开发思路,但是希望把这两种传统式的框架,加以抽象和提炼,形成目前所介绍的混合型框架,这样所有完成混合型框架改造的通用模块(或一个小业务模块),都能无缝式的实现集成使用。这种混合型框架的特点和优点都非常明显,为我最终实现,一个框架,多个应用的开发平台集成方案迈出坚实的一步。

1、混合型框架的应用前景

当然,本篇文章不是对理论的抽象说明,这一向不是我的风格,前面我已经在随笔《Winform开发框架之框架演化》、《Winform开发框架之混合型框架的实现》、《Winform开发框架之混合型框架的剖析》都对Winform框架的变种,混合型框架进行了比较详细的介绍,我希望通过实实在在的项目展示,介绍这种框架的优点特点,以及相关的设计理念。这种框架虽然比较通用,但相对于传统Winform框架和传统WCF开发框架,都增加了不少项目模块,也同时增加了一定的复杂度,如果纯手工来建立这种项目,会有比较麻烦的痛苦经历。

因此,本篇文件就是介绍了如何使用代码生成工具Database2Sharp来生成一个混合型框架的项目,由于我的Database2Sharp能够获取所有数据库的元数据,因此能够较好实现各种项目架构的生成操作,这种结合代码工具生成项目的方式,也是我们提高效率,统一代码风格,减少代码出错,提高代码健壮性,分享框架经验的最佳方式。

混合型框架可以看成是Winform框架高级版本,可以很好用来实现一个框架,多个应用的开发平台,我们可以在主体业务框架上,根据需要扩展很多应用,如通用模块有通用权限、通用字典、通用附件管理、通用人员管理。。。。,如果基于业务集成,那么可以把很多小业务也通过这种方式开发,然后通过即插即用的方式实现业务定制化的使用,这些应用都实现了这种混合型的框架,因此集成使用会非常方便。

2、代码生成工具生成混合型框架

混合型框架一般包括业务逻辑模块(包括BLL、IDAL、DAL、Entity层),服务接口调用模块(用来整合Winform和WCF接口调用),WCF服务逻辑模块、WCF服务发布模块,Winform界面模块共5个项目的分层,如下所示。

虽然是需要生成有5个项目的代码,而且每个项目之间还有一些特殊的引用以及各种命名规则,但是这些对于代码生成工具来说,都是很容易做到的事情。

代码生成工具,是结合数据库信息进行代码生成的过程,因此需要先获取对应数据库信息。

第一步,在Database2Sharp左边的树形数据库列表中,单击展开对应数据库的详细表,由于Database2Sharp是一次性加载方式,加载数据库表的信息同时,也会加载相关的视图、存储过程(Oracle、SqlServer)、以及表字段和表之间的关系等等信息。单击其中一个表,我们可以看到对应该表的字段信息,以及创建表的SQL语句,也就是我们常说的DDL脚本。

第二步,在数据库节点上,单击鼠标右键,选择【代码生成】- 【EnterpriseLibrary代码生成】菜单,开始生成代码如下所示。

第三步,选择相应的数据库以及数据库表,用于代码的生成。

第四步,设置相关的代码生成配置信息,包括项目主命名空间,输出目录,以及过滤表名前缀等。

第五步,确认代码生成操作,一般确认,就会对选定的表进行项目代码的生成操作,生成一体化的整体性解决方案。

如果项目是要生成基于WCF开发框架的,那么勾选“同时生成WCF服务项目”选项即可,勾选后,可以修改WCF服务的项目名称,方便创建不同的WCF业务项目。WCF项目是基于VS2010开发环境、.NET4.0框架的项目。

如果项目是生成基于混合型开发框架的,那么勾选“生成混合式框架项目”选项即可,勾选后,“同时生成WCF服务项目”也会默认勾选,因为混合型框架式基于Winform和WCF两种的混合体项目。WCF项目是基于VS2010开发环境、.NET4.0框架的项目,这是目前最优的配置信息了。

如果勾选生成后打开解决方案,那么代码生成完成后,就会自动打开项目工程,你可以尝试编译,一般情况下,可以完全编译通过的。

项目生成后,就生成了几个典型的项目分层结构,如图所示。

贴上几个详细的项目文件结构图,以便更好了解整体的项目结构。

 

代码生成工具的下载地址:http://www.iqidi.com/Database2Sharp.htm

详细的代码生成工具Database2Sharp的介绍文档:Database2Sharp代码生成工具-使用帮助.pdf

转载于:https://www.cnblogs.com/wuhuacong/archive/2013/05/05/3061486.html

Database2Sharp之混合型Winform框架代码生成相关推荐

  1. 代码生成工具更新--快速生成Winform框架的界面项目

    在之前版本的代码生成工具Database2Sharp中,由于代码生成都是考虑Winform和Web通用的目的,因此Winform界面或者Web界面都是单独生成的,在工具中生成相应的界面后,复制到项目里 ...

  2. Database2Sharp重要更新之生成Winform框架界面代码

    Database2Sharp是一款代码生成工具和数据库文档生成工具,该工具一直伴随着我及我的粉丝们经历过各种各样的项目开发,在实际开发中能带来效率的提高及编程的快乐.不过自上个6.0版本以来,我一直忙 ...

  3. 基于插件架构的简单的Winform框架(下)

    前言 最近事情较多,终于有时间来写完这篇.在上一篇的基础上,本篇文章我们开始着手搭建一个简单的基于插件架构的Winform框架.(其实也就是一个小例子,也是对之前写过的代码的总结) 设计思路 写这个W ...

  4. C#小项目飞翔的小鸟游戏详细教程(Flying bird),基于Winform框架

    C#小项目飞翔的小鸟游戏详细教程(Flying bird),基于Winform框架 实现效果: 1.空格,鼠标左键控制小鸟跳 2.管道随机大小 3.小鸟与管道碰撞,小鸟碰到地面 4.小鸟煽动翅膀动画 ...

  5. Winform框架中内容的学习

    一.Winform框架中的内容 WinForm(一) WinForm入门与基本控件使用_阿阿阿安的博客-CSDN博客_winform winform 控件及其各个属性_weixin_30907935的 ...

  6. 基于C# winform框架开发的校园社团管理系统

    基于C# winform框架开发的校园社团管理系统 一.项目介绍 环环公益系统(HuanHuan System)是本人在校期间给自己所在社团开发的一款社团管理系统,拥有社团活动创建.活动报名.活动考勤 ...

  7. 三、自定义Abp Vnext框架代码生成模板

    我们知道通过abp cli命令可以快速的搭建一个最基本的abp项目环境,但我们项目中一般都需要使用自己的UI.数据库和基础配置,如果每次都用官方默认模板创建项目,那就需要每次都重复前两章的过程来搭建基 ...

  8. winform框架:winform老矣,尚能饭否

    之前由于需要,使用了c#的winform写了个桌面应用.后面我把 在此基础上把页面(UI).业务层(BLL) 和数据交互层(DAL)分离了形成了一个简单的框架,其中 封装了 弹窗 .http请求.通用 ...

  9. Navi.Soft31.微信WinForm框架(含下载地址)

    1.概述 1.1应用场景 微信的出现,改变了我们日常生活.而微信公众平台的出现,使我们每个人都可能成为一个品牌,微商的普及.微店越来越多.越来越多的人,借助微信公众平台,实现了自己的梦想 在此背景环境 ...

最新文章

  1. 系列文章|OKR与敏捷(二):实现全栈敏捷
  2. 如何用 Python 进行基于深度学习的计算机视觉项目开发?
  3. ajax技术运用案例,第12篇:Ajax技术与项目案例
  4. Apache rewrite
  5. SelectionKey中定义的4种事件
  6. [Skill]-Markdown编辑器技巧
  7. Hbase(4)——hive on hbase
  8. 密码登录模式流程分析
  9. 如何在vue中使用sass
  10. dell idrac 复位_DELL 服务器 装系统前初始化(恢复出厂、超线程、虚拟化、iDRAC设置)...
  11. 宕机日志怎么看 thread detail_如何快速过滤出一次请求的所有日志?
  12. Objective-C内存管理教程和原理剖析(三)
  13. php+不要科学记数,php怎么设置不用科学计数法?
  14. J2ME 模拟短信发送界面开发程序
  15. DSOFramer 控件修改成功
  16. 京东类目如何修改,批量修改京东分类教程
  17. 微星B550M迫击炮,设备管理器 声卡不显示Realtek解决办法
  18. C语言打印菱形超详细版本,逐句解析
  19. ESP8266 + MAX7219 做一个简易的自动同步的倒计时时钟
  20. Flask 源码解析:session

热门文章

  1. mysql 源码设计,java+mysql大学网络社区平台设计+源代码
  2. 利用finereport建设保险公司决策分析系统的思路和方法
  3. 中缀表达式转后缀表达式 java_中缀表达式转后缀表达式并计算结果Java实现
  4. nginx 端口转发_Knative Service 是如何指定端口和协议的
  5. 怎么查看当前登录的svn账号_在linux下查看svn对应的账号和密码
  6. js删除服务器上文件,js删除服务器文件
  7. boot spring 启动 文本_springboot 选择启动某个配置文件
  8. cba篮球暂停次数和时间_CBA一场比赛每支球队可以叫多少次暂停
  9. java contains_Java开发人员犯的十大错误,你犯几个?
  10. pytorch学习笔记(三十七):Adam