Abp项目构建、swagger及代码生成器
前段时间在学习abp,在配置swagger时踩了不少坑,特此整理一下,方便同行参考。幸运的是又发现了神奇的代码生成器,分享下亲身经验。
觉得此博客非常有用的朋友可以在右侧赞助打赏下,非常感谢大家支持。
推荐博客
1、 Abp项目实践推荐参照大神角落的白板报的系列博客,比较新,并且是亲身体验。
http://www.cnblogs.com/wer-ltm/p/6824716.html
2、 Abp源码整体原理结构、类关系图等参看大神Hk Zhang
http://www.cnblogs.com/1zhk/p/5268054.html
一、利用abp模板构建项目
1、打开官网https://aspnetboilerplate.com/Templates


(2) 生成项目后会自动下载代码
二、初始化数据库
参照网址 http://www.cnblogs.com/changyou7/p/6072665.html
默认用户为admin/123qwe
1、 打开代码后,打开程序包管理器管制台

2、如果下载的项目代码中已经有initialCreate迁移文件了,请删除后执行。
执行后才会有数据库,此时程序就能跑起来。

3、以后想用codefirst向数据库增加表。则在core里面增加entity如Student,并在dbcontext里面加dbset<Student>。
执行命令add-migration “add-student”
Update-database后数据库会增加students表
三、配置swagger
参照http://www.cnblogs.com/wer-ltm/p/5776024.html
1、选择webapi项目,通过nuget安装Swashbuckle.core

2、 安装后修改WebApiModule里面的方法
(1)1处一定要有他,不然swagger测试接口时会报错400,找不到对应的接口.
(2)2为动态生成接口,根据application项目中的IapplicationService的实现类动态生成controller及action,暴露给外面。Swagger中可以显示出来接口列表。
(3)4为swagger生成application项目产生的动态接口文档
(4)5为swagger生成webapi自己手动写的controller/action接口文档

(5)修改webapi类库和application类库的属性,生成的xml文档位置与configureSwaggerUi统一

3、 启动web项目(一定是web项目,我也奇怪,必须通过web项目才能启动swagger看到application动态生成的接口,非常别扭,建议有空修改成webapi项目,而不是webapi类库)
http://localhost:6634/swagger/ui/index#!就能看到接口文档

4、 在用swagger测试接口时会经常遇到登录用户的权限判断,比较麻烦,可注释掉测试完业务。最后有精力统一测试权限

5、在home/index中直接跳转到swagger的页面中,方便测试api

四、代码生成器 abp code generator
参照 http://www.cnblogs.com/wer-ltm/p/5777190.html#3639210
1、先在core里面加个student实体类,并用codefirst将表迁移到数据库中去。add-migration "add-student"; update-database

2、安装abp代码生成器,vs—工具——扩展和更新——abp code generator下载

3、并右击web项目,添加,新搭建基架的项目。


然后将代码分别拷贝到对应的项目中去(大约都是cord和application项目)。

3、 参照yoyo.cms项目,将一些类拷贝过来并重构名称及命名空间。
并将ef引用加入到application中去,因为涉及到iqueryable的分页、异步等扩展方法。


4、 代码生成器非常牛气,自动生成方法及注释,以及各种参数类

