Asp.net webform scaffolding结合Generic Unit of Work & (Extensible) Repositories Framework代码生成向导
Asp.net webform scaffolding结合Generic Unit of Work & (Extensible) Repositories Framework代码生成向导
在上次发布的使用简单Repositories模式生成的代码结构有点繁琐太过复杂,而且整个项目层次结构很不清晰,在开发过程中还是出现大量的逻辑代码写在了Apsx.cs中,感觉有点不伦不类。而最近在codeplex上看到一篇《Generic Unit of Work & (Extensible) Repositories Framework》项目非常受欢迎。
Generic Unit of Work & (Extensible) Repositories Framework是一个非常轻量级的对EntityFramework的扩展还有运用了Unit Of Work依赖注入等设计模式,使得整个项目的结构非常规范并且逻辑层次非常清晰,View(webform)->业务逻辑(Service)-〉实体(ORM)->Database。
下面看一下实际使用的效果
环境配置
Demo源代码 http://files.cnblogs.com/neozhu/unitofworkTutorials.zip
CodePlex开源项目 http://genericunitofworkandrepositories.codeplex.com/
Git Asp.net webform scaffolding项目源代码 https://github.com/neozhu/WebFormsScaffolding/tree/UnitOfWorkRepository 这个分支下
在新建的web项目中除了需要引用Repository.Pattern,Repository.Pattern.Ef6,Service.Pattern还需要使用NuGet 添加以下几个引用:
CommonServiceLocator 1.3
Unity 3.5
WebActivatorEx
Unity.WebForms

添加Unity.WebForms后系统会自动生成 UnityWebFormsStart.cs
接下来做一个Demo
Code-First Entity
Company -> Department
公司实体类 部门实体类 1对多

新建实体类必须继承Entity
新建一个DataContext
到这里基本工作就算完成了,下面是生存代码了
Add Scaffolding item 选择Web Forms Pages Using EntityFramework


先生存一个Company实体的增删改查的4个页面和一个CompanyRepository,一个CompanyService;Repository类生成的方法是对含有一对多多对一关系的实体会生成一个通过外键或主键获取子表的数据

比如Department实体会生成通过ParentId外键获取子部门,通过所在公司获取部门还有根据主键获取所有子部门的方法。

代码生成完后,接下来需要做的就是Unity配置依赖注入的入口
打开UnityWebFormsStart.cs

完成配置吧生成CompanyService,CompanyRepository和DepartmentService,DepartmentRepository加入
下面看一下页面部分的代码,Default分页查询和删除方法

模板生成的页面样式完全使用boostrap css

新增页面的样式

编辑页面,系统会自动生成已自关联的子表的增删改查功能,子表的增删改通过popup的方式弹出,具体后台代码请参考Demo的源代码。


