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只要用来数据转换,在园里已经有很多 ...
随机推荐
- 没有文件扩展js的脚本引擎
没有文件扩展js的脚本引擎 没有文件扩展js的脚本引擎怎么解决_百度经验 https://jingyan.baidu.com/article/ff42efa93a7ad9c19e2202f0.html
- git的配置操作
git配置信息 一.配置git config git config user.name 'yourName' git config user.name 'yourEmail@gmail.com' 二. ...
- CAS 原理
基础模式 1. 访问服务: 客户端发送请求访问应用系统提供的服务资源. 2. 定向认证: 客户端会重定向用户请求到 服务器. 3. 用户认证:用户身份认证. 4. 发放票据: 服务器会产生一个随机 ...
- TCP/IP具体解释--TCP首部的TimeStamp时间戳选项
TCP应该是以太网协议族中被应用最为广泛的协议之中的一个,这里就聊一聊TCP协议中的TimeStamp选项.这个选项是由RFC 1323引入的,该C建议提交于1992年.到今天已经足足有20个年头.只 ...
- 【JMeter】【微信好文收藏】Jmeter接口测试实战-有趣的cookie
场景: 接口测试时常都需要登录,请求方式(post), 登录常用的方法有通过获取token, 获取session, 获取cookie, 等等. 这几种都有一个共同的特点, 有效期(expires). ...
- 【数据库】SQL语句解析
学习网站: http://www.runoob.com/sql/sql-having.html 1. 1.现在我们想要查找总访问量大于 200 的网站. 回取出多条重复的网址的SQL语句: selec ...
- MongoDB update修改器: 针对Arrays的$修改器 $push $pull $pop
针对Arrays的$修改器 $push : { $push: { key: value } } 它是用来对Array (list)数据类型进行 增加 新元素的,相当于我们Python中 list.ap ...
- what's the 回抽
出自 MBA智库百科(https://wiki.mbalib.com/) 什么是回抽 由于近年来证券投资领域中技术分析的不断普及,许多投资者都认识到了股价(汇价)一旦突破颈线压力,后市看好.但是还有一 ...
- 萌新接触前端的第二课——CSS
前端知识——CSS CSS(英文全称:Cascading Style Sheets) 中文名层叠样式表,是一种用来表现HTML或XML等文件样式的计算机语言.CSS不仅可以静态地修饰网页,还可以配合各 ...
- Python3学习之路~5.8 shelve模块
shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式 import shelve import datetime name = [& ...