SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
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 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 update
Atualiza o BD com as Migrations.
dotnet ef database drop
Dropa o banco de dados.
Let’s Code
ciandt.com
OBRIGADO!

Mais conteúdo relacionado

Mais procurados

Performance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.jsPerformance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.jsWaldyr Felix
 
Escalabilidade com docker - ASP.NET Conference 2016
Escalabilidade com docker - ASP.NET Conference 2016Escalabilidade com docker - ASP.NET Conference 2016
Escalabilidade com docker - ASP.NET Conference 2016Rodolfo Fadino Junior
 
Angular 2, TypeScript e Além
Angular 2, TypeScript e AlémAngular 2, TypeScript e Além
Angular 2, TypeScript e AlémAndre Baltieri
 
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...MVP ShowCast
 
.NET Core Internals. O que é o .NET Platform Standard?
.NET Core Internals. O que é o .NET Platform Standard?.NET Core Internals. O que é o .NET Platform Standard?
.NET Core Internals. O que é o .NET Platform Standard?Victor Cavalcante
 
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobileXamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobileakamud
 
Descomplicando o Mobile com Ionic Framework
Descomplicando o Mobile com Ionic FrameworkDescomplicando o Mobile com Ionic Framework
Descomplicando o Mobile com Ionic FrameworkYan Borowski Machado
 
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIsDevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIsJúnior Porfirio
 
Criar um sistema com asp net
Criar um sistema com asp netCriar um sistema com asp net
Criar um sistema com asp netAnderson Wernek
 
Palestra UFPR - Intro Ionic framework + WordPress
Palestra UFPR - Intro Ionic framework + WordPressPalestra UFPR - Intro Ionic framework + WordPress
Palestra UFPR - Intro Ionic framework + WordPressRômulo Zoch
 
9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometemFernando Henriques
 
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Criciúma Dev
 
Ionic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Ionic Framework - Parte 1 - Iniciando um Projeto mais RobustoIonic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Ionic Framework - Parte 1 - Iniciando um Projeto mais RobustoAlamo Saravali
 
ASP.NET SignalR + SPA com AngularJS
ASP.NET SignalR + SPA com AngularJSASP.NET SignalR + SPA com AngularJS
ASP.NET SignalR + SPA com AngularJSWaldyr Felix
 

Mais procurados (20)

Middlewares ASP.NET
Middlewares ASP.NETMiddlewares ASP.NET
Middlewares ASP.NET
 
Performance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.jsPerformance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.js
 
Escalabilidade com docker - ASP.NET Conference 2016
Escalabilidade com docker - ASP.NET Conference 2016Escalabilidade com docker - ASP.NET Conference 2016
Escalabilidade com docker - ASP.NET Conference 2016
 
O Futuro do ASP.NET
O Futuro do ASP.NETO Futuro do ASP.NET
O Futuro do ASP.NET
 
Angular 2, TypeScript e Além
Angular 2, TypeScript e AlémAngular 2, TypeScript e Além
Angular 2, TypeScript e Além
 
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
 
.NET Core Internals. O que é o .NET Platform Standard?
.NET Core Internals. O que é o .NET Platform Standard?.NET Core Internals. O que é o .NET Platform Standard?
.NET Core Internals. O que é o .NET Platform Standard?
 
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobileXamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile
 
Descomplicando o Mobile com Ionic Framework
Descomplicando o Mobile com Ionic FrameworkDescomplicando o Mobile com Ionic Framework
Descomplicando o Mobile com Ionic Framework
 
Desvendando ASP.NET MVC
Desvendando ASP.NET MVCDesvendando ASP.NET MVC
Desvendando ASP.NET MVC
 
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIsDevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
 
Criar um sistema com asp net
Criar um sistema com asp netCriar um sistema com asp net
Criar um sistema com asp net
 
Palestra UFPR - Intro Ionic framework + WordPress
Palestra UFPR - Intro Ionic framework + WordPressPalestra UFPR - Intro Ionic framework + WordPress
Palestra UFPR - Intro Ionic framework + WordPress
 
9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem
 
BaaS com Firebase 3
BaaS com Firebase 3BaaS com Firebase 3
BaaS com Firebase 3
 
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
 
Ionic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Ionic Framework - Parte 1 - Iniciando um Projeto mais RobustoIonic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Ionic Framework - Parte 1 - Iniciando um Projeto mais Robusto
 
Workshop - Ionic + firebase
Workshop - Ionic + firebaseWorkshop - Ionic + firebase
Workshop - Ionic + firebase
 
