Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Dicas para migrar sua aplicação
ASP.NET para ASP.NET Core
#VSSUMMIT
DEVO MIGRAR PARA ASP.NET CORE
SE…
Desempenho é algo obrigatório (Kestrel delivers 7M req/sec)
Suporte multiplataforma é ne...
NÃO MIGRAR PARA ASP.NET CORE
SE…
Você acha legal, novo ou só porque seus amigos estão usando
Sua aplicação precisa trabalh...
Visão da plataforma .NET atualmente
LIBRARIES
INFRASTRUCTURE
.NET STANDARD
DESKTOP WEB CLOUD MOBILE GAMING IoT AI
NEWTONSOFT.JSONPacote de
Exemplo
DOTNETOPENAUTHPacote de
Exemplo
ARQUIVO CSPROJ NO ASP.NET
4.6.1
ARQUIVO CSPROJ NO ASP.NET
CORE 2.1
PREOCUPAÇÕES COM O
STARTUP.CS
 Certifique-se de que o middleware para solicitações MVC/WebAPI esteja configurado corretam...
CONFIGURAÇÃO CORS
services.AddCors(options =>
{
options.AddPolicy("AllowAnyOrigin",
builder => builder
.AllowAnyMethod()
....
MANIPULAÇÃO DE EXCEPTIONS
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/H...
FILTERS
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(options =>
{
options.Filters.Add(new ...
FORMATTERS
public class VcardOutputFormatter : TextOutputFormatter
public class VcardInputFormatter : TextInputFormatter
s...
CRIE UM MIDDLEWARE
 Software montado em um pipeline
 Lida com solicitações e respostas,
BeginRequest e EndRequest
 Sua ...
MANIPULE O MIDDLEWARE
O manipulador processa a solicitação e entrega
RequestDelegate
Request
USANDO O NOVO MIDDLEWARE
app.UseMiddleware<MyMiddleware>();
app.MapWhen(
context =>
context.Request.Path.ToString().EndsWi...
INJEÇÃO DE DEPENDÊNCIA
INTEGRADA
 Padrão DI nativo
 Controle simples e eficiente em três escopos:
 Transient: todos dif...
COMPATIBILIDADE DA WEBAPI
 Incluir o Microsoft.AspNetCore.Mvc.WebApiCompatShim para facilitar a
compatibilidade com o Web...
ESTRATÉGIAS DE MIGRAÇÃO DAS
CONFIGURAÇÕES
Copie o conteúdo para appsettings.json
Migrar conteúdo para o Azure Key Vault
 ...
CONTEÚDO ESTÁTICO NO
WWWROOT
PORTABILIDADE DO ENTITY
FRAMEWORK
Entity Framework 6.x é incompatível com o .NET Core
 Solução: Rodar aplicações ASP.NET ...
SUPORTE DI PARA O DBCONTEXT
Configure seu DbContext no ConfigureServices
Adicione o novo construtor DbContextOptions
Aceit...
Mude o System.Web.HttpContext para o
novo Microsoft.AspNetCore.Http.HttpContext
http://bit.ly/migratehttphandlers
AUTENTICAÇÃO E AUTORIZAÇÃO
Comece usando o ASP.NET Core Identity
 Não use sua própria solução de segurança
 Use o scaffo...
GERENCIANDO JAVASCRIPT/CSS COM
ASP.NET CORE
Adicione package.json/libman.json como referências aos seus pacotes
 libman.j...
MIGRANDO VIEWS
Razor é compatível com versões anteriores
Copie a pasta Views para dentro do novo projeto
Converta Views/we...
RECURSOS PARA IR ALÉM
Documentação official de migração
https://aka.ms/aspnetmigrate21
Visual Studio Channel
 https://twi...
#VSSUMMIT
MUITOOBRIGADO!
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Upcoming SlideShare
Loading in …5
×

Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x

60 views

Published on

Reescrever ou migrar? É uma decisão difícil com qualquer nova tecnologia e você deseja tomar a decisão certa para qualquer aplicativo que será mantido nos próximos anos. Nesta sessão, você vai obter dicas preciosas para pegar sua aplicação ASP.NET MVC 5 e convertê-la para ASP.NET Core 2.x e aproveitar ao máximo as bibliotecas do .NET Standard.

Published in: Technology
  • If you want to download or read this book, copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x

  1. 1. Dicas para migrar sua aplicação ASP.NET para ASP.NET Core #VSSUMMIT
  2. 2. DEVO MIGRAR PARA ASP.NET CORE SE… Desempenho é algo obrigatório (Kestrel delivers 7M req/sec) Suporte multiplataforma é necessário Ambiente Enterprise (muitas aplicações em mesmo server, diferentes frameworks, etc) Se o update de 6 meses para Open Source é algo aceitável Sua aplicação já é ASP.NET MVC, WebAPI, ou SignalR
  3. 3. NÃO MIGRAR PARA ASP.NET CORE SE… Você acha legal, novo ou só porque seus amigos estão usando Sua aplicação precisa trabalhar com containers Você precisa de Injeção de Dependência em todos os lugares Você gosta de web.config A sua aplicação funciona bem e entrega o que precisa para o seu negócio
  4. 4. Visão da plataforma .NET atualmente LIBRARIES INFRASTRUCTURE .NET STANDARD DESKTOP WEB CLOUD MOBILE GAMING IoT AI
  5. 5. NEWTONSOFT.JSONPacote de Exemplo
  6. 6. DOTNETOPENAUTHPacote de Exemplo
  7. 7. ARQUIVO CSPROJ NO ASP.NET 4.6.1
  8. 8. ARQUIVO CSPROJ NO ASP.NET CORE 2.1
  9. 9. PREOCUPAÇÕES COM O STARTUP.CS  Certifique-se de que o middleware para solicitações MVC/WebAPI esteja configurado corretamente  Revise e adicione configuração para: o CORS – Cross-Origin Resource Sharing o Global Exception Handling o MVC Routing o MVC / WebAPI Filters o WebAPI Formatters o Model Binders o Areas o Authentication
  10. 10. CONFIGURAÇÃO CORS services.AddCors(options => { options.AddPolicy("AllowAnyOrigin", builder => builder .AllowAnyMethod() .AllowAnyHeader()); });
  11. 11. MANIPULAÇÃO DE EXCEPTIONS if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); } public IActionResult Error() { return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier }); }
  12. 12. FILTERS public void ConfigureServices(IServiceCollection services) { services.AddMvc(options => { options.Filters.Add(new AddHeaderAttribute("GlobalAddHeader", "Resultado do filter adicionado para o GlobalHeader")); // uma instância options.Filters.Add(typeof(SampleActionFilter)); // por type options.Filters.Add(new SampleGlobalActionFilter()); // uma instância }); services.AddScoped<AddHeaderFilterWithDi>(); }
  13. 13. FORMATTERS public class VcardOutputFormatter : TextOutputFormatter public class VcardInputFormatter : TextInputFormatter services.AddMvc(options => { options.InputFormatters.Insert(0, new VcardInputFormatter()); options.OutputFormatters.Insert(0, new VcardOutputFormatter()); });
  14. 14. CRIE UM MIDDLEWARE  Software montado em um pipeline  Lida com solicitações e respostas, BeginRequest e EndRequest  Sua classe Middleware deve manipular um Delegate
  15. 15. MANIPULE O MIDDLEWARE O manipulador processa a solicitação e entrega RequestDelegate Request
  16. 16. USANDO O NOVO MIDDLEWARE app.UseMiddleware<MyMiddleware>(); app.MapWhen( context => context.Request.Path.ToString().EndsWith(".report"), appBranch => { appBranch.UseMiddleware<MyHandlerMiddleware Handler>(); });
  17. 17. INJEÇÃO DE DEPENDÊNCIA INTEGRADA  Padrão DI nativo  Controle simples e eficiente em três escopos:  Transient: todos diferentes. Nova instância para todos controladores e serviços  Scoped: mesma instância para a mesma request, porém diferente em requests diferentes  Singleton: mesma instância. Para todos os objetos e requests  Startup.ConfigureServices ()
  18. 18. COMPATIBILIDADE DA WEBAPI  Incluir o Microsoft.AspNetCore.Mvc.WebApiCompatShim para facilitar a compatibilidade com o Web API 2.  O máximo que puder, sempre migre pra usar o [ApiController]  Se você estiver usando HttpResponseMessage em seus Web Api Controllers, você precisará fazer uma pequena alteração de código na sua classe de inicialização para chamar AddWebApiConventions(). services.AddMvc().AddWebApiConventions()  Dependendo de como você deseja fazer o roteamento com o Web API, talvez seja necessário registrar as rotas para ele na sua classe de inicialização. routes.MapWebApiRoute(name: "DefaultApi", template: "api/{controller}/{id?}");
  19. 19. ESTRATÉGIAS DE MIGRAÇÃO DAS CONFIGURAÇÕES Copie o conteúdo para appsettings.json Migrar conteúdo para o Azure Key Vault  Refatore para usar o Configuration[“setting”] Para uma transição suave use o pacote System.Configuration.ConfigurationManager  Não há necessidade de refatoração das configs e você traz todo o web.config  Não é compatível com Linux ou Mac  Deve estar sendo executado no IIS
  20. 20. CONTEÚDO ESTÁTICO NO WWWROOT
  21. 21. PORTABILIDADE DO ENTITY FRAMEWORK Entity Framework 6.x é incompatível com o .NET Core  Solução: Rodar aplicações ASP.NET Core no .NET Framework  Restrição: roda apenas no Windows e IIS Scaffold EF Core data-context from existing database dotnet ef dbcontext scaffold “ConnectionString“ Microsoft.EntityFrameworkCore.SqlServer -o Model
  22. 22. SUPORTE DI PARA O DBCONTEXT Configure seu DbContext no ConfigureServices Adicione o novo construtor DbContextOptions Aceite o contexto como parâmetro de entrada em Controllers, Views, etc
  23. 23. Mude o System.Web.HttpContext para o novo Microsoft.AspNetCore.Http.HttpContext http://bit.ly/migratehttphandlers
  24. 24. AUTENTICAÇÃO E AUTORIZAÇÃO Comece usando o ASP.NET Core Identity  Não use sua própria solução de segurança  Use o scaffold do Identity 2.1 e personalize para corresponder aos seus objetos anteriores.
  25. 25. GERENCIANDO JAVASCRIPT/CSS COM ASP.NET CORE Adicione package.json/libman.json como referências aos seus pacotes  libman.json não depende do NodeJS  libman.json localiza arquivos conforme as instruções, o package.json requer outra etapa para implementar os recursos Use a extensão BunderMinifier ao invés do System.Web.Optimization  Procure o “MadsKristensen.BundlerMinifier” no Visual Studio Marketplace  Instale o pacote NuGet para o bundle on build – isso permitirá que compilações de linha de comando sejam agrupadas  Preserve o bundleconfig.json
  26. 26. MIGRANDO VIEWS Razor é compatível com versões anteriores Copie a pasta Views para dentro do novo projeto Converta Views/web.config para Views/_ViewImports.cshtml  Converta namespaces.add para @using  Migre todas as configurações para a configurações centrais da aplicação Scripts.Render e Styles.Render não existem  Troque as referencias de saída para o libman ou BundlerMinifier
  27. 27. RECURSOS PARA IR ALÉM Documentação official de migração https://aka.ms/aspnetmigrate21 Visual Studio Channel  https://twitch.tv/visualstudio  https://mixer.com/visualstudio ASP.NET Blog  https://blogs.msdn.microsoft.com/webdev
  28. 28. #VSSUMMIT MUITOOBRIGADO!

×