最近在做一个项目,用的框架是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. Java将日期转化为大写格式(阿拉伯大写数字)

    效果: 代码部分: public static void main(String[] args) { SimpleDateFormat sdf=new SimpleDateFormat("y ...

  2. 如何用 React 构建前端架构

    早期的前端是由后端开发的,最开始的时候仅仅做展示,点一下链接跳转到另外一个页面去,渲染表单,再用Ajax的方式请求网络和后端交互,数据返回来还需要把数据渲染到DOM上.写这样的代码的确是很简单.在We ...

  3. windows 64位上安装mysql 5.7版本

    下载的mysql不是安装exe的软件,而是在windows上编译好的二进制mysql软件 下载安装之后配置环境变量:将目录D:\Program Files\mysql-5.7.18-winx64\my ...

  4. 07.Easymock的实际应用

    第一步下载对应的java包添加到工程中 并静态导入所需要的j类 import static org.easymock.EasyMock.*; 这里有的注意点 package com.fjnu.serv ...

  5. 千金良方说:"我现在奉上179341字的MySQL资料包,还来得及吗?有"代码段、附录、和高清图!!"

    上一篇"上发布过"一不小心,我就上传了 279674 字的 MySQL 学习资料到 github 上了",我在更早之前,在微信公众号"老叶茶馆"上发布 ...

  6. 入门大数据---Elasticsearch搭建与应用

    项目版本 构建需要: JDK1.7 Elasticsearch2.2.1 junit4.10 log4j1.2.17 spring-context3.2.0.RELEASE spring-core3. ...

  7. vue全家桶(4.2)

    5.2.使用vuex重构上面代码 Vuex是什么?官方定义:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测 ...

  8. ajax前后端交互原理(2)

    2.NPM使用 2.1.NPM是什么 NPM的全称是Node Package Manager,是一个NodeJS包管理和分发工具,这里要搞清楚包的概念,通俗的说,包就是具有一定功能的工具(软件),本质 ...

  9. 部署Redis Cluster 6.0 集群并开启密码认证 和 Redis-cluster-proxy负载

    部署Redis Cluster集群并开启密码认证 如果只想简单的搭建Redis Cluster,不需要设置密码和公网访问,可以参考官方文档. 节点介绍 Cluster模式推荐最少有6个节点,本次实验搭 ...

  10. 常用API - 时间日期类

    Date类 概述 java.util.Date类 表示特定的瞬间,精确到毫秒. 继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,但是其中有未过时的构造函数可以把毫秒值转成日期 ...