ASP.NET Core &
OWIN
ciandt.com
Tanato Cartaxo
André 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
Middlewar
e
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 update
Atualiza o BD com as Migrations.
dotnet ef database drop
Dropa o banco de dados.
Let’s Code
ciandt.com
OBRIGADO!

Asp.net core

  • 1.
    ASP.NET Core & OWIN ciandt.com TanatoCartaxo André Paulovich
  • 2.
  • 3.
  • 4.
  • 5.
    ASP.NET ciandt.com Asp.Net é aplataforma para desenvolvimento Web da Microsoft, publicado em janeiro de 2002, hoje tem mais de 14 anos de idade.
  • 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
  • 8.
  • 9.
  • 11.
  • 14.
  • 15.
    Manter compatibilidade com tecnologiasdo 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...
  • 16.
  • 17.
    ciandt.com Quando a Microsoftanunciou 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.
  • 22.
  • 23.
    Conceitos - InversionOf Control (IOC) ciandt.com
  • 24.
    Conceitos - Unificaçãodo MVC e Web API. ciandt.com
  • 25.
    Conceitos - CLI ciandt.com Agregadorde 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
  • 26.
  • 27.
    O que é? ciandt.com OWINdefine 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.
  • 28.
  • 29.
  • 30.
    É leve eescalá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.).
  • 31.
    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.
  • 32.
    ciandt.com Abordagem limpa, facilitao desenvolvimento de um pipeline compreensível. Sem dependências do IIS e outros componentes.
  • 33.
    OWIN self-service pipeline ciandt.com HostServer Middlewar e 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-Hostem 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.
  • 35.
  • 36.
    public class Startup { publicvoid 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
  • 38.
  • 39.
  • 40.
  • 41.
    Entity Framework Core ciandt.com Assimcomo 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 nodotnet-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.
  • 44.
  • 45.