ASP.NET SignalR + SPA com AngularJS
ASP.NET SignalR + SPA com AngularJSASP.NET SignalR + SPA com AngularJS
ASP.NET SignalR + SPA com AngularJS
 
ASP.NET vNext – MVC6
ASP.NET vNext – MVC6ASP.NET vNext – MVC6
ASP.NET vNext – MVC6
 

Destaque

《窮得有品味》
《窮得有品味》《窮得有品味》
《窮得有品味》Birgit Lin
 
Trends in communication
Trends in communicationTrends in communication
Trends in communicationRenelio
 
Welcome to image chef!
Welcome to image chef!Welcome to image chef!
Welcome to image chef!Zamrtn
 
Presentazione dei dati di TagEmiliaRomagna
Presentazione dei dati di TagEmiliaRomagnaPresentazione dei dati di TagEmiliaRomagna
Presentazione dei dati di TagEmiliaRomagnatagbologna lab
 
What Is The Promise Of Marriage
What Is The Promise Of MarriageWhat Is The Promise Of Marriage
What Is The Promise Of Marriagetatianasimpson
 
Social media and challenges ahead by Petter Warnsberg
Social media and challenges ahead by Petter WarnsbergSocial media and challenges ahead by Petter Warnsberg
Social media and challenges ahead by Petter WarnsbergDina El-sofy
 
3 p strategy sems 10-v4
3 p strategy  sems 10-v43 p strategy  sems 10-v4
3 p strategy sems 10-v4guestec6b92bb
 
Rusia sanktpetersburg
Rusia sanktpetersburgRusia sanktpetersburg
Rusia sanktpetersburgbymafe
 
اختبار هرمي لمادة النحو
اختبار هرمي لمادة النحواختبار هرمي لمادة النحو
اختبار هرمي لمادة النحوahmed
 
Yritysten innovaatiopanostukset toimialoittain tarkasteltuna 2001 2012
Yritysten innovaatiopanostukset toimialoittain tarkasteltuna 2001 2012Yritysten innovaatiopanostukset toimialoittain tarkasteltuna 2001 2012
Yritysten innovaatiopanostukset toimialoittain tarkasteltuna 2001 2012Vesa Vuorenkoski
 
Sharing the Inspiration with Robot Kits
Sharing the Inspiration with Robot KitsSharing the Inspiration with Robot Kits
Sharing the Inspiration with Robot KitsRobotGrrl
 
S ________
S  ________S  ________
S ________bymafe
 
Ideas for 4-H Leader Awards
Ideas for 4-H Leader AwardsIdeas for 4-H Leader Awards
Ideas for 4-H Leader AwardsGeorgene Bender
 
JavaScript 脚本控件(二)
JavaScript 脚本控件(二)JavaScript 脚本控件(二)
JavaScript 脚本控件(二)RANK LIU
 
Sample: What is Experiential Learning?
Sample: What is Experiential Learning?Sample: What is Experiential Learning?
Sample: What is Experiential Learning?Georgene Bender
 

Destaque (20)

《窮得有品味》
《窮得有品味》《窮得有品味》
《窮得有品味》
 
Go Habs Go
Go Habs GoGo Habs Go
Go Habs Go
 
In japanese
In japaneseIn japanese
In japanese
 
Trends in communication
Trends in communicationTrends in communication
Trends in communication
 
Welcome to image chef!
Welcome to image chef!Welcome to image chef!
Welcome to image chef!
 
18cm
18cm18cm
18cm
 
Presentazione dei dati di TagEmiliaRomagna
Presentazione dei dati di TagEmiliaRomagnaPresentazione dei dati di TagEmiliaRomagna
Presentazione dei dati di TagEmiliaRomagna
 
What Is The Promise Of Marriage
What Is The Promise Of MarriageWhat Is The Promise Of Marriage
What Is The Promise Of Marriage
 
Social media and challenges ahead by Petter Warnsberg
Social media and challenges ahead by Petter WarnsbergSocial media and challenges ahead by Petter Warnsberg
Social media and challenges ahead by Petter Warnsberg
 
3 p strategy sems 10-v4
3 p strategy  sems 10-v43 p strategy  sems 10-v4
3 p strategy sems 10-v4
 
Pasiva
PasivaPasiva
Pasiva
 
Rusia sanktpetersburg
Rusia sanktpetersburgRusia sanktpetersburg
Rusia sanktpetersburg
 
اختبار هرمي لمادة النحو
اختبار هرمي لمادة النحواختبار هرمي لمادة النحو
اختبار هرمي لمادة النحو
 