如果觉得有用请点赞 :)
Asp.net webform scaffolding结合Generic Unit of Work & (Extensible) Repositories Framework代码生成向导的更多相关文章
- asp.net MVC 5 Scaffolding多层架构代码生成向导开源项目(邀请你的参与)
Visual Studio.net 2013 asp.net MVC 5 Scaffolding代码生成向导开源项目 提高开发效率,规范代码编写,最好的方式就是使用简单的设计模式(MVC , Repo ...
- [转]Upgrading to Async with Entity Framework, MVC, OData AsyncEntitySetController, Kendo UI, Glimpse & Generic Unit of Work Repository Framework v2.0
本文转自:http://www.tuicool.com/articles/BBVr6z Thanks to everyone for allowing us to give back to the . ...
- MVC 5 Scaffolding多层架构代码生成向导开源项目
asp.net MVC 5 Scaffolding多层架构代码生成向导开源项目(邀请你的参与) Visual Studio.net 2013 asp.net MVC 5 Scaffolding代码 ...
- Asp.net Webform 使用Repository模式实现CRUD操作代码生成工具
Asp.net Webform 使用Repository模式实现CRUD操作代码生成工具 介绍 该工具是通过一个github上的开源项目修改的原始作者https://github.com/Supere ...
- .net mvc 站点自带简易SSL加密传输 Word报告自动生成(例如 导出数据库结构) 微信小程序:动画(Animation) SignalR 设计理念(一) ASP.NET -- WebForm -- ViewState ASP.NET -- 一般处理程序ashx 常用到的一些js方法,记录一下 CryptoJS与C#AES加解密互转
.net mvc 站点自带简易SSL加密传输 因项目需要,传输数据需要加密,因此有了一些经验,现简易抽出来分享! 请求:前端cryptojs用rsa/aes 或 rsa/des加密,后端.net ...
- 简单的三层asp.net webForm使用Ninject实现Ioc
简单的三层asp.net webForm使用Ninject实现Ioc 在asp.net webform下使用Ninject的简单过程. 首先建立个项目,如下图,简单三层(PS:UI层要同时引用BLL. ...
- ASP.NET WebForm 的路由
ASP.NET WebForm 的路由 偷会闲, 看看博客园, 有筒子写了篇: ASP.NET的路由 我翻了翻两前的一份邮件, 是我当时在项目之余的时间研究的,那时还没用MVC,所有项目都是 WebF ...
- ASP.NET -- WebForm -- 缓存Cache的使用
ASP.NET -- WebForm -- 缓存Cache的使用 把数据从数据库或文件中读取出来,放在内存中,后面的用户直接从内存中取数据,速度快.适用于经常被查询.但不经常变动的数据. 1. Te ...
- ASP.NET -- WebForm -- Session的使用
ASP.NET -- WebForm -- Session的使用 Session是服务器端状态保持机制. 1. Test4.aspx文件与Test4.aspx.cs文件 <%@ Page La ...
随机推荐
- nginx路径设置(web)
原文 https://www.jianshu.com/p/57db2c5d0cb9 语法 root 语法:root path 默认值:root html 配置段:http.server.locatio ...
- b2b b2c o2o电子商务微服务云平台
大型企业分布式互联网电子商务平台,推出PC+微信+APP+云服务的云商平台系统,其中包括B2B.B2C.C2C.O2O.新零售.直播电商等子平台. 根据微服务化设计思想,结合spring cloud一 ...
- 20170805_Elasticsearch_简介和安装
官网地址: https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started.html Elk 是一个可高 ...
- error while loading shared libraries的解決方法
我是在启动nginx的时候报这个错误,搜索这个错误时发现这篇文章,非本人(小渡博客)原创. 原文地址:http://blog.csdn.net/dumeifang/article/details/29 ...
- AX_NumberSeq
NumberSeq::newGetNum(NumberSeqReference::findReference(typeId2ExtendedTypeId(typeid(InventTransId))) ...
- python_day8_socket
目录 客户端/服务器架构 socket逻辑结构 socket概念 套接字的概念 TCP与UDP套接字应用 recv与recvfrom的区别 粘包现象及处理 认证客户端的链接合法性 socktserve ...
- 在Unity5.6.5f1中使用C#7语法
备忘,记忆力越来越差了,必需把这种琐碎的东西记下来,以防1年后想再用完全没头绪. 之前试过用C#6语法,但是怎么配置操作的完全没印象了. 首先去这下载扩展 https://bitbucket.org/ ...
- Swift学习目录
本学习基于苹果官方Swift学习材料,保留了原版90%左右的内容(一些项目开发中基本不用的知识点没有整理),并根据理解进行整理.如对原版感兴趣,可以直接单击链接阅读和学习. 第一部分 基础篇 1.基本 ...
- iOS安装包瘦身的那些事儿
在我们提交安装包到App Store的时候,如果安装包过大,有可能会收到类似如下内容的一封邮件: 收到这封邮件的时候,意味着安装包在App Store上下载的时候,有的设备下载的安装包大小会超过100 ...
- ASP.NET MVC下使用AngularJs语言(六):获取下拉列表的value和Text
前面Insus.NET有在Angularjs实现DropDownList的下拉列表的功能.但是没有实现怎样获取下拉列表的value和text功能. 下面分别使用ng-click和ng-change来实 ...