Serie INTRODUCCIÓN - el uso de subproductos animales en la aplicación Web ASPNet Core MVC en

Este tutorial muestra cómo empezar a trabajar con dependencias mínimas empezar a utilizar el desarrollo de PAA.

A menudo es necesario descargar una  plantilla de inicio

Crear un nuevo proyecto

  1. Utilizando Visual Studio para crear una aplicación Web Core ASPNet vacío:
  2. Seleccione una plantilla en blanco

Se puede elegir otra plantilla, pero quiero demostrar que a partir de un proyecto simple.

paquete de instalación Volo.Abp.AspNetCore.Mvc

Volo.Abp.AspNetCore.Mvc ABP se integra paquete ASPNet Core MVC, instalarlo en su proyecto:

Install-Package Volo.Abp.AspNetCore.Mvc

Creación de módulo ABP

ABP es un marco modular, se necesita un módulo (raíz) de inicio heredado deAbpModule:

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp;
using Volo.Abp.AspNetCore.Modularity;
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();

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseMvcWithDefaultRoute();
        }
    }
}

AppModule La aplicación comenzó buen nombre del módulo (módulo también sugieren que empezar a usar el nombre).

De paquete del módulo ABP define las clases, los módulos pueden depender de otros módulos. En el código anterior  AppModule se basa en  AbpAspNetCoreMvcModule después de añadir (módulo Volo.Abp.AspNetCore.Mvc presente en el paquete). ABP instalar nuevo paquete DependsOnes práctica común .

Configuramos canalización de ASP.NET Core en este módulo de clase en lugar de inicio de clases.

clase de arranque

A continuación, ABP modificado integrado clase de arranque sistema modular:

using System;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;

namespace BasicAspNetCoreApplication
{
    public class Startup
    {
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            services.AddApplication<AppModule>();

            return services.BuildServiceProviderFromFactory();
        }

        public void Configure(IApplicationBuilder app)
        {
            app.InitializeApplication();
        }
    }
}

Modificación  ConfigureServices valor de retorno del método  IServiceProvider (por defecto void). Esto nos permite modificar el marco de inyección de dependencias alternativa ASPNet Core (véase más adelante Autofac parte integral).  services.AddApplication<AppModule>()Añadir todos los servicios definidos en todos los módulos.

app.InitializeApplication() Llamar  Configure método para inicializar e iniciar la aplicación

Hola Mundo!

La aplicación anterior hay ninguna característica que nos permite crear un controlador MVC para lograr algunas de las características:

using Microsoft.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.Mvc;

namespace BasicAspNetCoreApplication.Controllers
{
    public class HomeController : AbpController
    {
        public IActionResult Index()
        {
            return Content("Hello World!");
        }
    }
}

Si ejecuta la aplicación verá "Hello World!" En la página.

Derivado  HomeController de  AbpController lugar de estándar  Controller de clase. Esto no es necesario, pero  AbpController la clase de base tiene propiedades útiles y métodos para que su desarrollo sea más fácil.

A partir de la AbpControllerderivada HomeController en lugar de heredada de Controllerla clase. Aunque no es obligatorio, pero la AbpControllerclase tiene muchas propiedades útiles y hay maneras de hacer que su desarrollo sea más fácil.

Uso marco de inyección de dependencias Autofac

Aunque ASPNet Core inyección de dependencias (DI) para unos requisitos básicos del sistema, pero Autofac proporciona propiedades y métodos de implantación de interceptación funciones avanzadas, que se ejecutan funciones avanzadas marco de aplicación ABP necesario.

ASPNet Core sustituido con sistema DI Autofac e integrado en el ABP es muy simple.

  1. paquete de instalación Volo.Abp.Autofac
    Install-Package Volo.Abp.Autofac
  2. Añadir  AbpAutofacModule dependientes
    [DependsOn(typeof(AbpAspNetCoreMvcModule))]
    [DependsOn(typeof(AbpAutofacModule))] // 在模块上添加依赖AbpAutofacModule
    public class AppModule : AbpModule
    {
        ...
    }
    

     

  3. Modificado Startupen la categoría services.AddApplication<AppModule>();de la siguiente manera:
    services.AddApplication<AppModule>(options =>
    {
        options.UseAutofac(); // 集成 Autofac
    });
    

     

  4. Actualizando  Program.csel código ya no se utiliza WebHost.CreateDefaultBuilder()el método (ya que utiliza el contenedor DI predeterminado):
    public class Program
    {
       public static void Main(string[] args)
       {
           /*
               https://github.com/aspnet/AspNetCore/issues/4206#issuecomment-445612167
               CurrentDirectoryHelpers 文件位于: \framework\src\Volo.Abp.AspNetCore.Mvc\Microsoft\AspNetCore\InProcess\CurrentDirectoryHelpers.cs
               当升级到ASP.NET Core 3.0的时候将会删除这个类.
           */
           CurrentDirectoryHelpers.SetCurrentDirectory();
    
           BuildWebHostInternal(args).Run();
       }
        public static IWebHost BuildWebHostInternal(string[] args) =>
           new WebHostBuilder()
               .UseKestrel()
               .UseContentRoot(Directory.GetCurrentDirectory())
               .UseIIS()
               .UseIISIntegration()
               .UseStartup<Startup>()
               .Build();
    }
    
     

     

Publicado 87 artículos originales · ganado elogios 69 · Vistas de 600.000 +

Supongo que te gusta

Origin blog.csdn.net/S2T11Enterprise/article/details/103983879
Recomendado
Clasificación