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的源代码。

如果觉得有用请点赞 :)

时间: 2024-08-27 22:10:37

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 , Repoistory Pattern)+ 模板生成工具.每个小型的软件公司似乎都有自己的基础开发平台,大部分都是基于数据字典+模板动态生成CRUD的操作页面:一般的项目80%代码都可以通过模板生成但并不意味着可以缩短80%的项目开发时间,毕竟很多的业务操作还是要根据用户的需求去定制开发还是需要不少时间去理解

[转]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 .NET community, we released v1.0 of the Generic Unit of Work and Repository Framework for four weeks and received 655 downloads and 4121 views. This po

Asp.net Webform 使用Repository模式实现CRUD操作代码生成工具

Asp.net Webform 使用Repository模式实现CRUD操作代码生成工具 介绍 该工具是通过一个github上的开源项目修改的原始作者https://github.com/Superexpert/WebFormsScaffolding 我在他的基础上添加了一对多实体类的新增,修改,删除操作,并实现了Repository设计模式,修改了一些页面布局,添加了一些DynamicData动态字段,我的开源项目地址https://github.com/neozhu/WebFormsScaf

[ASP.net WebForm/Google] Google Map标记点(Marker)更改图示、加入对话框/API 3版

[ASP.net WebForm/Google] Google Map标记点(Marker)更改图示icon.加入对话框/API 3版 延续上一篇文章:[ASP.net WebForm/Google] 在Google Map上放置多个标记地点(Marker)/API 3版 这次要想办法把Marker更改icon (顺道一提,我一直以为使用Google Map API的话,网站一定要对外开放,目前发现只要本机电脑网络有通 有引用 就可以玩了) 另外,为了配合项目需求,程序有稍做重构且追加DB数据

ASP.NET WebForm中用async/await实现异步出人意料的简单

1. 在.aspx中添加异步标记 <%@ Page Language="C#" Async="true"%> 2. 在.aspx.cs或者.ascx.cs(用户控件)中添加异步方法 private async Task GetMyPosts() { var posts = await ServiceFactory.BlogPostSevice.GetBlogPostsPagedAsync(); rpPosts.DataSource = posts; rp

【Ext.Net学习笔记】01:在ASP.NET WebForm中使用Ext.Net

Ext.NET是基于跨浏览器的ExtJS库和.NET Framework的一套支持ASP.NET AJAX的开源Web控件,包含有丰富的Ajax运用,其前身是Coolite. 下载地址:http://www.ext.net/download/示例地址:http://examples.ext.net/ 1.首先下载Ext.Net,地址:http://www.ext.net/download/ ,有两种框架选择,选择下载WebForms 当前版本是2.5.1,压缩包里面包含了不同版本,分别用在相应.

ASP.NET WebForm / MVC 源码分析

浏览器 Url:https//localhost:6565/Home/Index ,https//localhost:6565/WebForm1.aspx,请求服务器(构建请求报文,并且将请求报文发送给服务器) 1:服务器(内核模式 Http.sys)对请求报文做基本的处理 2:请求服务器(用户模式,IIS服务器) 2.1:对发送过来的数据做一个检查,如果请求的是静态资源的(.html,jpg,js),那么IIS直接将这些资源返回浏览器 2.2:如果是动态资源(.aspx,.ashx),IIS服

利用Bootstrap+Avalonjs+EntityFramework 开发ASP.NET WebForm应用程序(上)

本文将介绍如何利用Bootstrap+Avalonjs+EntityFramework 开发ASP.NET WebForm应用程序,分为上下两篇.上篇主要介绍实现,下篇主要介绍界面. 打开Visual Studio Web Express2013新建一个空白应用程序 ContactSample--联系人示例 (1)数据库 引入界面文件BootStrap,JS文件jquery和avalon,建立联系人页面Contact.aspx. 打开数据库,设计数据库ContactSample,数据库比较简单,

性能工具MiniProfiler在Asp.Net WebForm跟踪EntityFramework

http://www.xuebuyuan.com/356638.html 选择MiniProfiler.EF 默认会把MiniProfiler安装上,笔者程序是Asp.Net WebForm 不需要安装MiniProfiler.MVC3 2: 在Global.asax中添加下面代码: void Application_BeginRequest(){if (Request.IsLocal){ MiniProfiler.Start();}} void Application_EndRequest()