最近在做一个项目,用的框架是Abp vnext ,不是Abp, 我自己也是刚开始用这个框架来做项目,难免要查资料,这个框架官方有中文文档,可以到官网www.abp.io 去查看,国内也有一些写了相关的文档,但是很多文档基本就是把官方文档搬过来,对于实际有些关键点的坑并没有填,还有些写的通篇理论知识,各种名词,像老太太的裹脚布,查资料查起来各种头大。我是实战派,这里就自己遇到的问题和开发项目的经验讲一些自己的理解,也好让用这个框架的人员快速入门。

好,废话不多说,下面就开始说,全是干货哦(注意看以下内容要有.net core开发相关知识)。

先说下我认为能使用一个框架要首先解决的几个问题:

  1. 要能理解框架整体结构
  2. 要能用框架实现基本的增删改查
  3. 了解框架如何实现角色权限控制
  4. 系统的日志记录、缓存处理等等框架是否实现,如何实现

了解了以上几点,就基本可以用这个框架来开始做项目了,再有什么细节问题,可以遇到的时候再查资料解决。本篇我先说一下第一个点,就是abp vnext 框架的整体结构。

1、获取框架代码:

框架代码可以通过两种方式获取,使用CLI 和 直接下载 ,这里我用的直接下载,有喜欢用CLI的也可以看着官方文档看使用方法,官方文档这块介绍的比较详细,我就不说了,这里用直接下载的方式。

下载的时候,ProjectType有两个类型,Application 和 Module ,这两个类型的区别,官网也有详细的说明,我个人的理解就是Application 是带了Web项目,传统的系统框架。而Module 官网的介绍是这样的,可用此模板开发基于模块开发最佳实践和约定的可复用 应用程序模块 . 它同样适用于开发微服务。我理解如果项目要基于微服务框架,或者以后准备要弄成微服务的,就用这个。abp vnext我认为就是为了微服务而生的,当然下载这个了。于是

创建项目

把include user interface 勾选上

下载下来解压缩:

文件目录

主要看host,src 两个目录

Host目录下

src下

下边我把主要的几个项目讲一下,先看host下项目

1、TestProject.Host.Shared ,这个项目其实没多大用的到。看到Shared基本也能想到了。就是一些公用的配置之类的。比如他官方在这里做了个是否启用租户模式的配置。

2、TestProject.HttpApi.Host,这个比较重要,这是当前模块(我这个模块名字叫TestProject)的 主机宿主,里边各种模块相关的配置,运行起来这个,才能访问模块提供的api。

3、TestProject.IdentityServer,这是AuthServer,用的identityserver4,用户的授权全靠它了。这个服务在整个项目存在一个就行了,如果多模块,比如我又创建了个TestProject2,那么TestProject 和TestProject2 是共用 这个AuthServer 的。

4、TestProject.Web.Host 实际开发基本用不大到,这个官方给的一个例子,演示了客户端如何使用identityserver4进行登录

5、TestProject.Web.Unified 目前还没用到,也不知道有什么用,不说了这个

然后看下src项目

1、TestProject.Application ,相当于service层,abp框架可以做到把这层直接转为api,就不用写controller层代码了。具体如何转的后边会讲到。

2、TestProject.Application.Contracts 这层主要放Dto(数据传输对象)和权限的一些配置。

3、TestProject.Domain ,领域层,领域模型开发不了解的可以去找些资料看一下。如果用贫血模型,这层就类似之前的的Model层。

4、TestProject.Domain.Shared,看到Shared了,那么就知道是啥了,公用配置。官网这里给了多语言相关的配置

5、TestProject.EntityFrameworkCore 这个我就不用说了吧

6、TestProject.HttpApi 传统意义的Controller层,这里abp让它失业了。

其他几个目前没用到,估计也没啥用。

apb的主要结构就是这些,了解了这些,入门相当于是抬起了一个脚了。下篇将就实现增删改查做个讲解。

