Neste artigo estou transcrevendo um texto que apresenta as novidades da ASP .NET Core 2.0 que foi disponbilizada recentemente em Preview 1. |
Ja está disponível a ASP.NET Core 2.0 Preview 1, e , você já pode começar a criar aplicativos com ASP.NET Core 2.0. Hoje (maio/2017), ela ainda esta na versão Preview 1, e a versão final, deverá ser lançada no terceiro trimestre de 2017.(Q3-2017).
Para construir aplicações usando a ASP.NET Core 2.0, você precisa instalar o Visual Studio 2017 Preview 3. Esteja preparado para algumas mudanças de código e algumas novas peças. Neste artigo vou compilar um resumo das principais novidades da ASP.NET Core 2.0 em comparação com o ASP.NET Core 1.1.
ASP .NET Core 2.0 Preview 1 |
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<UserSecretsId>aspnet-ASPNETStandard2App-78010062-13D5-415D-B52E-86D936DA3176</UserSecretsId>
</PropertyGroup>
<ItemGroup>
<Folder Include="wwwroot\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0-preview1-final" />
</ItemGroup>
</Project>Nota: Quando a ASP.NET Core foi introduzida, houve muito destaque sobre o fato dela ser modular e trazer apenas o que era necessário. Muitos desenvolvedores gostaram disso, pois reduz o tamanho da aplicação. Então com isso voltamos ao que era antes ?
A equipe do projeto ASP .NET Core diz que não, pois você vai poder continuar seguindo a maneira tradicional de incluir os pacotes necessários. Então, por que esse grande pacote foi introduzido ? Bem, eles dizem que manter, atualizar e remover pacotes indesejados requer um esforço extra e que você tem que lembrar o nome do pacote.
Realmente isso é uma atitude que incomoda pois agora você vai ter aquele pacotão com tudo que você precisa e também não precisa na sua aplicação pois o .NET Core SDK já possui todos os pacotes incluídos dentro do Microsoft.AspNetCore.All. A vantagem é que esta tudo lá e você não vai precisar mais baixar os pacotes. (será que isso é mesmo uma vantagem ??? )
E sobre a implantação? Bem, se houver recursos que você não precisa em sua aplicação, eles dizem que os novos recursos de corte de pacotes excluirão os binários em sua saída de aplicativo publicada por padrão.
ASP .NET Core 1.1 | ASP .NET Core 2.1 Preview 1 |
public class Program
{
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
}
|
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
}
|
BuildWebHost é uma expression bodied function
(expressão de função de corpo ) introduzida no C# 6. Este método
chama um método estático CreateDefaultBuilder que adiciona o Kestrel,
a configuração do IIS, as fontes de configuração padrão, os provedores de
registro e a raiz de conteúdo. Assim, em vez de ter fazer tudo isso, o
CreateDefaultBuilder o faz o trabalho por você.
ASP .NET Core 1.1 | ASP .NET Core 2.1 Preview 1 |
public class Startup
{
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
public IConfigurationRoot Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
app.UseMvc();
}
}
|
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseMvc();
}
}
}
|
Como você
pode ver, o construtor já não possui mais o IHostingEnvironment, em vez
disso, toma a dependência IConfiguration
injetada e define a propriedade Configuration para acesso posterior, se
necessário. Outra alteração está no método Configure, pois o registro não
faz mais parte desse método.
@page
@{
var mensagem = "Ola, Mundo!";
}
<html>
<body>
<p>@mensagem</p>
</body>
</html>
|
Elas
devem usar a diretiva @page como a primeira diretriz. Você pode escrever
uma página Razor : com modelo inline (usando a diretiva @functions), com
modelos de página separados (denominados Pages Models) e sem modelos. O
roteamento também funciona bem nestas páginas. Visite o site da
documentação
oficial para mais detalhes.
ASP .NET Core 1.1 | ASP .NET Core 2.1 Preview 1 |
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
AuthenticationScheme = "MyCookieMiddlewareInstance",
LoginPath = new PathString("/Account/Unauthorized/"),
AccessDeniedPath = new PathString("/Account/Forbidden/"),
AutomaticAuthenticate = true,
AutomaticChallenge = true
});
app.UseMvc();
}
|
public void ConfigureServices(IServiceCollection services)
{
services.AddCookieAuthentication(o => o.LoginPath = "/api/login");
}
public void Configure(IApplicationBuilder app)
{
app.UseAuthentication();
app.UseMvc();
}
|
Como você pode ver, o método Configure() agora apenas adiciona o middleware de autenticação ao pipeline sem especificar nenhuma opção configurável para o mecanismo de autenticação. A tabela a seguir mostra as mudanças de nome de alguns dos middleware de autenticação.
ASP.NET Core 1.1 | ASP.NET Core 2.0 |
---|---|
app.UseOpenIdConnectAuthentication | services.AddOpenIdConnectAuthentication |
app.UseJwtBearerAuthentication | services.AddJwtBearerAuthentication |
app.UseFacebookAuthentication | services.AddFacebookAuthentication |
Para mais
detalhes veja este link :
https://github.com/aspnet/Announcements/issues/232
Bem, essas foram as mudanças mais importantes, para mais detalhes sobre outras alterações visite este endereço : https://github.com/aspnet/Announcements/milestone/12
Resta aguarda e ver o que vai vingar e o que vai azedar...
fonte : http://www.talkingdotnet.com/whats-new-in-asp-net-core-2-0/
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 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências: