MVC5-Scaffolder
[转]Visual Studio.net 2013 asp.net MVC 5 Scaffolding代码生成向导开源项目
提高开发效率,规范代码编写,最好的方式就是使用简单的设计模式(MVC , Repoistory Pattern)+ 模板生成工具。每个小型的软件公司似乎都有自己的基础开发平台,大部分都是基于数据字典+模板动态生成CRUD的操作页面;一般的项目80%代码都可以通过模板生成但并不意味着可以缩短80%的项目开发时间,毕竟很多的业务操作还是要根据用户的需求去定制开发还是需要不少时间去理解和开发的。但随着项目经验积累和沉淀,可以为以后的项目提供帮助。
现在随着移动互联网,手机APP,IPAD等移动设备的流行,似乎所有的需求都需要移动端的应用,我想这也是为什么最近MVC越来越火的原因。不单单是因为MVC的简洁(相对web Form),还有MVC确实要比Web Form更适合在不同的设备上浏览,也更容易封装和复用(Partial View,LayoutTemplate)。
最近抽空开发一个居于MVC的代码生成工具,其实也是在别人基础修改的,如果你也有兴趣可以一起参与完善,github是个好东西就是国内访问速度太慢。
我的项目地址 https://github.com/neozhu/MVC5-Scaffolder
项目阶段
- 目前基本实现了对单个实体的增删改查功能
- 下一步实现导航菜单动态配置动态创建
- 页面部分全部是现实Ajax局部刷新
- 顶部导航栏通知功能
- 添加登陆注册页面模板
- 一对多的新增编辑模板
MVC5-Scaffolder开源项目
这个工具的功能通过模板自动生成EntityFramework + UnitOfWork Repository Framework 项目代码,整体项目架构完全参考《Generic Unit of Work and Repositories (lightweight fluent) Framework with Sample Northwind ASP.NET MVC 5 Application》如下图所示,非常完美的架构。
- UI (Presentation) Layer
- ASP.NET MVC - (Sample app: Northwind.Web)
- Kendo UI - (Sample app: Northwind.Web)
- AngularJS - (Sample app: Northwind.Web)
- Service and Data Layer
- Repository Pattern - Framework (Repository.Pattern, Repository.Pattern.Ef6, Northwind.Repository)
- Unit of Work Pattern - Framework (Repository.Pattern, Repository.Pattern.EF6, Northwind.Repository)
- Entity Framework
- Service Pattern - Framework (Service.Pattern, Northwind.Service)
Domain Driven Design (*slated for release v4.0.0)
- Domain Events
- *more to come
运行起来大致的样式如下采用Boostrap sb-admin.css
MVC5-Scaffolder项目结构和组成
Demo
---UnitOfWorkFramework –从网上下载的源代码(http://genericunitofworkandrepositories.codeplex.com/)
--WebApp -Web项目
MVC5Scaffloding -Vs.net 2013代码生成向导插件项目
---Templates ---所有代码生成的模板包括View,Controller,Repoistory,Service,依赖的外部类
MVC5Scaffloding.vsix –安装项目
代码模板
MvcControllerWithContext –Controller代码模板
_layout –主页面模板
_SideNavBar –主菜单导航栏
_TopNavBa —主页面顶部导航栏
Sb-admin --css样式网上下载的最简单的样式
MvcView --CRUD模板
Repoistories -生成扩展方法可以理解成数据访问层
Services –生成业务逻辑层代码
实体类结构
Metadata原数据类也是通过向导生成必要验证规则
也可以很方便修改
Repoistories,Services 代码结构
模板会生成与该实体相关联的实体方法比如通过外键获取关联的实体对象集合
Service层同样会生成与之相关的所有方法和实体
Service层在Repoistory层之上,如果业务逻辑复杂需要多个Repository实现那么一个service中会包含多个Repository
Controller代码结构
除了基本的增删改查,Index方法实现了分页查询,排序还没有实现
IProductService,IUnitOfWorkAsync则是通过Unity依赖注入创建
配置Unity注册信息
首先项目要通过nuget安装Unity boostrapper for asp.net mvc
把创建的Repoistory,Service类注册进去
运行调试
基本生成样式就是这样
Index首页有分页和查询功能
修改 可以删除
目前只是一个雏形,还有很多功能需要完善,如果你有兴趣可以一起参与帮忙。
MVC5-Scaffolder的更多相关文章
- 自定义Visual Studio.net Extensions 开发符合ABP vnext框架代码生成插件[附源码]
介绍 我很早之前一直在做mvc5 scaffolder的开发功能做的已经非常完善,使用代码对mvc5的项目开发效率确实能成倍的提高,就算是刚进团队的新成员也能很快上手,如果你感兴趣 可以参考 http ...
- RUF MVC5 Repositories Framework Generator代码生成工具介绍和使用
RUF MVC5 Repositories Framework Generator代码生成工具介绍和使用 功能介绍 这个项目经过了大半年的持续更新到目前的阶段基本稳定 所有源代码都是开源的,在gith ...
- 探索ASP.NET MVC5系列之~~~2.视图篇(上)---包含XSS防御和异步分部视图的处理
其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...
- MVC5+EF6+MYSQl,使用codeFirst的数据迁移
之前本人在用MVC4+EF5+MYSQL搭建自己的博客.地址:www.seesharply.com;遇到一个问题,就是采用ef的codefirst模式来编写程序,我们一般会在程序开发初期直接在glob ...
- MVC5 网站开发之九 网站设置
网站配置一般用来保存网站的一些设置,写在配置文件中比写在数据库中要合适一下,因为配置文件本身带有缓存,随网站启动读入缓存中,速度更快,而保存在数据库中要单独为一条记录创建一个表,结构不够清晰,而且读写 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(1)-前言与目录(持续更新中...)
开发工具:VS2015(2012以上)+SQL2008R2以上数据库 您可以有偿获取一份最新源码联系QQ:729994997 价格 666RMB 升级后界面效果如下: 任务调度系统界面 http: ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-Excel导入和导出-自定义表模导入
系列目录 前言 上一节使用了LinqToExcel和CloseXML对Excel表进行导入和导出的简单操作,大家可以跳转到上一节查看: ASP.NET MVC5+EF6+EasyUI 后台管理系统(6 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(70)-微信公众平台开发-成为开发者
系列目录 前言: 一.阅读这段系列之前,你必须花半天时间大致阅读微信公众平台的API文档,我尽量以简短快速的语言与大家分享一个过程 二.借助微信公众平台SDK Senparc.Weixin for C ...
- 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
随机推荐
- EasyMock 使用方法与原理剖析--转载
原文地址:http://www.ibm.com/developerworks/cn/opensource/os-cn-easymock/ Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一 ...
- (inline)内联函数在IOS开发中的使用
今天在阅读YYKit源码(https://github.com/ibireme/YYKit.git)时发现在YYKitMacro.h组件中大量使用的内联函数,例如此文件中的一个函数 static in ...
- Spring 的@Controller 和@RestController的区别
@RestController Spring 4.0中新增的特性 @RestController 继承自 @Controller,相当于@ResponseBody + @Controller 1. ...
- Windows下性能最好的I/O模型——完成端口
I/O模型--完成端口 设计目的: 常见的网络通信分为两种:同步和异步. 在同步通信中,每一次接受数据都会导致主线程的挂起,从而阻塞住了其他操作.为了解决这一问题,我们通常会采取同步通信+多线程的策略 ...
- C#总结1
C#摘要 第一章: 数据类型: 在定义变量的时候,记下规则,开头不能是数字,变量名只能包括 字母 “_” 数字 整型类型 名称 CTS类型 说明 范围 sbyte System.SByte 8位有符号 ...
- [转]让你提升命令行效率的 Bash 快捷键
生活在 Bash shell 中,熟记以下快捷键,将极大的提高你的命令行操作效率. 编辑命令 Ctrl + a :移到命令行首 Ctrl + e :移到命令行尾 Ctrl + f :按字符前移(右向) ...
- 将Word、Excel内容显示在Winform界面
这里使用到dsoframer.ocx插件 1. 首先下载dsoframer.ocx插件,下载地址: http://pan.baidu.com/s/1kTKHeIj 2. 注册该插件 Win7的做法是按 ...
- 常用CSS技巧资料收集
1.重置浏览器的字体大小 重置浏览器的默认值 ,然后重设浏览器的字体大小你可以使用雅虎的用户界面重置的CSS方案 ,如果你不想下载9MB的文件,代码如下: body,div,dl,dt,dd,ul, ...
- MD5、拼音检索和邮件发送
MD5算法 MD5算法是一种散列(hash)算法(摘要算法,指纹算法),不是一种加密算法(易错) l 为了防止用户偷懒,算两次MD5值,或者加上一个固定的字符串 MD5算法理论上是不可逆的,因此攻击 ...
- ping 命令详解
Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说"ping一下某机器,看是不是开着".不能打开网页时会说"你先ping网关地址 ...