兄弟们,人生需要指引,而复制是成功最快的方式,让我们开始行动吧

——codesoft

教程介绍

ABP-Vnext框架我们之前摸了无数次,好象初恋的女孩,一直在靠近,一直在努力,一直不敢盯着她的眼睛说:美女,我很喜欢你,能不能一起吃个饭!我们都喜欢自己变得足够的优秀之后,才敢说这句话。结果三年就过去了。我想搞技术也是这样,我一直都把ABP-Vnext框架当做心目中的女神,一直不敢碰。现在,让我们勇敢地把代码拉到本地来,看看到底怎么样。

这个教程没有别的特点,我就是想保证一点:足够清晰和简单,每个人看了,都能够一步一步做出来,完全重现整个过程,完全了解ABP-Vnext所有特点,让ABP-Vnext从女神到女友。

第一步:项目安装

我们要进入官方网站进入入门教程:https://docs.abp.io/zh-Hans/abp/latest/Getting-Started-Setup-Environment?UI=BlazorServer&DB=EF&Tiered=No



跟其他官方教程不一样的是在这里你真的能够学习到进阶实用的开发技术,不象其他的官方教程就象是个广告和敷衍,上次进入谷歌的开发教程页面就是。还有些官方教程你学完了,也完全是懵逼的,拉拉杂杂边边角角的讲,超链接四五层页面,跟逗你玩似的,这个以微软和ORACLE文档为最,关键是微软和ORACLE你看了三四遍每句话都是汉语,却不知道到底是什么意思,大量的名词术语你听都没有听过。还有些官方教程跟网上搞培训的教你CI/CD一样,手写中间件,很牛叉很高大上,一键测试部署监控,老开心了,感觉都会了,可是你一动手就痛苦了,还有十分之九的内容你得自己摸索。当然,再详细的官方教程,我们还需要查资料摸索和踩坑。

设置你的开发环境

第一件事! 在创建项目之前, 让我们先设置你的开发环境.

先决条件

开发计算机上应安装以下工具:

  • 一个集成开发环境 (比如: Visual Studio) 它需要支持 .NET 8.0+ 的开发.

    • Yarn v1.20+ (不是v2) 1 或 npm v6+ (已跟随Node一起安装)

1 Yarn v2 工作方式不同, 不被支持.

node必须安装,因为我们前端开发需要node的支持,所以这个是必须的。.NET 8.0+安装了VS2022会默认安装,Yarn暂时可以不装,后边需要的时候再装也比较容易。



安装yarn:

npm install -g yarn

yarn --version

安装 ABP CLI

ABP CLI 是一个命令行界面, 用于自动执行基于 ABP 的解决方案的一些常见任务. 首先, 你需要使用以下命令安装 ABP CLI:

dotnet tool install -g Volo.Abp.Cli

如果已安装, 则可以使用以下命令对其进行更新:

dotnet tool update -g Volo.Abp.Cli

第二步:创建新项目

我们将使用 ABP CLI 创建一个新的 ABP 项目.

或者, 你可以使用ABP Framework 网站页面上的选项轻松的 创建并下载 项目.

使用 ABP CLI 的 new 命令创建一个新项目:

abp new Acme.BookStore -u blazor-server

你可以使用不同级别的命名空间, 例如: BookStore、Acme.BookStore或 Acme.Retail.BookStore.

小技巧就是我们先创建好我们的开发文件夹,譬如我把开发文件夹创建在G盘



然后在文件夹窗口输入CMD回车,再输入后边咱们要用到的各种CMD命令。



有没有兄弟,跟我去年一样,都不知道CMD命令和Linux命令在哪里输入执行的,总感觉到处都是高大上的技术,到处都是咱们需要仰望的女神,在办公室搞的提心吊胆,面红耳赤,惴惴不安。生怕同事接开水路过自己电脑旁边,看到自己偷摸打开的一把百度搜索的页面。

第三步:运行程序

创建数据库

在这里我需要提醒大家的是,官方教程提醒我们需要修改连接字符串,但是我看了项目中的连接字符串是可以运行的,.dbMigator和.Blazor两个项目里边的数据库连接字符串我们都不需要动,先把代码运行起来,后边开发需要的时候,我们再修改连接字符串不急,这样会简单很多。

