点击上方蓝字"小黑在哪里"关注我吧

  • AbpHelper

  • 模块安装

前言

上一篇介绍了ABP的一些基础知识,本篇继续介绍ABP的启动模板。使用ABP CLI命令就可以得到这个启动模板,其中包含了一些基础功能模块,你可以基于这个模板来快速开发。

开始

首先ABP CLI的安装以及基本指令这些就不说了,官网上写的很清楚。目前ABP的前端部分只支持ASP.NET Core MVC / Razor Pages和Angular,移动端支持React Native。

初学者建议跟着官网https://docs.abp.io/zh-Hans/abp/latest/Tutorials/Part-1?UI=MVC这个指引做一遍,体验一下ABP开发的基本流程,虽然ABP开发流程几乎都标准化了,照着官网的流程编写代码就能完成一个功能的开发,但是这个过程有些繁琐,容易出错。这里推荐一个开源项目:https://github.com/EasyAbp/AbpHelper.GUI,这是一个ABP帮助工具,你只需要创建一个实体,剩下的代码它都可以帮你生成。这个项目是https://github.com/EasyAbp下的一个子项目,EasyAbp是国内ABP爱好者创建的,里面还有很多开箱即用的模块,可以关注一下。。。

AbpHelper

使用AbpHelper来完成官网的例子非常容易,首先创建项目解决方案:

AbpHelper提供了图形化配置,自动帮我们执行ABP CLI指令:

执行完成后,打开解决方案,先启动Acme.BookStore.DbMigrator项目来初始化数据库:

然后就可以启动Acme.BookStore.Web项目,这是APB启动模板的默认界面:

接下来,在Acme.BookStore.Domain项目中创建Book实体,我直接从官网上复制代码。

public class Book : AuditedAggregateRoot<Guid>
{public string Name { get; set; }public BookType Type { get; set; }public DateTime PublishDate { get; set; }public float Price { get; set; }protected Book(){}public Book(Guid id, string name, BookType type, DateTime publishDate, float price): base(id){Name = name;Type = type;PublishDate = publishDate;Price = price;}
}

在Acme.BookStore.Domain.Shared项目中添加枚举类BookType:

public enum BookType
{Undefined,Adventure,Biography,Dystopia,Fantastic,Horror,Science,ScienceFiction,Poetry
}

第一次使用需要安装一下AbpHelper CLI:

选择Generate CRUD,填入实体名称和解决方案路径,然后Execute即可:

生成代码时可能会报这个错(如果没装ef tools):

这时安装一下ef tools就好了,dotnet tool install -g dotnet-ef

代码生成完后,运行Acme.BookStore.Web项目:

使用默认用户 admin/1q2w3E* 登录系统,给admin角色分配BookStore相关权限:

然后就可以看到book菜单了,包括基本的增删改查界面:

至此就完成了一个基本功能的开发,AbpHelper确实很方便,他还有CLI版本,直接命令行操作。

模块安装

ABP的模块化可以实现插件式的开发,你可以预先构建一些通用的模块,比如日志模块,用户模块等等,当你以后需要时就可以直接安装到项目中。有一些由ABP社区开发和维护的开源免费的应用程序模块,我们可以直接使用;比如我要使用官方的Blogging模块,Blogging是用于创建精美的博客。

同样使用AbpHelper来安装:

安装过程出了点小问题,提示找不到DbContext。。。不过没关系,自己执行一下迁移命令就行。。。

Acme.BookStore.Web项目设为启动项,默认项目为Acme.BookStore.EntityFrameworkCore.DbMigrations,然后执行:

Add-Migration AddedBlogging

Update-DataBase

接下来再次运行Acme.BookStore.Web项目,为admin角色配置博客相关的权限:

然后就就可以看到博客的相关功能:

Swagger:

当然,这些模块不一定完全符合你的要求,你可能需要稍作修改,ABP也允许你扩展实体,重写服务包括重写用户界面,你可以很方便的修改。这些后面再介绍,包括如何去开发这种模块。。。

最后

EasyAbp上也有很多开源模块,地址是:https://github.com/EasyAbp/EasyAbpGuide,目前这些模块的UI部分都只支持MVC/Razor Pages,不支持Angular之类的。。。当然模块不一定非要UI,一些Framework级别的模块就不需要UI。基础部分就写到这里,主要还是需要认真看下官网,然后自己动手练习一下。下一篇将进入vue+ABP实战部分。

