ASP.NET Core - Inicialização da aplicação (Startup)
Neste artigo veremos o processo de inicialização das aplicações ASP .NET Core analisando os arquivos Startup.cs e Program.cs. |
Todas as aplicações ASP .NET Core são aplicações console, e, os outros tipos de aplicações como MVC, SPA, etc, são construidas sobre a aplicação Console.
Examinando a classe Program
A aplicação console inicia com a execução do arquivo Program.cs, que precisa conter o método estático Main que é chamado sempre que a aplicação for iniciada.
Vamos criar uma aplicação ASP .NET Core Web Application usando o template Empty e a seguir abrir o projeto no VS 2017 Community 2017 exibindo o contéudo do arquivo Program.cs.
Observe o código do método Main() : Este é o ponto de entrada da nossa aplicação.
O método Main cria um Host, faz o Building e o executa, e, o Host então passa a atender requisições HTTP.
O método estático CreateWebHostBuilder configura e cria o Host, retornando uma referência ao Host.
A sintaxe usada neste método é chamada de 'expression bodied function member'.
As tarefas realizadas por este método são:
Você pode ver detalhes do código espiando o código fonte da ASP .NET Core neste link: https://github.com/aspnet/AspNetCore
Examinando a classe Startup
Analisando o código do arquivo Program notamos que no método estático CreateaWebHostBuilder ele chama o método Startup.
O método UseStartup informa ao host onde procurar pela classe Startup. O host, então, espera que a classe de inicialização defina o método de serviços Configure e ConfigureServices.
A classe
Startup é uma classe simples que não herda de
ninguem e nem implementa nenhuma interface.
Ela tem duas funções principais.
Para realizar essas tarefas ela usa os métodos ConfigureServices() e Configure().
O método
ConfigureServices
O método ConfigureServices nos permite adicionar ou
registrar serviços no Aplicativo. As outras partes do nosso aplicativo podem
solicitar esses serviços via injeção de dependência.
A injeção de dependência é um dos novos recursos do ASP.NET Core. O ASP.NET Core
usa a injeção de dependência extensivamente.
public void
ConfigureServices (serviços IServiceCollection) { } |
O método ConfigureServices espera a instância de serviços (do tipo IServiceCollection) que é injetada no ConfigureServices via Injeção de Dependência.
O método Configure
O método
Configure nos permite configurar o pipeline de
requisição HTTP que especifica como o aplicativo deve responder a solicitações
HTTP.
Os componentes que compõem o pipeline de solicitação são chamados de middleware.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.Run(async (context) =>
{
await context.Response.WriteAsync("Hello World!");
});
}
|
O método configure solicita uma instância de IApplicationBuilder e HostingEnvironment. Estes são injetados no Configure pelo Injector de Dependência nativo.
Nós, então,
adicionamos nossos componentes de middleware à instância da
IApplicationBuilder(app).
A seguir verificamos se estamos em ambiente de desenvolvimento, se sim,
registramos o Middleware DeveloperExceptionPage
usando o método de extensão UseDeveloperExceptionPage.
Em seguida, usamos o método Run do aplicativo para registrar o segundo middleware. Este middleware escreve 'Hello World' para o objeto Response.
Assim a ASP .NET Core é totalmente modular e inicia o pipeline vazio, que você vai preenchendo conforme a necessidade de serviços da sua aplicação. Isso faz com que as aplicações ASP .NET Core tenham um ótimo desempenho.
Na próxima parte do artigo vamos tratar do servidor Kestrel.
"Quão
amáveis são os teus tabernáculos, SENHOR dos Exércitos!
A minha alma está desejosa, e desfalece pelos átrios do Senhor; o meu coração e
a minha carne clamam pelo Deus vivo."
Salmos 84:1-2
Veja os
Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique
e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
ASP .NET Core 2 - MiniCurso Básico - Macoratti
ASP .NET Core MVC - CRUD básico com ADO .NET - Macoratti
ASP .NET Core - Implementando a segurança com ... - Macoratti
ASP .NET Core - Iniciando com ASP .NET Core MVC e ... - Macoratti
ASP .NET Core MVC - Criando um site com MySql e EF ... - Macoratti
ASP .NET Core - Gerenciador de Despesas Pessoais com ... - Macoratti
Minicurso ASP .NET Core 2.0 - Apresentando MVC - YouTube
ASP .NET Core - Configurando o ambiente de ... - Macoratti
ASP .NET Core e EF Core - Configurando o ambiente - Macoratti
ASP .NET Core - Como configurar o AutoMapper - Macoratti