zoukankan      html  css  js  c++  java
  • 代码生成工具介绍和使用

    代码生成工具介绍和使用

    RUF MVC5 Repositories Framework Generator代码生成工具介绍和使用

     

     

    功能介绍

     

    这个项目经过了大半年的持续更新到目前的阶段基本稳定

     

    所有源代码都是开源的,在github https://github.com/neozhu/MVC5-Scaffolder 共享

     

    整个项目结构,技术框架完全是基于http://genericunitofworkandrepositories.codeplex.com/ 实现。

     

    轻量级的N层架构,Unit Of Work and Repository 设计模式,Entity Framework Code-first的实现方式,这样的技术架构非常简洁和完美。

     

    而我做的就是通过visual studio 2013提供的 Scaffolder代码生成向导的扩展接口上进行自定义开发通过实体类生成这些数据架构所需要源代码,把大量重复的代码利用工具自动生成实现快速开发的同时又有利于规范开发人员的编程习惯。

     

    已经实现的基本功能

     

    1. 单个实体类的增删改查,都是通过easyui datagrid实现
    2. 实体类中定义了有外键关键字的字段,会自动生成combox的查询和编辑操作控件
    3. 实体类中定义了一对多,主从表结构的,系统自动主从表同时编辑操作查询的页面和功能
    4. 编辑功能,会根据字段类型,验证规则生成不同的编辑模式,比如日期类型用datebox,数字类型就用numberbox,必填的验证可以实现
    5. 查询功能,会根据字段类型的不同生成不同的控件方便操作,datebox,combox
    6. Excel导入功能,目前只能实现简单表导入的配置

     

     

     

     

     

    使用向导

     

    1. 新建一个Controller

     

     

    1. 选择 RUF MVC5 Repositories Framework Generator

     

     

    1. 选择你要生成的Model,Data Context

     

    Generate views选项说明

     

    1. Over write existing pages 覆盖已经存在的view
    2. Generate Master-Detail relationship Action and PageView 如果实体类中定义了外键和一对N的集合类型,那么会自动生成主从关系的操作页面和对应的Controller
    3. Set Form Layout Columns 选择生成编辑页面是字段排列成几列在一行上

     

     

    1. 定义实体验证规则和中文说明

     

     

    1. 更新数据库

     

    这里使用的EntityFramework 的code-first模式创建的数据访问类,因此当你修改了实体类的字段属性系统会重新更新到实体数据库

     

    1. 打开 Package Manager Console
    2. 运行 add-migration 系统会生成对应修改的脚本
    3. 运行 update-database –script 系统会把脚本更新到物理数据库同时生产一个sql脚本用于更新你的生产环节或其他数据库

     

     

     

     

     

    1. 完成系统生成

    2. 需要的源代码文件

     

    以下就是标准的MVC N层架构规范代码

     

    1. /Controllers/ProductsController.cs(控制类)
    2. /Models/ProductMetadata.cs(实体类)
    3. /Repositories/Products/ProductQuery.cs(数据访问类)
    4. /Repositories/Products/ProductRepository.cs(数据访问类)
    5. /Services/Products/IProductService.cs(业务逻辑类)
    6. /Services/Products/ProductService.cs(业务逻辑类)
    7. /Views/Products/Index.cshtml(视图)
    8. /Views/Products/Edit.cshtml(视图)
    9. /Views/Products/EditForm.cshtml(视图)
    10. /Views/Products/_PopupSearch.cshtml(视图)
    11. /Views/Products/Create.cshtml(视图)
    12. 注册服务

     

    修改/App_Start/UnityConfig.cs

     

    将新生成的服务类注册一下才能使用,这就用UnitOfWork设计模式实现依赖注入

     

     

     

    1. 运行测试

     

    编译成功后运行的界面如下

     

    所有增删改查都是通过easyui datagrid实现

     

    包括必填的验证规则都已经生成

     

     

     

     

    针对一对N的结构生成的视图如下

     

    上半部分为主表操作区,下半部分是明细表操作区。

     

     

    Demo截屏

     

     

     

  • 相关阅读:
    1. Go的安装和第一行代码
    合工大OJ 1344
    __int64与long long、long的区别
    合工大OJ 1343
    如何快速查找下载java项目所需jar包
    油田勘测(深度优先算法,广度优先算法)
    图的创建(邻接矩阵)
    五大常用算法总结
    前序遍历,中序遍历,后序遍历(树的深度优先算法),层序遍历(树的广度优先算法)
    IE CSS Hack
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/5393879.html
Copyright © 2011-2022 走看看