连接字符串

检查在 .Blazor 项目 中 appsettings.json 文件里的连接字符串.

"ConnectionStrings": { "Default": "Server=(LocalDb)\\MSSQLLocalDB;Database=BookStore;Trusted_Connection=True" }

关于连接字符串和数据库管理系统

解决方案配置为默认使用 Entity Framework Core 与 MS SQL Server. 但是, 如果在执行ABP CLI 的new命令时使用了-dbms参数来选择其他DBMS (如-dbms MySQL), 那么连接字符串可能不同.

EF Core 支持 多种 据库提供程序, 因此你可以使用任何受支持的DBMS. 你可以需要时候参阅Entity Framework 集成文档 来学习如何切换到另一个DBMS.

数据库迁移

.dbMigator 应用程序在首次运行时自动创建初始迁移.

如果你使用的是 Visual Studio, 你可以跳到 运行 dbMigrator 部分. 但是, 其他 IDE (例如 Rider) 在首次运行时可能会遇到问题, 因为它会添加初始迁移并编译项目. 在这种情况下, 请在 .dbMigration 项目的文件夹中打开命令行终端, 然后运行以下命令:

dotnet run

下次, 你可以像往常一样在 IDE 中运行它.

运行迁移

右键单击 .dbMigration 项目, 然后选择 设置为启动项目

找到这个项目,设置为启动项,然后运行:

按F5(或Ctrl + F5) 运行应用程序. 它将具有如下所示的输出:



正常运行了数据库迁移项目之后,数据库和实例数据应该就建立起来了。

运行应用程序

确保 .Blazor 项目是启动项目. 运行应用程序将会在浏览器中打开 login 页面:

在 Visual Studio 中使用 Ctrl+F5(而不是F5) 在不进行调试的情况下运行应用程序. 如果你没有调试目的, 这会更快.

再次把.Blazor项目设置为启动项目,好见证奇迹的时刻到了:



输入用户名 admin 和 密码 1q2w3E* 登录应用程序. 应用程序已启动并正在运行. 你可以根据此启动模板开始开发应用程序.登录后,就进入系统了:



是不是很简单,看懂的兄弟们在公屏上敲个666!

后续步骤:

第二步:我们要从数据层、业务逻辑层、前端界面层进行一个功能模块的开发,从而掌握整个框架的开发应用,能够熟练应用这个框架进行项目功能模块的定制开发。这也是我们学习这个框架的目的。

第三步:我们即使知道了如何使用这个框架,可能对于框架背后的原理还是没有深入的了解。那么后边我们就是需要对ABP -Vnext框架背后的原理,有所了解,这样基本上可以做到在知道怎么使用框架开发的同时,还知道为什么可以这么做。再然后你也可以整合别的开源项目优化这个框架。

任务很艰巨,前景很美好!

因为艰巨,所以美好,

因为艰巨,才能带美女烤串!

一起加油!

