asp.net MVC 5 Scaffolding多层架构代码生成向导开源项目(邀请你的参与)

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首页有分页和查询功能

修改 可以删除

目前只是一个雏形,还有很多功能需要完善,如果你有兴趣可以一起参与帮忙。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏jeremy的技术点滴

dubbo起步

43660
来自专栏流媒体人生

Yate开发向导

Yate 的设计是为了提供一个可扩展性的电话引擎,试图以最简简洁的代码,在扩展所需功能与性能、稳定性之间达到最佳平衡。

11130
来自专栏向治洪

找不到BufferedImage这个Class的解决方法

找不到BufferedImage这个Class的解决方法 环境:       [1]RedHat AS5 64位       [2]WebSphere6.0 3...

21580
来自专栏瓜大三哥

Auraro UFC(用户流量控制)

UFC 接口是在启用UFC 生成IPCORE 时创建的。UFCs_axi_ufc_tx_tvalid 和TX 侧的s_axi_ufc_tx_tready 端口启...

17930
来自专栏大内老A

《WCF技术剖析》博文系列汇总[持续更新中]

近半年以来,一直忙于我的第一本WCF专著《WCF技术剖析(卷1)》的写作,一直无暇管理自己的Blog。在《WCF技术剖析(卷1)》写作期间,对WCF又有了新的感...

18080
来自专栏JavaEdge

项目开发中正确的打日志姿势ERROR:WARNINFO:TRACE

使用slf4j 使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一。 实现方式统一使用: Logback框架 打日志的正确方式 什么时候应该打...

7120
来自专栏FreeBuf

如何用0day漏洞黑掉西部数据NAS存储设备

我们以入侵和破解设备为乐,今天,要向大家展示的是近期我们对西部数据(Western Digital )网络存储设备(NAS)的漏洞发现和入侵利用过程。点击阅读原...

27790
来自专栏Golang语言社区

进程、线程、轻量级进程、协程和go中的Goroutine

进程、线程、轻量级进程、协程和go中的Goroutine 进程、线程、轻量级进程、协程和go中的Goroutine 那些事儿电话面试被问到go的协程,曾经的军伟...

46960
来自专栏酷玩时刻

微信公众号开发之模板消息

其实这个问题很简单,在【微信公众平台】现在已经可以直接查看自己的公众号都能使用那些接口。

35430
来自专栏Java3y

COW奶牛!Copy On Write机制了解一下

触及到知识的盲区了,于是就去搜了一下copy-on-write写时复制这个技术究竟是怎么样的。发现涉及的东西蛮多的,也挺难读懂的。于是就写下这篇笔记来记录一下我...

23930

扫码关注云+社区

领取腾讯云代金券