ASP .NET Core 2.0 - Analisando a inicialização da app
A ASP .NET Core 2.0 acabou de sair do forno e vamos aproveitar e mostrar as novas opções de projeto da ferramenta NET CLI e criar um projeto usando o editor VS Code e ver o que mudou na inicilização. |
Vamos então começar com a ASP .NET Core 2.0 que foi lançada como release final no dia 14 de agosto.
A primeira coisa a fazer é baixar a nova versão neste link : https://www.microsoft.com/net/download/core
Se preferir usar o Visual Studio pode baixar a versão Community Update 15.3 neste link : Visual Studio 2017 Update 15.3
Nota: o .NET Core 2.0, também pode coexistir com versões anteriores sem afetar o desenvolvimento de projetos pré-existentes.
Neste artigo eu vou criar um projeto usando a ferramenta NET CLI e o VS Code e ver o que mudou na inicilização. Então se você não tem o VS Code baixe aqui : https://code.visualstudio.com/download
Usando a NET CLI
Vamos iniciar usando a ferramente de linha de comando da Microsoft : A NET CLI.
Os comandos mais usados da CLI são:
Comando | Ação |
dotnet new | Cria um novo projeto, arquivo de configuração ou solução basedo em um template específico. (Inicia um projeto .NET Core) |
dotnet restore | Usa o NuGet para restaurar dependências, bem como ferramentas específicas do projeto que são especificadas no arquivo de projeto. |
dotnet build | Compila o projeto e suas dependências em um conjunto de binários. Os binários incluem o código do projeto em arquivos de linguagem intermediária (IL) com uma extensão .dll e arquivos de símbolo usados para depuração com uma extensão .pdb. |
dotnet run | Permite executar sua aplicação a partir do código fonte. (depende do comando dotnet build) |
dotnet clear | Limpa a saida da compilação anterior. |
Abra uma janela de prompt de comandos e digite : dotnet --version
Se você instalou o NET Core SDK com sucesso vai ver a saida da versão como : 2.0.0
Agora vamos ver as novos opções de templates de projeto digitando: dotnet new
Destaquei os novos templates razor, angular e react mas há também os projetos page, viewimports e viewstart.
Na nova versão ao criar um projeto digitando dotnet new as dependências já são restauradas não sendo mais necessários digitar o dotnet restore.
Veja esse recurso em ação após criar um projeto angular digitando: dotnet new angular
Para abir o projeto criado no VS Code digite : code .
A seguir vemos a estrutura do projeto:
Note o novo código de inicialização do arquivo Program.cs
Na
ASP.NET Core 2.0 , as responsabilidades do IWebHost mudaram um
pouco. Além de ter as mesmas responsabilidades que antes, o IWebHost
ganhou mais duas :
- Definir a
configuração
- Definir o logging
Além disso, a ASP.NET Core 2.0 apresenta um método auxiliar,
CreateDefaultBuilder, que encapsula a maior parte do código comum
encontrado no Program.cs, além de cuidar da configuração e do
registro!
Como você pode ver pelo código , não há nenhuma menção do Kestrel,
integração do IIS, configuração etc. - tudo isso é tratado pelo método
CreateDefaultBuilder. Ao mover a configuração e o código de
registro para este método simplificou o arquivo de Inicialização.
Dando uma olhada no código fonte do método CreateDefaultBuilder
vemos o seguinte:
public static IWebHostBuilder CreateDefaultBuilder(string[] args)
{
var builder = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.ConfigureAppConfiguration((hostingContext, config) => { /* setup config */ })
.ConfigureLogging((hostingContext, logging) => { /* setup logging */ })
.UseIISIntegration()
.UseDefaultServiceProvider((context, options) => { /* setup the DI container to use */ })
.ConfigureServices(services =>
{
services.AddTransient<IConfigureOptions<KestrelServerOptions>, KestrelServerOptionsSetup>();
});
return builder;
}
|
A
primeira vista o código é bem parecido com a da versão 1.1 mas existem
alguns novos métodos e você pode ver que este método faz em grande parte
o mesmo trabalho que o Program fez no ASP.NET Core 1.0 - configura o
Kestrel, define o
ContentRoot e configura a integração do IIS, como antes. Além
disso, faz várias outras coisas como:
- ConfigureAppConfiguration - contém o código de configuração que
usa para atuar na configuração de Inicialização;
- ConfigureLogging - configura o log que usa para atuar no
Startup.Configure;
- UseDefaultServiceProvider - Configura o contêiner DI
incorporado e permite que você personalize seu comportamento;
- ConfigureServices - Adiciona serviços adicionais necessários
aos componentes adicionados ao IWebHost. Configura as opções do servidor
Kestrel, que permite que você defina facilmente sua configuração de host
web como parte de sua configuração normal;
Assim o método CreateDefaultBuilder procura simplificar o código da inicialização inicial da sua aplicação.
Porque todos
quantos fostes batizados em Cristo já vos revestistes de Cristo.
Nisto não há judeu nem grego; não há servo nem livre; não há macho nem
fêmea; porque todos vós sois um em Cristo Jesus.
Gálatas 3:27-28
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/VS 2015 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-net-core-2-0/