ABP -Vnext框架一步一步入门落地教程——ABP Vnext框架代码安装和启动(一)的更多相关文章

  1. Taurus.MVC WebAPI 入门开发教程1:框架下载环境配置与运行(含系列目录)。

    前言: Taurus.MVC 微服务版本已经发布了:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单. 以前都是框架发布时写点相关功能点的文章,没有形成 ...

  2. Sagit.Framework For IOS 开发框架入门开发教程2:一行代码实现引导页

    前言: 开篇比较简单:Sagit.Framework For IOS 开发框架入门开发教程1:框架下载与环境配置 第二篇教程之前写了一半,感觉不太好写,而且内容单纯介绍API,要说的很多,又枯燥乏味. ...

  3. ASP.NET Aries 入门开发教程1:框架下载与运行

    背景: 鉴于框架的使用者越来越多,文档太少,不少用户反映框架的入门门槛太高. 好吧,再辛苦下,抽时间写教程吧! 步骤1:下载框架源码 开源地址:https://github.com/cyq1162/A ...

  4. 微信公众平台入门开发教程.Net(C#)框架

    一.序言 一直在想第一次写博客,应该写点什么好?正好最近在研究微信公众平台开发,索性就记录下,分享下自己的心得,也分享下本人简单模仿asp.net运行机制所写的通用的微信公众平台开发.Net(c#)框 ...

  5. Sagit.Framework For IOS 开发框架入门开发教程1:框架下载与环境配置

    背景: 前天开源了框架:开源:Sagit.Framework For IOS 开发框架 所以注定要追补一套开发教程了,所以尽量抽空了!!! 步骤 1:下载框架源码 GitHub:https://git ...

  6. 《VR入门系列教程》之18---Oculus代码剖析

    代码剖析 原文作者:Tony Parisi     那么,Unity究竟是如何支持Oculus VR运行的?首先,我们来看看Unity场景是如何构建的.在Unity集成开发包中有一个相机预设体,这个预 ...

  7. Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World。

    系列目录 1.Taurus.MVC WebAPI  入门开发教程1:框架下载环境配置与运行. 2.Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World. 3.Tau ...

  8. Taurus.MVC WebAPI 入门开发教程3:路由类型和路由映射。

    系列目录 1.Taurus.MVC WebAPI  入门开发教程1:框架下载环境配置与运行. 2.Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World. 3.Tau ...

  9. Taurus.MVC WebAPI 入门开发教程4:控制器方法及参数定义、获取及基础校验属性【Require】。

    系列目录 1.Taurus.MVC WebAPI  入门开发教程1:框架下载环境配置与运行. 2.Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World. 3.Tau ...

  10. Taurus.MVC WebAPI 入门开发教程5:控制器安全校验属性【HttpGet、HttpPost】【Ack】【Token】【MicroService】。

    系列目录 1.Taurus.MVC WebAPI  入门开发教程1:框架下载环境配置与运行. 2.Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World. 3.Tau ...

随机推荐

  1. matting tool by cs - 视频扣绿幕 1.4 - 软件推荐

    本地软件,还没用,先留个档,试试 第一个下载还套了个广告壳,醉了,但是能用 https://www.123pan.com/s/X3jA-POMQv 这个装了,是原版,没套壳 https://pan.b ...

  2. 单词本z launch = to throw 相关词根 lanc ject jac jet bol bl bal mit miss cast

    launch = to throw 词根 launc = lanc = to throw 表示 to throw 的词根有三组 拉丁语的lanc/launc,sip 拉丁语的ject, jac(jet ...

  3. Python根据时间命名并创建文件源码

    自己写的,产品中验证ok的代码,直接上实例: import time def file_create_func(): loca = time.strftime('%Y-%m-%d-%H-%M-%S') ...

  4. 基于python的wav转txt的源码

    最近在做一个算法的时候,用到了这个转换,这里做一个备忘,希望能给你提供价值. import wave import matplotlib.pyplot as plt import numpy as n ...

  5. Oracle数据库中sql查询很快,但在程序中查询较慢的原因和解决方法

    代码如下 string sql = "SELECT * FROM LIS_V_LABTESTSAMPLE WHERE PATIENT_ID=:P";            HlsA ...

  6. java基本数据类型及运算的注意事项

    java基本数据类型及运算的注意事项 一.基本数据类型 序号 类型 位数 范围 说明 整数类型 (最高位为符号位) byte 8位 -128(-27)~127(27-1) 默认类型为int 二进制0b ...

  7. KETTLE4个工作中有用的复杂实例--2、两表数据比较,循环取数据,比较后自动同步(部门、单位数据同步)

    附:Kettle实战视频教程,需要的朋友可以看看学习下哈~~ kettle实战第一讲-文件和数据库表的互相转换处理_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili kettle实战第二讲-数据库单 ...

  8. java中float内存存储原理

    规格化表示: 浮点数采用的是IEEE Standard 754 Floating Point Numbers标准 float占用4个字节,和int一样,也是32bit. 第1个bit表示符号,0表示正 ...

  9. 【leetcode 春季比赛3题 二叉搜索树染色】广度搜索

    暴力: import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import ja ...

  10. 记录--我在前端干工地(three.js)

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前段时间接触了Three.js后,试着用他加载了一些模型three.js初体验简陋的了解了一下three.js的相关使用,并且写下了第一篇 ...