.NET Core如何使用APB vNext框架
发表于:2025-02-14 作者:千家信息网编辑
千家信息网最后更新 2025年02月14日,这篇文章给大家分享的是有关.NET Core如何使用APB vNext框架的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。快速入门案例.NET Core 控制台应用1. 安装
千家信息网最后更新 2025年02月14日.NET Core如何使用APB vNext框架
这篇文章给大家分享的是有关.NET Core如何使用APB vNext框架的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
快速入门案例
.NET Core 控制台应用
1. 安装 ABP 框架核心依赖
Install-Package Volo.Abp.Core -Version 3.3.2
2. 新建 ABP 应用的启动模块
HelloAbpModule.cs
using Volo.Abp.Modularity;namespace HelloAbp{ ////// 启动模块 /// public class HelloAbpModule : AbpModule { }}
3. 新建服务,并注册到启动模块中
HelloWorldService.cs
using System;using Volo.Abp.DependencyInjection;namespace HelloAbp{ ////// TODO: ABP 注册服务方式一: 继承接口 /// ISingletonDependency、IScopedDependency、ITransientDependency /// public class HelloWorldService : ITransientDependency { public void Run() { Console.WriteLine($"{nameof(HelloAbpModule)}-{nameof(HelloWorldService)}: Hello World!"); } }}
4. 根据启动模块创建 ABP应用,调用应用中注册的服务方法
Program.cs
using System;using Microsoft.Extensions.DependencyInjection;using Volo.Abp;namespace HelloAbp{ class Program { static void Main(string[] args) { // 根据启动模块创建 abp 应用 var application = AbpApplicationFactory.Create(); // 初始化 abp 应用 application.Initialize(); // 获取应用中注册的服务 var service = application.ServiceProvider.GetService (); // 调用应用中的服务方法 service.Run(); Console.ReadKey(); } }}
ASP.NET Core Web 应用程序
1. 安装 ABP 框架核心依赖
Install-Package Volo.Abp.Core -Version 3.3.2Install-Package Volo.Abp.AspNetCore.Mvc -Version 3.3.2
2.新建 ABP 应用的启动模块
AppModule.cs
using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using Microsoft.AspNetCore.Builder;using Microsoft.AspNetCore.Http;using Microsoft.Extensions.Hosting;using Volo.Abp;using Volo.Abp.AspNetCore.Mvc;using Volo.Abp.Modularity;namespace HelloWebAbp{ ////// 启动模块 /// TODO: 1.在启动模块中配置 ASP.NET Core Web 程序的管道,就需要定义对 ASP.NET Core Mvc模块的依赖 /// [DependsOn(typeof(AbpAspNetCoreMvcModule))] public class AppModule : AbpModule { ////// 应用初始化方法 /// TODO: 2.重写 ABP 应用的初始化方法,用来构建 ASP.NET Core 应用程序的中间件管道 /// /// public override void OnApplicationInitialization(ApplicationInitializationContext context) { // base.OnApplicationInitialization(context); var app = context.GetApplicationBuilder(); var env = context.GetEnvironment(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseRouting(); // TODO: 5.将 程序应用的端点配置 修改为 ABP 应用的端点配置 app.UseConfiguredEndpoints(); } }}
3. 注册 ABP 启动模块,并初始化 ABP 应用
Startup.cs
using Microsoft.AspNetCore.Builder;using Microsoft.AspNetCore.Hosting;using Microsoft.AspNetCore.Http;using Microsoft.Extensions.DependencyInjection;using Microsoft.Extensions.Hosting;using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;namespace HelloWebAbp{ ////// 程序启动类 /// TODO: 3. 在 Startup 类中,完成对 ABP 应用的初始化 /// public class Startup { // This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { services.AddApplication(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.InitializeApplication(); } }}
4. 新建控制器,测试 ABP 应用运行状态
HomeController.cs
using Microsoft.AspNetCore.Mvc;using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using Volo.Abp.AspNetCore.Mvc;namespace HelloWebAbp.Controllers{ ////// 控制器 /// TODO: 4. 继承 Abp 框架中的基类控制器(提供了一些便捷的服务和方法) /// public class HomeController : AbpController { public IActionResult Index() { return Content("Hello world!"); } }}
各个击破案例
ABP应用中的模块可以有很多个,但是启动模块只能有一个;
ABP应用中的每个模块之间没有必然的联系;
ABP应用中每个模块注册的服务,都注册到了ABP应用的全局容器中;
ABP应用中的模块也分为两种类型:应用程序模块(业务实现)和框架模块(技术实现);
ABP应用中最顶层的模块是启动模块,最后被加载的也是启动模块。
在模块中注册自定义服务
HelloAbpModule.cs
using System;using System.Collections.Generic;using System.Text;using Microsoft.Extensions.DependencyInjection;using Volo.Abp;using Volo.Abp.Modularity;namespace HelloAbp{ ////// 启动模块 /// public class HelloAbpModule : AbpModule { // TODO: 重写 ABP 模块的服务配置方法,向模块中注册自定义的服务 public override void ConfigureServices(ServiceConfigurationContext context) { base.ConfigureServices(context); // TODO: ABP 注册服务方式二: 模块注册 context.Services.AddTransient(); } }}
小结
初始化ABP模块
1.注册ABP基础设施与核心服务(模块系统相关)
2.加载整个应用的所有模块,按照依赖性排序
3.按顺序遍历所有模块,执行每一个模块的配置方法
4.按顺序遍历所有模块,执行每一个模块的初始化方法
使用标签属性注册自定义服务
HelloWorldService.cs
using System;using System.Collections.Generic;using System.Text;using Microsoft.Extensions.DependencyInjection;using Volo.Abp.DependencyInjection;namespace HelloAbp{ ////// TODO: ABP 注册服务方式三: 特性标签 /// ServiceLifetime.Singleton、ServiceLifetime.Scoped、ServiceLifetime.Transient /// [Dependency(ServiceLifetime.Transient)] public class HelloWorldService { public void Run() { Console.WriteLine($"{nameof(HelloAbpModule)}-{nameof(HelloWorldService)}: Hello World!"); } }}
ABP 项目中使用 Autofac
1. 安装 Autofac 模块
Install-Package Volo.Abp.Autofac -Version 3.3.2
2. 在模块中创建对 Autofac 模块的依赖
HelloAbpModule.cs
using System;using System.Collections.Generic;using System.Text;using Microsoft.Extensions.DependencyInjection;using Volo.Abp;using Volo.Abp.Autofac;using Volo.Abp.Modularity;namespace HelloAbp{ ////// 启动模块 /// // TODO: 使用 Autofac 第三方依赖注入框架(提供了更多的高级特性) [DependsOn(typeof(AbpAutofacModule))] public class HelloAbpModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) { base.ConfigureServices(context); context.Services.AddTransient(); } }}
3. 在ABP应用创建时集成 Autofac
Program.cs
using System;using Microsoft.Extensions.DependencyInjection;using Volo.Abp;namespace HelloAbp{ class Program { static void Main(string[] args) { { // 根据启动模块创建 abp 应用 var application = AbpApplicationFactory.Create(options => { // 集成 Autofac options.UseAutofac(); }); // 初始化 abp 应用 application.Initialize(); // 获取应用中注册的服务 var service = application.ServiceProvider.GetService (); // 调用应用中的服务方法 service.Run(); } Console.WriteLine("Hello World!"); Console.ReadKey(); } }}
感谢各位的阅读!关于".NET Core如何使用APB vNext框架"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
模块
应用
服务
方法
框架
程序
配置
控制
应用程序
控制器
方式
更多
核心
内容
标签
特性
端点
管道
篇文章
顺序
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
mysql数据库查询统计
图文档管理服务器
网络技术支撑做什么
mc生电服务器是什么意思
国内的网络安全大赛
课本剧网络安全
贵州的软件开发公司
服务器性能优化
泸州柠檬果果网络技术有限公司
埃森哲公司软件开发怎么
数据库学习 知乎
所有物理服务器之间的权限怎么开
软件开发是哪里
拒不执行网络安全义务罪解释
幼儿园网络安全部门叫啥
保障网络安全责任人
剑灵哪个服务器最新
怎么获得服务器管理员权限
网络视频服务器哪家好
如何实现保密性网络安全原则
生信常用数据库
我的世界建手机版服务器过程
绘网络安全画饭圈乱象为题
苹果炒股交易软件开发
数据库数据安全技术
信息安全入门和软件开发入门
视频监控网络安全事故方案
网络技术新题库
v0服务器
大数据存储服务器机箱订制