在AspNet Core MVC Web Application中使用ABP

    通常情况下你需要下载一个 启动模板

    1. 使用Visual Studio 2019 (16.4.0+)创建一个新的AspNet Core Web Application:

    1. 配置新的项目:

    空Web应用程序 - 图2

    1. 完成创建:

    安装 Volo.Abp.AspNetCore.Mvc 包

    ABP是一个模块化框架,它需要一个启动 (根) 模块继承自:

    1. using Microsoft.AspNetCore.Builder;
    2. using Microsoft.Extensions.Hosting;
    3. using Volo.Abp;
    4. using Volo.Abp.AspNetCore.Mvc;
    5. using Volo.Abp.Modularity;
    6. namespace BasicAspNetCoreApplication
    7. {
    8. [DependsOn(typeof(AbpAspNetCoreMvcModule))]
    9. public class AppModule : AbpModule
    10. {
    11. ApplicationInitializationContext context)
    12. {
    13. var app = context.GetApplicationBuilder();
    14. var env = context.GetEnvironment();
    15. if (env.IsDevelopment())
    16. {
    17. app.UseDeveloperExceptionPage();
    18. else
    19. {
    20. app.UseExceptionHandler("/Error");
    21. }
    22. app.UseStaticFiles();
    23. app.UseRouting();
    24. app.UseConfiguredEndpoints();
    25. }
    26. }
    27. }

    AppModule 是应用程序启动模块的好名称.

    ABP的包定义了这个模块类,模块可以依赖其它模块.在上面的代码中 AppModule 依赖于 AbpAspNetCoreMvcModule (模块存在于包中). 安装新的ABP的包后添加DependsOn是很常见的做法.

    我们在此模块类中配置ASP.NET Core管道,而不是Startup类中.

    services.AddApplication<AppModule>()添加了所有AppModule模块中定义的全部服务.

    Configure方法中的app.InitializeApplication()完成初始化并启动应用程序.

    运行应用程序!

    启动该应用,它将按预期运行.

    虽然AspNet Core的依赖注入(DI)系统适用于基本要求,但提供了属性注入和方法拦截等高级功能,这些功能是ABP执行高级应用程序框架功能所必需的.

    1. 安装 Volo.Abp.Autofac
      1. 添加 依赖
      1. 修改Program.cs以使用Autofac:
      1. using Microsoft.AspNetCore.Hosting;
      2. using Microsoft.Extensions.Hosting;
      3. namespace BasicAspNetCoreApplication
      4. {
      5. public class Program
      6. {
      7. public static void Main(string[] args)
      8. {
      9. CreateHostBuilder(args).Build().Run();
      10. }
      11. public static IHostBuilder CreateHostBuilder(string[] args) =>
      12. Host.CreateDefaultBuilder(args)
      13. .ConfigureWebHostDefaults(webBuilder =>
      14. {
      15. webBuilder.UseStartup<Startup>();
      16. })
      17. .UseAutofac(); // 添加这一行
      18. }

      源码

      此处获取本教程中创建的示例项目的源代码.