Versão
Idioma

Introdução ao ABP com aplicativo de console

Este tutorial explica como iniciar o ABP do zero com dependências mínimas. Você geralmente deseja começar com um modelo de inicialização .

Criar um novo projeto

Crie um novo aplicativo regular .Net Core Console do Visual Studio:

img

Instale o pacote Volo.Abp

Volo.Abp.Core é o pacote principal de nuget para criar aplicativos baseados em ABP. Então, instale-o no seu projeto:

Install-Package Volo.Abp.Core

Criar o primeiro módulo ABP

O ABP é um framework modular e requer uma classe de módulo de inicialização (raiz) derivada de AbpModule:

using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Modularity;

namespace AbpConsoleDemo
{
    public class AppModule : AbpModule
    {
        
    }
}

AppModule é um bom nome para o módulo de inicialização de um aplicativo.

Inicializar o aplicativo

A próxima etapa é inicializar o aplicativo usando o módulo de inicialização criado acima:

using System;
using Volo.Abp;

namespace AbpConsoleDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var application = AbpApplicationFactory.Create<AppModule>())
            {
                application.Initialize();

                Console.WriteLine("Press ENTER to stop application...");
                Console.ReadLine();
            }
        }
    }
}

AbpApplicationFactoryé usado para criar o aplicativo e carregar todos os módulos que tomam AppModulecomo módulo de inicialização. Initialize()O método inicia o aplicativo.

Olá Mundo!

O aplicativo acima não faz nada. Vamos criar um serviço que faça algo:

using System;
using Volo.Abp.DependencyInjection;

namespace AbpConsoleDemo
{
    public class HelloWorldService : ITransientDependency
    {
        public void SayHello()
        {
            Console.WriteLine("Hello World!");
        }
    }
}

ITransientDependencyé uma interface especial do ABP que registra automaticamente o serviço como transitório (consulte o documento de injeção de dependência ).

Agora, podemos resolver o problema HelloWorldServicee dizer olá. Altere o Program.cs como mostrado abaixo:

using System;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp;

namespace AbpConsoleDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var application = AbpApplicationFactory.Create<AppModule>())
            {
                application.Initialize();

                //Resolve a service and use it
                var helloWorldService = 
                    application.ServiceProvider.GetService<HelloWorldService>();
                helloWorldService.SayHello();

                Console.WriteLine("Press ENTER to stop application...");
                Console.ReadLine();
            }
        }
    }
}

Embora seja suficiente para este exemplo de código simples, é sempre recomendável criar escopos no caso de resolver diretamente dependências de IServiceProvider(consulte a documentação de Injeção de Dependências).

Usando Autofac como framework de injeção de dependência

Embora o sistema de Injeção de Dependência (DI) do AspNet Core seja adequado para requisitos básicos, o Autofac fornece recursos avançados, como Injeção de Propriedade e Interceptação de Método, exigidos pela ABP para executar recursos avançados do framework de aplicativos.

Substituir o sistema DI do AspNet Core pelo Autofac e integrar ao ABP é bastante fácil.

  1. Instale o pacote Volo.Abp.Autofac
Install-Package Volo.Abp.Autofac
  1. Adicionar AbpAutofacModuledependência
[DependsOn(typeof(AbpAutofacModule))] //Add dependency to the AbpAutofacModule
public class AppModule : AbpModule
{
    
}
  1. Mude o Program.csarquivo como mostrado abaixo:
using System;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp;

namespace AbpConsoleDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var application = AbpApplicationFactory.Create<AppModule>(options =>
            {
                options.UseAutofac(); //Autofac integration
            }))
            {
                application.Initialize();

                //Resolve a service and use it
                var helloWorldService = 
                    application.ServiceProvider.GetService<HelloWorldService>();
                helloWorldService.SayHello();

                Console.WriteLine("Press ENTER to stop application...");
                Console.ReadLine();
            }
        }
    }
}

Apenas chamado options.UseAutofac()método nas AbpApplicationFactory.Createopções.

Código fonte

Obter código-fonte do projeto de exemplo criada neste tutorial a partir de aqui .

Esta página foi útil?
Por favor, faça uma seleção.
Obrigado pelo seu valioso feedback!

Observe que, embora não possamos responder aos comentários, nossa equipe usará seus comentários para melhorar a experiência.

Neste documento
Mastering ABP Framework Book
Dominando a estrutura ABP

Este livro o ajudará a obter uma compreensão completa da estrutura e das técnicas modernas de desenvolvimento de aplicativos da web.