Yritysten innovaatiopanostukset toimialoittain tarkasteltuna 2001 2012
Yritysten innovaatiopanostukset toimialoittain tarkasteltuna 2001 2012Yritysten innovaatiopanostukset toimialoittain tarkasteltuna 2001 2012
Yritysten innovaatiopanostukset toimialoittain tarkasteltuna 2001 2012
 
Sharing the Inspiration with Robot Kits
Sharing the Inspiration with Robot KitsSharing the Inspiration with Robot Kits
Sharing the Inspiration with Robot Kits
 
S ________
S  ________S  ________
S ________
 
Ideas for 4-H Leader Awards
Ideas for 4-H Leader AwardsIdeas for 4-H Leader Awards
Ideas for 4-H Leader Awards
 
Party Man
Party ManParty Man
Party Man
 
JavaScript 脚本控件(二)
JavaScript 脚本控件(二)JavaScript 脚本控件(二)
JavaScript 脚本控件(二)
 
Sample: What is Experiential Learning?
Sample: What is Experiential Learning?Sample: What is Experiential Learning?
Sample: What is Experiential Learning?
 

Semelhante a ASP.NET Core & OWIN: Uma introdução à nova plataforma .NET

Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...
Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...
Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...Fabrício Lopes Sanchez
 
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0Fabrício Lopes Sanchez
 
MVP Virtual Conference (MVP V-Conf) 2015: Executando ASP.NET MVC 6 no Mac OS ...
MVP Virtual Conference (MVP V-Conf) 2015: Executando ASP.NET MVC 6 no Mac OS ...MVP Virtual Conference (MVP V-Conf) 2015: Executando ASP.NET MVC 6 no Mac OS ...
MVP Virtual Conference (MVP V-Conf) 2015: Executando ASP.NET MVC 6 no Mac OS ...Rogério Moraes de Carvalho
 
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataformaTDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataformaRogério Moraes de Carvalho
 
TDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataforma
TDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataformaTDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataforma
TDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataformatdc-globalcode
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014Giovanni Bassi
 
TDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no MacTDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no MacAndre Baltieri
 
.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo maisakamud
 
Melhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernasMelhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernasAmazon Web Services LATAM
 
Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Alexandre Tarifa
 
Futuro do ASP.NET vNext - MVP ShowCast
Futuro do ASP.NET vNext - MVP ShowCast Futuro do ASP.NET vNext - MVP ShowCast
Futuro do ASP.NET vNext - MVP ShowCast Eduardo Pires
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasAmazon Web Services LATAM
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...Amazon Web Services
 
ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010Norton Guimarães
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?akamud
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?Letticia Nicoli
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosRodolfo Fadino Junior
 

Semelhante a ASP.NET Core & OWIN: Uma introdução à nova plataforma .NET (20)

Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...
Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...
Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...
 
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
 
MVP Virtual Conference (MVP V-Conf) 2015: Executando ASP.NET MVC 6 no Mac OS ...
MVP Virtual Conference (MVP V-Conf) 2015: Executando ASP.NET MVC 6 no Mac OS ...MVP Virtual Conference (MVP V-Conf) 2015: Executando ASP.NET MVC 6 no Mac OS ...
MVP Virtual Conference (MVP V-Conf) 2015: Executando ASP.NET MVC 6 no Mac OS ...
 
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataformaTDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
 
TDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataforma
TDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataformaTDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataforma
TDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataforma
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
 
TDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no MacTDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no Mac
 
.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais
 
Melhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernasMelhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernas
 
Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010
 
Futuro do ASP.NET vNext - MVP ShowCast
Futuro do ASP.NET vNext - MVP ShowCast Futuro do ASP.NET vNext - MVP ShowCast
Futuro do ASP.NET vNext - MVP ShowCast
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
 
ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
 
Sessao2
Sessao2Sessao2
Sessao2
 
Sessao2 ASP
Sessao2 ASPSessao2 ASP
Sessao2 ASP
 
Sessao2
Sessao2Sessao2
Sessao2
 

Mais de André Paulovich

Construindo carreiras inspiradoras - UAIDEV 5.0
Construindo carreiras inspiradoras - UAIDEV 5.0Construindo carreiras inspiradoras - UAIDEV 5.0
Construindo carreiras inspiradoras - UAIDEV 5.0André Paulovich
 
Arquitetura evolutiva - Arquitetura ágil (TDC FLORIPA 2023)
Arquitetura evolutiva - Arquitetura ágil (TDC FLORIPA 2023)Arquitetura evolutiva - Arquitetura ágil (TDC FLORIPA 2023)
Arquitetura evolutiva - Arquitetura ágil (TDC FLORIPA 2023)André Paulovich
 
