ASP.NET Core &OWIN
ciandt.com
Tanato CartaxoAndré Paulovich
Tanato Cartaxo
André Paulovich
ASP.NET
ciandt.com
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.
● 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
Alguma coisa parecia
estranha...
Eis que surge o MVC!
ASP.NET
ciandt.com
Mas nem tudo era legal...
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...
ASP.NET
ciandt.com
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
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.
ASP.NET Core - Visão Geral
É um framework pensado do zero para ser modular, além de ser completamente open-source.
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.
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.
Conceitos - OWIN
ciandt.com
Host
Server
Middleware
Application
Conceitos - Inversion Of Control (IOC)
ciandt.com
Conceitos - Unificação do MVC e Web API.
ciandt.com
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
OWIN
ciandt.com
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.
Middleware
ciandt.com
Porque utilizar OWIN?
ciandt.com
É 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.).
Middlewares!
ciandt.com
Middlewares são incluídos, atualizados, removidos e substituídos de forma simples.
Middlewares são criados para funções específicas e por isso tendem a ser leves.
ciandt.com
Abordagem limpa, facilita o desenvolvimento de um pipeline compreensível.
Sem dependências do IIS e outros componentes.
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
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.
Some Code!
ciandt.com
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
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
Entity Framework
ciandt.com
Entity Framework
ciandt.com
Entity Framework Core
ciandt.com
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
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 updateAtualiza o BD com as Migrations.
dotnet ef database drop Dropa o banco de dados.
Let’s Code
ciandt.com
OBRIGADO!