概述

通过扩展visual studio.net scaffolding组件,添加了一套功能完善的代码模板,包括Controller,Model,View,Businessd等各种功能的代码,配合Entity Framework Code-Frist功能实现快速构建业务系统的一套开发工具.

主要优势

市面上类似的代码生成工具有很多,但完全集成在visual studio.net以插件形式存在的几乎没有,大部分都是通过先定义表结构(数据字典)再运行工具生成对应的代码.然后再手工拷贝到对应的项目中,而改项目就是简单的多,只需要把实体对象定义出清楚,直接再项目中运行新增controller后选择需要的实体对象就可以.非常快捷.

不足之处

目前scaffolding组件只能在一个solution中的单个project中添加源代码文件,还没有办法降不同层的代码新建到对应的project中去,比如根据实体对应分别新建不同的project,对大型项目的分工会更好.

主要功能

  • 与Visual Studio.Net 2017无缝集成
  • 快速生成标准的C.R.U.D代码
  • 符合经典的Asp.Net MVC5 N层架构
  • 运行环境.Net framework 4.7.1+
  • 支持Sql Server,MySql,Oracle等主流数据库
  • 前端Javascript采用ES6规范

Github download Demo

细节提升

  • 项目开始与2014年
  • Controller升级异步执行采用(async/await)
  • 使用Microsoft Unity DI & IoC
  • 前端采用Smart Admin模板
  • 前端控件一律采用Easyui组件
  • 前端Js Callback改成箭头函数(Arrow Function)加入(async/await)方法
  • 新增对数据编辑模式的设定一种是弹出窗口操作,一种是直接在datagrid内部开启编辑状态
  • 更友好更详细的操作信息的提示

为什么使用EasyUI而不使用Smart Admin模板自带的标准Input.主要标准的Input虽然样式更漂亮,但功能比较单一,很多操作不是很方便,EasyUI社区比较活跃文档比较全面入手比较简单.但不足之处就是与responsive htmj兼容性不好,这里主要是我对easyui css不熟导致

代码模板

模板 功能
Controller.cs.t4 控制层代码与View层所有操作包括增删改查的全部功能
EntityQuery.cs.t4 查询逻辑的封装类参考URF.NET中的功能
EntityRepositoryExtension.cs.t4 对实体对象的增删改查的封装参考URF.NET中的功能
IEntityService.cs.t4 业务逻辑层代码参考URF.NET中的功能
EntityService.cs.t4 业务逻辑层具体实现的代码参考URF.NET中的功能
Index.cs.t4 主View代码包括datagrid现实,增删改查的功能实现
_PopupDetailFormView.cs.t4 弹出框操作表单
... 辅助功能代码
...  

Demo

项目案例

我的联系方式,欢迎讨论

qqq群: 942771435