Equilíbrio entre carreira e vida pessoal
Equilíbrio entre carreira e vida pessoalEquilíbrio entre carreira e vida pessoal
Equilíbrio entre carreira e vida pessoalAndré Paulovich
 
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTILiberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTIAndré Paulovich
 
Como se tornar o profissional que todos procuram
Como se tornar o profissional que todos procuramComo se tornar o profissional que todos procuram
Como se tornar o profissional que todos procuramAndré Paulovich
 
Levando seu SCM à outro nível com Feature Flags
Levando seu SCM à outro nível com Feature FlagsLevando seu SCM à outro nível com Feature Flags
Levando seu SCM à outro nível com Feature FlagsAndré Paulovich
 
C school Extended - Liberte sua arquitetura com Cloud Native
C school Extended - Liberte sua arquitetura com Cloud NativeC school Extended - Liberte sua arquitetura com Cloud Native
C school Extended - Liberte sua arquitetura com Cloud NativeAndré Paulovich
 
Como se tornar o profissional que todos estão procurando.
Como se tornar o profissional que todos estão procurando.Como se tornar o profissional que todos estão procurando.
Como se tornar o profissional que todos estão procurando.André Paulovich
 
TDC BH 2019 - Arquitetura Evolutiva - Segredo da arquitetura ágil
TDC BH 2019 - Arquitetura Evolutiva - Segredo da arquitetura ágilTDC BH 2019 - Arquitetura Evolutiva - Segredo da arquitetura ágil
TDC BH 2019 - Arquitetura Evolutiva - Segredo da arquitetura ágilAndré Paulovich
 
TDC 2019 Cloud - Liberte sua arquitetura com cloud native
TDC 2019 Cloud - Liberte sua arquitetura com cloud nativeTDC 2019 Cloud - Liberte sua arquitetura com cloud native
TDC 2019 Cloud - Liberte sua arquitetura com cloud nativeAndré Paulovich
 
Semcom - UFV - Florestal - 2019 - André Paulovich
Semcom - UFV - Florestal - 2019 - André PaulovichSemcom - UFV - Florestal - 2019 - André Paulovich
Semcom - UFV - Florestal - 2019 - André PaulovichAndré Paulovich
 
ConnectionDay 2019 - Divinópolis - Transformação digital turbinada
ConnectionDay 2019 - Divinópolis - Transformação digital turbinadaConnectionDay 2019 - Divinópolis - Transformação digital turbinada
ConnectionDay 2019 - Divinópolis - Transformação digital turbinadaAndré Paulovich
 
AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019
AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019
AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019André Paulovich
 
CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...
CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...
CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...André Paulovich
 
MeetupWeek - Transformacao Digital
MeetupWeek - Transformacao DigitalMeetupWeek - Transformacao Digital
MeetupWeek - Transformacao DigitalAndré Paulovich
 
Arquitetura Evolutiva - A retomada do ágil 18 anos depois
Arquitetura Evolutiva - A retomada do ágil 18 anos depoisArquitetura Evolutiva - A retomada do ágil 18 anos depois
Arquitetura Evolutiva - A retomada do ágil 18 anos depoisAndré Paulovich
 
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...André Paulovich
 
Acerto talk - Descobrindo o poder do Cloud Computing
Acerto talk - Descobrindo o poder do Cloud ComputingAcerto talk - Descobrindo o poder do Cloud Computing
Acerto talk - Descobrindo o poder do Cloud ComputingAndré Paulovich
 
Share - Mastermaq - Evolução e o futuro do C#
Share - Mastermaq - Evolução e o futuro do C#Share - Mastermaq - Evolução e o futuro do C#
Share - Mastermaq - Evolução e o futuro do C#André Paulovich
 
Global Azure Bootcamp 2018 - Belo Horizonte - Paulovich
Global Azure Bootcamp 2018 - Belo Horizonte - PaulovichGlobal Azure Bootcamp 2018 - Belo Horizonte - Paulovich
Global Azure Bootcamp 2018 - Belo Horizonte - PaulovichAndré Paulovich
 

Mais de André Paulovich (20)

Construindo carreiras inspiradoras - UAIDEV 5.0
Construindo carreiras inspiradoras - UAIDEV 5.0Construindo carreiras inspiradoras - UAIDEV 5.0
Construindo carreiras inspiradoras - UAIDEV 5.0
 
