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首页有分页和查询功能
修改 可以删除
目前只是一个雏形,还有很多功能需要完善,如果你有兴趣可以一起参与帮忙。
转载于:https://www.cnblogs.com/xizz/p/5007980.html
MVC5-Scaffolder相关推荐
- 自定义Visual Studio.net Extensions 开发符合ABP vnext框架代码生成插件[附源码]
介绍 我很早之前一直在做mvc5 scaffolder的开发功能做的已经非常完善,使用代码对mvc5的项目开发效率确实能成倍的提高,就算是刚进团队的新成员也能很快上手,如果你感兴趣 可以参考 http ...
- MVC5学习系列--Razor视图(一)
前言 嗷~小弟我又出现了~咳咳..嚎过头了, 先说一说为什么写这个吧,~首先肯定是我自己需要学(废话 - -,)//,之前也写过MVC4的项目,嗯..但是仅限于使用并没有很深入的每个模块去了解, 这段 ...
- [Asp.net MVC]Asp.net MVC5系列——添加数据
目录 概述 显示添加数据时所用表单 处理HTTP-POST 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列--第一个项目 [Asp.net MVC]Asp.net MVC5系列 ...
- [Asp.net MVC]Asp.net MVC5系列——第一个项目
目录 概述 创建第一个项目 添加控制器 总结 概述 本教程是个人一步一步学习的总结,希望能帮到正在进入ASP.Net MVC5方向的朋友,个人也是准备进入ASP.NET MVC5领域,虽然艰辛,但是乐 ...
- [实战]MVC5+EF6+MySql企业网盘实战(16)——逻辑重构3
写在前面 本篇文章将新建文件夹的逻辑也进行一下修改. 系列文章 [EF]vs15+ef6+mysql code first方式 [实战]MVC5+EF6+MySql企业网盘实战(1) [实战]MVC5 ...
- 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](三)
前言 上一篇<一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](二)>我们通过如下操作: 创建实体及工具类 创建Re ...
- ASP.NET.4.5.1+MVC5.0系统角色和权限讲解
细说ASP.NET.4.5.1+MVC5.0系统角色和权限 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软 ...
- MVC5+EF6 入门完整教程七
原文:MVC5+EF6 入门完整教程七 本篇我们针对表格显示添加一些新功能. 前面我们已经讲解过表格显示数据了,现在我们添加三个常用功能: 对显示结果进行排序.过滤.分页. 文章提纲 理论基础/前置准 ...
- MVC5路由系统机制详细讲解
转自:http://www.lanhusoft.com/Article/213.html 请求一个ASP.NET mvc的网站和以前的web form是有区别的,ASP.NET MVC框架内部给我们提 ...
- VS2013安装MVC5
打开VS 选择 .net 4.5 创建项目 右击项目 选择管理NuGet 输入 Microsoft.AspNet.Mvc -Version 5.0.0 安装最新版本的MVC5 转载于:https:/ ...
最新文章
- windows计算器
- windows:mysql5.7.29安装
- openstack-mitaka之Telemetry服务(controller安装部署二)
- Endnote X9安装教程
- ASP.NET Core 中的管道机制
- 线段树专题-等差子序列 BZOJ-2124
- GridView自动序号
- 没有workstation_这才是Win10的旗舰版:WorkStation版独享功能测试
- leetcode @python 120. Triangle
- php 查找php配置文件php.ini所在路径的二种方法
- android iphone字体,网站中的字体设置--兼容苹果、pc、安卓系统的字体设置
- 初步学习CRM的感想
- Halcon 第四章『图像特征和提取』◆第3节:基于图像的纹理特征|灰度共生矩阵
- 精通CSS.DIV网页样式与布局(二)—— 段落
- 有时候可用 UIWebView 代替 UITextView,解决行间距问题
- sqlserver2017下载、安装、卸载
- python 斗地主发牌_tkinter模拟斗地主发牌
- Fiddler4下载安装和火狐搭配使用
- Spring 实战最新版中文版
- 机车车辆 薄轮缘型号 尺寸图 轮对 LM型
热门文章
- SNMP 枚举工具 Snmpwalk
- linux升级gfortran版本,Ubuntu下GCC、G++和gfortran版本切换
- 基于JAVA控制台版本银行自动取款机(修改版)
- https://ipcrs.pbccrc.org.cn/
- APP下载量全面概述,含统计方法
- 中国航天科技集团公司的各个研究院
- ArrayList源码解读
- vite项目在jenkins自动打包报错:failed to load config from ../vite.config.js You installed esbuild on
- 数论题中(杜教筛)交换求和符号
- latex中求和符号的条件的换行处理