初识ABP vNext(2):ABP启动模板相关推荐

  1. [Abp vNext 源码分析] - 1. 框架启动流程分析

    一.简要说明 本篇文章主要剖析与讲解 Abp vNext 在 Web API 项目下的启动流程,让大家了解整个 Abp vNext 框架是如何运作的.总的来说 ,Abp vNext 比起 ABP 框架 ...

  2. ABP vNext微服务架构详细教程——基础服务层

    1 服务创建 在除身份管理相关服务以外的其他业务服务中,我们不需要包含用户角色权限管理功能模块,ABP vNext框架为我们提供了模块模式,其默认模板不包含身份管理相关模块,更适合用于搭建普通的业务微 ...

  3. Abp vNext 切换MySql数据库

    Abp vNext是Abp的下一代版本,目前还在经一步完善,代码已经全部重写了,好的东西保留了下来,去除了很多笨重的东西,从官宣来看,Abp vNext主要是为了以后微服务架构而诞生的. 从源码来看, ...

  4. ABP VNext系列(一)-第一个ABP VNext

    ABP VNext系列(一)-第一个ABP VNext 下一篇 : ABP VNext系列(二)-详解ABP的依赖注入 目录 ABP VNext系列(一)-第一个ABP VNext 一. ABP VN ...

  5. 2.1.1 Abp vNext 地磅无人值守 接口服务创建

    地磅无人值守项目 系列文章目录 文章目录 前言 一.Abp vNext手脚架 二.创建Abp vNext项目 1.创建项目 2.初始化数据库 3.试运行 3.1 查看数据库连接 3.2 浏览器查看 3 ...

  6. Abp vNext 模块化

    Abp vNext 在Abp vNext框架当中呢,模块化管理可以说是最基本的要求,他把程序按照模块进行切分,模块之间也存在相互依赖的关系,当然模块切分可以按照业务,也可以按照功能,最后一个一个组装拼 ...

  7. ABP vnext知识整理

    定义 Abp vNext是ABP团队从2017年开始基于.Net Core对ASP.NET Boilerplate的重写版本,并且正式命名为Abp Framework,也称Abp vNext或者ABP ...

  8. 我和ABP vNext 的故事

    Abp VNext是Abp的.NET Core 版本,但它不仅仅只是代码重写了.Abp团队在过去多年社区和商业版本的反馈上做了很多的改进.包括性能.底层的框架设计,它融合了更多优雅的设计实践.不管你是 ...

  9. ABP VNext系列(二)-详解ABP的依赖注入

    ABP VNext系列(二)-详解ABP的依赖注入 上一篇 : ABP VNext系列(一)-第一个ABP VNext 目录 ABP VNext系列(二)-详解ABP的依赖注入 一.什么是依赖注入 1 ...

最新文章

  1. 转[再谈应用环境下的TIME_WAIT和CLOSE_WAIT]
  2. OS_CORE.C(1)
  3. 回顾 | Kubernetes SIG-Cloud-Provider-Alibaba 首次网研会(含 PPT 下载)
  4. c++静态变量的生存期
  5. 星之卡比镜之迷宫机器人_机器人工程师入门(0)
  6. 这可能是新手最容易入门的JVM讲解(不过是一场恋爱)
  7. Linux内核分析(四)----进程管理|网络子系统|虚拟文件系统|驱动简介
  8. MATLAB学习笔记——数组
  9. sentaurus器件仿真(sdevice部分)(二)
  10. 第五章-----Java数组及排序
  11. html表格宽度设置没效果,html表格宽度设置失效
  12. 测试用例设计-淘宝购物车,微信发红包
  13. 跨省游恢复!酒店行业怎么利用小程序抓住机会,应该做哪些?
  14. 技术实力雄厚的新公链Aergo带你看应用落地
  15. Oracle数据库查询数据语法
  16. linux I2C设备驱动
  17. synchronized 和 AQS
  18. 戴上口罩AI变“脸盲”?口罩人脸识别黑科技来袭
  19. 天下大势,分久必合,合久必分
  20. 牛客网最热门的 Java 面试题库(附答案),终于整理好了

热门文章

  1. TP框架表单验证 【包含ajax方法】
  2. 【mysql必知必会】第十二章 汇总数据
  3. Hbase笔记4 java操作Hbase
  4. 在 Visual Studio 2010 中创建 ASP.Net Web Service
  5. 关于Windows® API Code Pack for Microsoft® .NET Framework
  6. 弄断过河电缆_你说的是:剪断电缆线
  7. 搭建spring boot环境并测试一个controller
  8. 阿里云大学课程学习有奖征文活动现在开始
  9. 利用两款软件实现图片转文字
  10. ubuntu11.10 64bits机器安装flash方法