五、开发套路
1、我们选择的数据库设计优先,先设计好数据库。复制出来一套新的解决方案代码,添加个dbfirst类库,采用dbfirst生成所有的entity及dbset。注意entity里面属性都加好注释。
2、利用代码生成器生成代码,并将代码拷贝到原来的代码中去。这样基本单表操作所有代码自动完成。
3、具体开发每个表相关业务时修改完善service。
Abp项目构建、swagger及代码生成器的更多相关文章
- 在Abp中集成Swagger UI功能
在Abp中集成Swagger UI功能 1.安装Swashbuckle.Core包 通过NuGet将Swashbuckle.Core包安装到WebApi项目(或Web项目)中. 2.为WebApi方法 ...
- ABP项目概述
在系统性介绍整个ABP框架之前,我们首先需要对ABP框架有一个大概的了解,ABP框架的全称是:Asp.Net Boilerplate Project(即Asp.Net 的样板项目)顾名思义就是能够通过 ...
- ABP项目启动及源代码结构
在整体介绍ABP项目之前我们需要从官方网站下载模板项目,下载以后放到一个本地目录下,启动VS打开源代码.具体下载的步骤如下: 一 创建ABP项目模板 1 进入官方网站然后选择特定的样板项目. 2 ...
- 【转】C# ABP WebApi与Swagger UI的集成
以前在做WebAPI调用测试时,一直在使用Fiddler测试工具了,而且这个用起来比较繁琐,需要各种配置,并且不直观,还有一点是还得弄明白URL地址和要传递的参数,然后才能调用. 最近新入职,公司里 ...
- 开发完成的springboot项目扩展 swagger
第一步:pom.xml 引入 swagger 配置 <swagger.version>2.9.2</swagger.version> <!--swagger start- ...
- 在Redhat上为.Net 项目构建基于Jenkins + Github + Mono 的持续集成环境
在Redhat enterprise 6.5 的服务器上,为在gutub 上的 .net 项目构建一个持续集成环境,用到了Jenkins和mono.因公司的服务器在内网,访问外网时要通过代理,所以在很 ...
- 前端项目构建之yeoman
各位好啊,我又和大家见面了,也许你已经不记得大明湖畔的容嬷嬷,但是只要记得博客园中的我就好,希望我的博客能像一股清风,为你驱散炎热的酷暑,好了,废话不多说,开始上干货,我今天带给大家的是前端工程化开发 ...
- Castle Windsor常用介绍以及其在ABP项目的应用介绍
最近在研究ABP项目,有关ABP的介绍请看阳光铭睿 博客,ABP的DI和AOP框架用的是Castle Windsor下面就对Castle Windsor项目常用方法介绍和关于ABP的使用总结 1.下载 ...
- AutoMapper之ABP项目中的使用介绍
最近在研究ABP项目,昨天写了Castle Windsor常用介绍以及其在ABP项目的应用介绍 欢迎各位拍砖,有关ABP的介绍请看阳光铭睿 博客 AutoMapper只要用来数据转换,在园里已经有很多 ...
随机推荐
- [skill] vim 操作多个window
前言: 分辨率越来越高,屏幕越来越大,行最长80不变,屏幕利用空白越来越大. 开多个window吧! 开window的命令: 平行开一个window:split <//path/file> ...
- Flink – submitJob
Jobmanager的submitJob逻辑, /** * Submits a job to the job manager. The job is registered at the library ...
- oracle优化:避免全表扫描
http://blog.csdn.net/onetree2010/article/details/6098259
- 查找->动态查找表->B+树(无代码)
文字描述 B+树定义 B+树是应文件系统所需而出的一种B-树的变型树.一棵m阶的B+树和m阶的B-树的差异在于: (1)有n棵子树的结点中含有n个关键字 (2)所有的叶子结点中包含了全部关键字的信息, ...
- Java+Selenium 如何处理Try/Catch
场景:为了检查数据是否存在,如果存在就把数据删除,不存在则新增保存.因为我们需要做下数据初始化准备工作. 一.:Feature 示例: Scenario: E-251:维护薪资帐套明细 When I ...
- 洛谷P3567 KUR-Couriers [POI2014] 主席树/莫队
正解:主席树/莫队 解题报告: 传送门! 这题好像就是个主席树板子题的样子,,,? 毕竟,主席树的最基本的功能就是,维护一段区间内某个数字的个数 但是毕竟是刚get到主席树,然后之前做的一直是第k大, ...
- c#中base64编码解码
//编码: byte[] bytes = Encoding.Default.GetBytes("要转换的字符"); string str = Convert.ToBase64Str ...
- 对CountDownLatch的初步学习
CountDownLatch的中文翻译为"闭锁",在JDK1.5中 CountDownLatch类加入进来.为程序猿进行并发编程提供有利的帮助. 首先我们先看看JDK文档中对于Co ...
- MySQL忘记root密码--不重启mysqd重置root密码
先提个问题:如何不重启mysqld,且没有权限修改用户账号和权限的情况下,如何重新设置root密码?不知道没关系,在此之前我也是不知道如何操作的,先看看下面的几种重置root密码的方法. 1.skip ...
- php程序猿面试分享
面试总结 今天去了北京著名IT公司进行PHP程序猿的面试.这是人生第一次么,怎么不紧张?我是不是有病.不是.这叫自信呵. 首先是做一些笔试题. 1.mysql数据库索引使用的数据结构?这样做的优点是? ...