abp vnext 开发快速入门 1 认识框架的更多相关文章

  1. abp vnext 开发快速入门 4 跨域设置

    由于项目采用的微服务框架,前端与后端交互难免有跨域的问题.abp vnext实现跨域也很简单,只需要设置几处就可以了,这里只讲全局的跨域,至于局部的Action如何跨域请自行搜索.netcore 跨域 ...

  2. abp vnext 开发快速入门 2 实现基本增删改查

    上篇说了abp vnext 的大体框架结构,本篇说下如何实现基础的增删改查.实现增删改查有以下几个步骤: 1.配置数据库连接 2.领域层(Domain)创建实体,Ef core 层配置Dbset( 用 ...

  3. abp vnext 开发快速入门 3 实现权限控制

    上篇讲了abp vnext 实现了简单的增加操作的例子.删除更新查询基本类似,这里就不讲了,接下来说下如何实现角色权限控制. 再说之前,先说下如果想更加透彻的理解abp vnext的权限控制,最好是先 ...

  4. HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID

    HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID HealthKit开发准备工作 在开发一款HealthKit应用程序时,首先需要讲解HealthKit中有哪些类,在i ...

  5. SpringBoot开发快速入门

    SpringBoot开发快速入门 目录 一.Spring Boot 入门 1.Spring Boot 简介 2.微服务 3.环境准备 1.maven设置: 2.IDEA设置 4.Spring Boot ...

  6. 快速入门系列--WebAPI--03框架你值得拥有

    接下来进入的是俺在ASP.NET学习中最重要的WebAPI部分,在现在流行的互联网场景下,WebAPI可以和HTML5.单页应用程序SPA等技术和理念很好的结合在一起.所谓ASP.NET WebAPI ...

  7. Transform组件C#游戏开发快速入门

    Transform组件C#游戏开发快速入门大学霸 组件(Component)可以看作是一类属性的总称.而属性是指游戏对象上一切可设置.调节的选项,如图2-8所示.本文选自C#游戏开发快速入门大学霸   ...

  8. HealthKit开发快速入门教程之HealthKit数据的操作

    HealthKit开发快速入门教程之HealthKit数据的操作 数据的表示 在HealthKit中,数据是最核心的元素.通过分析数据,人们可以看到相关的健康信息.例如,通过统计步数数据,人们可以知道 ...

  9. HealthKit开发快速入门教程之HealthKit开发概述简介

    HealthKit开发快速入门教程之HealthKit开发概述简介 2014年6月2日召开的年度开发者大会上,苹果发布了一款新的移动应用平台,可以收集和分析用户的健康数据.该移动应用平台被命名为“He ...

随机推荐

  1. ElasticSearch中倒排索引和正向索引

    ElasticSearch搜索使用的是倒排索引,但是排序.聚合等不适合倒排索引使用的是正向索引 倒排索引 倒排索引表以字或词为关键字进行索引,表中关键字所对应的记录项记录了出现这个字或词的所有文档,每 ...

  2. 上位机面试必备——TCP通信灵魂二十问【下】

    上篇文章跟大家介绍了TCP通信常见的前10个面试题,没看过的小伙伴可以点击下方链接进行查看: 上位机面试必备——TCP通信灵魂二十问[上] 今天就后面的10个面试题接着做下说明:欢迎关注[dotNet ...

  3. Python 简明教程 --- 19,Python 类与对象

    微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 那些能用计算机迅速解决的问题,就别用手做了. -- Tom Duff 目录 上一节 我们介绍了Pyt ...

  4. py4j.protocol.Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe. : java.lang.IllegalArgumentException: Unsupported class file major version 55

    今天小编用Python编写Spark程序报了如下异常: py4j.protocol.Py4JJavaError: An error occurred while calling z:org.apach ...

  5. mac下创建安卓应用 hello-world

    教程 https://www.jianshu.com/p/bf77cb5ce70b 需要注意的地方 jdk目录查找 jdk目录拷贝到tool目录下面(jdk可以拷贝,没有其他牵扯) https://w ...

  6. js语法基础入门(1.2)

    1.4.查找元素的方法 1.4.1.查找元素的方法 JavaScript可以去操作html元素,要实现对html元素的操作,首选应该找到这个元素,有点类似于css中的选择器 html代码: <d ...

  7. JavaScript基础-即时函数(Immediate Functions)(017)

    1.即时函数的声明方法 即时函数(Immediate Functions)是一种特殊的JavaScript语法,可以使函数在定义后立即执行:(function () {    alert('watch ...

  8. python冷知识

    目录 省略号也是对象 奇怪的字符串 and 和 or 的取值顺序 访问类中的私有方法 时有时无的切片异常 两次 return for 死循环 intern机制 省略号也是对象 在python中一切皆对 ...

  9. 在web开发中,为什么前端比后端更得到转行程序员的青睐?必看!

    1.Web开发分类与区别 人们通常将Web分为前端和后端,前端相关的职位有前端设计师(UI/UE),前端开发工程师,后端相关的有后端开发工程师. 2.技术栈区别 看各大招聘网站上,公司对前端开发工程师 ...

  10. Python3笔记014 - 3.5 跳转语句

    第3章 流程控制语句 3.5 跳转语句 1.break 语句 while 条件表达式1: 语句块1 if 条件表达式2: break for 迭代变量 in 对象: 语句块1 if 条件表达式: br ...