创建空 ASP.NET Core MVC / Razor Pages 应用程序入门指南
本教程将讲解如何以最少的依赖项从零开始使用ABP框架。通常建议从**启动模板**开始。
创建新项目
- 使用 Visual Studio 2022 (17.0.0+) 创建新的 AspNet Core Web 应用程序:
- 配置新项目:
- 点击创建按钮:
安装 Volo.Abp.AspNetCore.Mvc 包
您可以使用 ABP CLI 将 Volo.Abp.AspNetCore.Mvc 包安装到项目中。在需要安装包的.csproj文件所在目录执行以下命令:
abp add-package Volo.Abp.AspNetCore.Mvc
创建第一个 ABP 模块
ABP是一个模块化框架,需要一个继承自AbpModule的启动(根)模块类:
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Hosting;
using Volo.Abp;
using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.Modularity;
namespace BasicAspNetCoreApplication
{
[DependsOn(typeof(AbpAspNetCoreMvcModule))]
public class AppModule : AbpModule
{
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
var app = context.GetApplicationBuilder();
var env = context.GetEnvironment();
// 配置HTTP请求管道
if (env.IsDevelopment())
{
app.UseExceptionHandler("/Error");
// 默认HSTS值为30天,生产环境可能需要调整,详见 https://aka.ms/aspnetcore-hsts
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseConfiguredEndpoints();
}
}
}
AppModule是应用程序启动模块的理想命名。
ABP包会定义模块类,模块之间可以相互依赖。上述代码中,AppModule依赖于AbpAspNetCoreMvcModule(由Volo.Abp.AspNetCore.Mvc包定义)。安装新的ABP NuGet包后通常需要添加DependsOn特性。
我们在这个模块类中配置ASP.NET Core管道,而不是在Startup类中配置。
Program 类
下一步是修改Program类以集成到ABP模块系统:
using BasicAspNetCoreApplication;
var builder = WebApplication.CreateBuilder(args);
await builder.AddApplicationAsync<AppModule>();
var app = builder.Build();
await app.InitializeApplicationAsync();
await app.RunAsync();
builder.AddApplicationAsync<AppModule>();会添加从AppModule开始的所有模块中定义的服务。
app.InitializeApplicationAsync()用于初始化和启动应用程序。
运行应用程序
至此全部完成!运行应用程序,它将按预期正常工作。
使用 Autofac 作为依赖注入框架
虽然ASP.NET Core的依赖注入(DI)系统能满足基本需求,但Autofac提供了属性注入和方法拦截等高级功能,这些是ABP执行高级应用框架功能所必需的。
将ASP.NET Core的DI系统替换为Autofac并集成到ABP非常简单。
- 安装 Volo.Abp.Autofac 包
dotnet add package Volo.Abp.Autofac
- 添加
AbpAutofacModule依赖
[DependsOn(typeof(AbpAspNetCoreMvcModule))]
[DependsOn(typeof(AbpAutofacModule))] //添加对ABP Autofac模块的依赖
public class AppModule : AbpModule
{
...
}
- 更新
Program.cs以使用 Autofac:
using BasicAspNetCoreApplication;
var builder = WebApplication.CreateBuilder(args);
builder.Host.UseAutofac(); //添加此行
await builder.AddApplicationAsync<AppModule>();
var app = builder.Build();
await app.InitializeApplicationAsync();
await app.RunAsync();
源代码
从此处获取本教程中创建的示例项目源代码。
抠丁客





