O documento discute as principais mudanças e melhorias trazidas pelo ASP.NET Core em relação ao ASP.NET tradicional, como ser totalmente reescrito para ser modular e cross-platform, utilizar o padrão OWIN para desacoplamento de componentes e suporte a diferentes servidores web, e o Entity Framework Core também ter sido reescrito para ser mais leve e ter suporte a bancos de dados relacionais e não relacionais.
5. ASP.NET
ciandt.com
Asp.Net é a plataforma para
desenvolvimento Web da
Microsoft, publicado em janeiro de
2002, hoje tem mais de 14 anos de
idade.
6.
7. ● Windows Forms > Web Forms
● Programadores VB6
● Interface Gráfica para montar telas usando “drag’n’drop”
● Click Duplo “amarrando” os eventos aos códigos
O que é o Web Forms
15. Manter compatibilidade
com tecnologias do
início do século.
Não foi construído com o
pensamento
completamente
modular, uma simples
aplicação carregava
diversas funcionalidades
que poderiam nunca ser
utilizadas.
Necessita de utilizar a
System.Web em
diversos módulos, que é
uma biblioteca pesada.
Problemas...
17. ciandt.com
Quando a Microsoft anunciou as
versões “Release Candidate” dos novos
frameworks de desenvolvimento ele
rebatizou os mesmos da seguinte
forma: ASP.NET 5 e o .NET Core 5
foram rebatizados como ASP.NET Core
1.0 e .NET Core 1.0.
Já o Entity Framework 7 passou a ser
chamado Entity Framework Core 1.0.
Confusão
18. ASP.NET Core - Visão Geral
Um novo framework, desenvolvido do zero, evoluindo
diversos conceitos e tecnologias presentes no ASP.NET
mas visando conceitos atuais como cross-plaform e
Cloud computing.
19. ASP.NET Core - Visão Geral
É um framework pensado do zero para ser modular,
além de ser completamente open-source.
20. ASP.NET Core - Visão Geral
Pode ser desenvolvido tanto em cima do .NET Core para
cross-platform em cima do .NET Framework para
aplicações web em Windows.
21. ASP.NET Core é Modular
ciandt.com
Traz apenas o “Core” da aplicação,
permitindo a criação de aplicações leves e
sem bloatware.
Opt-in para os recursos (módulos) que
deseja adicionar à sua aplicação desde os
mais simples aos mais complexos.
Otimização de recursos, tanto em hardware
como em complexidade de código.
25. Conceitos - CLI
ciandt.com
Agregador de ferramentas: dotnet
Sintaxe: dotnet {comando} --arg
Convenção: dotnet-{comando} --arg
Algumas ferramentas disponíveis
dotnet new --lang --type
Cria arquivos de um novo tipo de projeto
dotnet restore [argumentos]
Restaura pacotes NuGet dependentes
dotnet build [argumentos]
Compila sua app ou biblioteca
dotnet run [argumentos]
Compila e executa sua app em um passo
27. O que é?
ciandt.com
OWIN define uma interface entre web servers e web applications em .NET
Padrão para desacoplamento entre servidor e aplicação, incentivando o
desenvolvimento modular de middlewares.
30. É leve e escalável!
ciandt.com
Possibilidade de escolha dos componentes do middleware ao servidor e host
permite a escolha de opções mais leves e rápidas.
Nenhuma funcionalidade é carregada por padrão, apenas funcionalidades
realmente necessárias são carregadas no pipeline da aplicação.
Não depende diretamente do System.Web, que contém um overhead para
diversas tecnologias (SessionState, WebForms e etc.).
33. OWIN self-service pipeline
ciandt.com
Host Server Middleware Application
IIS
Self-Host
Nginx
Custom Host
System.Web
HttpListener
Authentication
WebApi
Logging
Dependency
Injection
Your Code!
And a lot more
34. Vantagens de Self-Host em relação ao IIS
ciandt.com
Lightweight/Low Memory Footprint.
Carrega apenas o necessário para o pipeline.
Não necessita configuração complexa do IIS.
Versões do IIS estão diretamente ligadas com versões do SO.
36. public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
public void Configure(IApplicationBuilder app)
{
app.UseMvc();
}
}
Inicialização do Pipeline OWIN em ASP.NET Core
ciandt.com
37. app.Use(async (httpcontext, next) =>
{
Console.WriteLine("Before Response");
await next.Invoke();
Console.WriteLine("After Response");
});
Exemplo de um middleware OWIN em função
ciandt.com
41. Entity Framework Core
ciandt.com
Assim como o ASP NET CORE, o Entity Framework CORE também foi totalmente refeito.
Portanto, ele também teve sua numeração de versão reiniciada e agora chama-se Entity
Framework Core 1.0 e não EntityFramework 7.
Características:
● Experiência de desenvolvimento similar ao EF 6.x
● Modelo Code First (entidades POCO - Plain Old CLR Objects)
● LINQ para entidades DbContext, DbSet etc
● Suporte a fontes de dados relacionais e não relacionais
● Muito mais leve que o Entity Framework 6.x
● Suporte em nuvem, em dispositivos (UWP) e em cenários .NET tradicionais
42. EF Core no dotnet-cli
ciandt.com
Sintaxe: dotnet ef {comando} --arg
Algumas ferramentas disponíveis:
dotnet ef migrations add ‘name’
Cria código de Migrations
dotnet ef migrations remove
Remove o último código de Migrations
dotnet ef database update
Atualiza o BD com as Migrations.
dotnet ef database drop
Dropa o banco de dados.