Arquitetura evolutiva - Arquitetura ágil (TDC FLORIPA 2023)
Arquitetura evolutiva - Arquitetura ágil (TDC FLORIPA 2023)Arquitetura evolutiva - Arquitetura ágil (TDC FLORIPA 2023)
Arquitetura evolutiva - Arquitetura ágil (TDC FLORIPA 2023)
 
Equilíbrio entre carreira e vida pessoal
Equilíbrio entre carreira e vida pessoalEquilíbrio entre carreira e vida pessoal
Equilíbrio entre carreira e vida pessoal
 
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTILiberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
 
Como se tornar o profissional que todos procuram
Como se tornar o profissional que todos procuramComo se tornar o profissional que todos procuram
Como se tornar o profissional que todos procuram
 
Levando seu SCM à outro nível com Feature Flags
Levando seu SCM à outro nível com Feature FlagsLevando seu SCM à outro nível com Feature Flags
Levando seu SCM à outro nível com Feature Flags
 
C school Extended - Liberte sua arquitetura com Cloud Native
C school Extended - Liberte sua arquitetura com Cloud NativeC school Extended - Liberte sua arquitetura com Cloud Native
C school Extended - Liberte sua arquitetura com Cloud Native
 
Como se tornar o profissional que todos estão procurando.
Como se tornar o profissional que todos estão procurando.Como se tornar o profissional que todos estão procurando.
Como se tornar o profissional que todos estão procurando.
 
TDC BH 2019 - Arquitetura Evolutiva - Segredo da arquitetura ágil
TDC BH 2019 - Arquitetura Evolutiva - Segredo da arquitetura ágilTDC BH 2019 - Arquitetura Evolutiva - Segredo da arquitetura ágil
TDC BH 2019 - Arquitetura Evolutiva - Segredo da arquitetura ágil
 
TDC 2019 Cloud - Liberte sua arquitetura com cloud native
TDC 2019 Cloud - Liberte sua arquitetura com cloud nativeTDC 2019 Cloud - Liberte sua arquitetura com cloud native
TDC 2019 Cloud - Liberte sua arquitetura com cloud native
 
Semcom - UFV - Florestal - 2019 - André Paulovich
Semcom - UFV - Florestal - 2019 - André PaulovichSemcom - UFV - Florestal - 2019 - André Paulovich
Semcom - UFV - Florestal - 2019 - André Paulovich
 
ConnectionDay 2019 - Divinópolis - Transformação digital turbinada
ConnectionDay 2019 - Divinópolis - Transformação digital turbinadaConnectionDay 2019 - Divinópolis - Transformação digital turbinada
ConnectionDay 2019 - Divinópolis - Transformação digital turbinada
 
AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019
AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019
AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019
 
CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...
CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...
CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...
 
MeetupWeek - Transformacao Digital
MeetupWeek - Transformacao DigitalMeetupWeek - Transformacao Digital
MeetupWeek - Transformacao Digital
 
Arquitetura Evolutiva - A retomada do ágil 18 anos depois
Arquitetura Evolutiva - A retomada do ágil 18 anos depoisArquitetura Evolutiva - A retomada do ágil 18 anos depois
Arquitetura Evolutiva - A retomada do ágil 18 anos depois
 
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
 
Acerto talk - Descobrindo o poder do Cloud Computing
Acerto talk - Descobrindo o poder do Cloud ComputingAcerto talk - Descobrindo o poder do Cloud Computing
Acerto talk - Descobrindo o poder do Cloud Computing
 
Share - Mastermaq - Evolução e o futuro do C#
Share - Mastermaq - Evolução e o futuro do C#Share - Mastermaq - Evolução e o futuro do C#
Share - Mastermaq - Evolução e o futuro do C#
 
Global Azure Bootcamp 2018 - Belo Horizonte - Paulovich
Global Azure Bootcamp 2018 - Belo Horizonte - PaulovichGlobal Azure Bootcamp 2018 - Belo Horizonte - Paulovich
Global Azure Bootcamp 2018 - Belo Horizonte - Paulovich
 

ASP.NET Core & OWIN: Uma introdução à nova plataforma .NET

  • 1. ASP.NET Core & OWIN ciandt.com Tanato Cartaxo André Paulovich
  • 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
  • 9. Eis que surge o MVC!
  • 10.
  • 12.
  • 13.
  • 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.
  • 23. Conceitos - Inversion Of Control (IOC) ciandt.com
  • 24. Conceitos - Unificação do MVC e Web API. ciandt.com
  • 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.).
  • 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, facilita o desenvolvimento de um pipeline compreensível. Sem dependências do IIS e outros componentes.
  • 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.
  • 43.