Asp.net core

45
ASP.NET Core & OWIN ciandt.com Tanato Cartaxo André Paulovich

Transcript of Asp.net core

Page 1: Asp.net core

ASP.NET Core &OWIN

ciandt.com

Tanato CartaxoAndré Paulovich

Page 2: Asp.net core

Tanato Cartaxo

Page 3: Asp.net core

André Paulovich

Page 4: Asp.net core

ASP.NET

ciandt.com

Page 5: Asp.net core

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.

Page 6: Asp.net core
Page 7: Asp.net core

● 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

Page 8: Asp.net core

Alguma coisa parecia

estranha...

Page 9: Asp.net core

Eis que surge o MVC!

Page 10: Asp.net core
Page 11: Asp.net core

ASP.NET

ciandt.com

Page 12: Asp.net core
Page 13: Asp.net core
Page 14: Asp.net core

Mas nem tudo era legal...

Page 15: Asp.net core

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...

Page 16: Asp.net core

ASP.NET

ciandt.com

Page 17: Asp.net core

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

Page 18: Asp.net core

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.

Page 19: Asp.net core

ASP.NET Core - Visão Geral

É um framework pensado do zero para ser modular, além de ser completamente open-source.

Page 20: Asp.net core

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.

Page 21: Asp.net core

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.

Page 22: Asp.net core

Conceitos - OWIN

ciandt.com

Host

Server

Middleware

Application

Page 23: Asp.net core

Conceitos - Inversion Of Control (IOC)

ciandt.com

Page 24: Asp.net core

Conceitos - Unificação do MVC e Web API.

ciandt.com

Page 25: Asp.net core

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

Page 26: Asp.net core

OWIN

ciandt.com

Page 27: Asp.net core

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.

Page 28: Asp.net core

Middleware

ciandt.com

Page 29: Asp.net core

Porque utilizar OWIN?

ciandt.com

Page 30: Asp.net core

É 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.).

Page 31: Asp.net core

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.

Page 32: Asp.net core

ciandt.com

Abordagem limpa, facilita o desenvolvimento de um pipeline compreensível.

Sem dependências do IIS e outros componentes.

Page 33: Asp.net core

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

Page 34: Asp.net core

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.

Page 35: Asp.net core

Some Code!

ciandt.com

Page 36: Asp.net core

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

Page 37: Asp.net core

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

Page 38: Asp.net core

Entity Framework

ciandt.com

Page 39: Asp.net core

Entity Framework

ciandt.com

Page 40: Asp.net core

Entity Framework Core

ciandt.com

Page 41: Asp.net core

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

Page 42: Asp.net core

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.

Page 43: Asp.net core
Page 44: Asp.net core

Let’s Code

ciandt.com

Page 45: Asp.net core

OBRIGADO!