专栏首页c#开发者asp.net MVC 5 Scaffolding多层架构代码生成向导开源项目(邀请你的参与)

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 条评论
登录 后参与评论

相关文章

  • XCode4.2.1 使用NavigationController实现View切换

    XCode4.2.1 使用NavigationController实现View切换 现在网上有很多关于NavigationController实现页面之间导航...

    阿新
  • 使用JavaScript访问XML数据

    使用JavaScript访问XML数据 在网络浏览器软件中,可以Internet Explorer (IE)现在是一种标准的软件。可以看到,运行不同版本的Wi...

    阿新
  • Silverlight RIA Servcie 删除子对象实体提交错误的问题[解决]

    Silverlight RIA Servcie 删除子对象实体提交错误的问题 下面实体结构 ? 查询出自对象实体方法 修改mataclass类添加[Inc...

    阿新
  • 复杂SQL代码实例

    用户1112962
  • 蛋白质组学第10期 定量方法介绍

    知识回顾定量蛋白质组学一、无标定量(相对定量)1.概念2.原理参考文献3.理论基础方法一方法二4.流程5.特点二、有标定量1.概念2.原理3.种类4. ITRA...

    生信技能树
  • Ubuntu Desktop开发生产环境搭建

    Ubuntu Desktop开发生产环境搭建 1   开发生产环境搭建 在本节内容开始前,先定义一下使用场合,没有哪种系统或者设备是万能的,都有它的优点和缺点,...

    用户1170933
  • Avada 导入 demo 失败 wp_remote_post() failed 解决过程

    群友向 wordpress 中导入 avada 的 demo 时,系统状态里有一个红色提示信息:wp_remote_post() failed. Some th...

    魏艾斯博客www.vpsss.net
  • 使用 Node.js 开发简单的脚手架工具

    像我们熟悉的 vue-cli,react-native-cli 等脚手架,只需要输入简单的命令 vue init webpack project,即可快速帮我们...

    程序员宝库
  • session失效时间设置

    session失效时间设置 一、java代码 request.getSession().setMaxInactiveInterval(1800);/*秒为单...

    似水的流年
  • session失效时间设置

    request.getSession().setMaxInactiveInterval(1800);/*秒为单位*/

    似水的流年

扫码关注云+社区

领取腾讯云代金券