MVC Scaffolding SmartCode-Engine 更新的更多相关文章

  1. ASP.NET MVC 5 SmartCode Scaffolding for Visual Studio.Net

    介绍 ASP.NET MVC 5 SmartCode Scaffolding是集成在Visual Studio.Net开发工具中一个ASP.NET MVC Web应用程序代码生成框架,使用SmartC ...

  2. MVC UpdateModel的未能更新XXXXX的类型模型

    关于MVC  UpdateModel的未能更新XXXXX的类型模型 的问题: 最近做MVC3的项目,相信很多人都碰到过这个问题,在此记录一下,异常:UpdateModel的未能更新XXXXX的类型模型 ...

  3. ASP.NET MVC深入浅出系列(持续更新) ORM系列之Entity FrameWork详解(持续更新) 第十六节:语法总结(3)(C#6.0和C#7.0新语法) 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字 各种通讯连接方式 设计模式篇 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借

    ASP.NET MVC深入浅出系列(持续更新)   一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模 ...

  4. MVC linq To SQL更新数据库操作

    首先在视图中提交数据,使用Html.BeginForm() @using(Html.BeginForm()) { @Html.EditorForModel() //编辑模板.控制器中传过来的数据 &l ...

  5. MVC基础知识-持续更新....

    1.如何在自动生成的视图中显示需要的字段名称: 在相应的定义字段中添加Display,例如: [Display(Name = "用户名:")] public string User ...

  6. (七)学习MVC之CodeFirst迁移更新数据库

    1.首先在程序包管理控制台输入:enable-migrations -force ,然后回车: 问题1: The EntityFramework package is not installed on ...

  7. mvc EF 从数据库更新实体,添加视图实体时添加不上的问题

    视图对象没有一列为非null的,解决办法,在视图中,将某一列排除为null的可能,比如:isnull(te,1),即可.

  8. Devexpress MVC GridView / CardView (持续更新)

    //获取gridview里面的combo box 显示的文本 //获取某个column在gridview的 index RightGridView.GetColumnByField("Fun ...

  9. ASP.NET MVC 5 - 查询Details和Delete方法

    在这部分教程中,接下来我们将讨论自动生成的Details和Delete方法. 查询Details和Delete方法 打开Movie控制器并查看Details方法. public ActionResul ...

随机推荐

  1. Largest Rectangle in a Histogram [POJ2559] [单调栈]

    题意一个围挡由n个宽度为1的长方形挡板下端对齐后得到,每个长方形挡板的高度为hi.我们把其抽象成一个图形,问这个图形中包含的面积最大的长方形是多大? 输入多行数据,每行第一个为n,后面n个数,代表hi ...

  2. mysql_Navicat数据库破解

    Navicat Premium 12.1.16.0安装与激活 Navicat Premium 12是一套数据库开发管理工具,支持连接 MySQL.Oracle等多种数据库,可以快速轻松地创建.管理和维 ...

  3. Address already in use: make_sock: could not bind to address 0.0.0.0:80

    网上查了很多资料都是要杀进程,但是并没有找到占用的进程. 最后解决的方案是在apache配置文件下,去掉Listen 80 即可

  4. Android Gradle Task

    Tasks runnable from root project ------------------------------------------------------------ Androi ...

  5. thinkphp 单图上传组建成数组然后追加到一个字段

    //上传的数组字段 $note1 = input('note1'); $note2 = input('note2'); $note3 = input('note3'); $note4 = input( ...

  6. javabean简介

    Javabean简介 JavaBean是一个可重复使用的软件组件.实际上JavaBean是一种Java类,通过封装属性和方法成为具有某种功能或者处理某个业务的对象,简称bean.由于javabean是 ...

  7. 手机touch事件及参数【转】(自己懒得写了,找了一篇摘过来)

    [html5构建触屏网站]之touch事件 前言 一个触屏网站到底和传统的pc端网站有什么区别呢,交互方式的改变首当其冲.例如我们常用的click事件,在触屏设备下是如此无力. 手机上的大部分交互都是 ...

  8. Canvas中绘制贝塞尔曲线

    ① 什么是贝塞尔曲线? 在数学的数值分析领域中,贝济埃曲线(英语:Bézier curve,亦作“贝塞尔”)是计算机图形学中相当重要的参数曲线.更高维度的广泛化贝济埃曲线就称作贝济埃曲面,其中贝济埃三 ...

  9. C++通过GetAdapatersInfo获取网卡配置信息

    DWORD GetAdaptersInfo( PIP_ADAPTER_INFO pAdapterInfo, //指向一个缓冲区,用来取得IP_ADAPTER_INFO结构列表 PULONG pOutB ...

  10. Android APK反编译:APKtool使用详解

    导言:在我们安卓开发当中,我们不仅需要掌握基础的开发技能,也需要掌握软件的安全技能,这样才可以让我们的软件能够成为一款能够真正可以进行发布的软件,同时也可以让自己的核心技术不会被别人所盗取. 第一步. ...