SlideShare uma empresa Scribd logo
1 de 30
Middlewares
ASP.NET
Bruno Belarmino
▷ Arquiteto de Soluções na I-Value
▷ Programador .Net, Java, Python e NodeJS
▷ Organizador e Mentor do NodeSchool
Campinas
▷ Organizador do Meetup de Docker em
Campinas
▷ Atualmente se divertindo muito codando para
Android e achando que sei pilotar carrinho de
golf….hehe
Twitter: @brbelarmino
Agenda
▷ Introdução
▷ Evolução dos middlewares dentro do ASP.NET
▷ Dicas de uso
▷ Demonstração
O que é um middleware?
“Middleware é uma unidade de
código que pode ser plugada dentro
de um pipeline para mudar ou
incorporar funcionalidades.
Modelo de processo
Middleware Middleware Middleware
Middlewares dentro do
ASP.NET é realmente algo
novo?
O início
Modules e Handlers
Http Modules
São unidades de código plugadas no request pipeline do
ASP.NET que respondem a eventos definidos na classe
HttpApplication
Passado, presente e (not) futuro
Http Handlers
É a unidade de código/endpoint executado em resposta a
um request realizado para uma aplicação ASP.NET
Http Module
Http Handler
Destaques
▷ Orientado a eventos
▷ Dificil de testar (só foi possível a partir do .Net 3.5)
▷ Precisa ser registrado via Web.config
▷ Só roda no IIS
▷ Você não determina 100% o momento da execução
Uma nova ordem
Message/Delegating Handlers
ASP.NET Web API ao resgate
Message/Delegating Handlers
É uma unidade de código (classe) que recebe um
request e retorna um response.
Message/Delegating Handler
Destaques
▷ Configurado via código
▷ Roda dentro e fora do IIS
▷ Você tem mais poder em cima do momento execução
▷ Depende do ASP.NET
▷ Possível de se testar
OWIN, Katana e um futuro
Owin
Um novo padrão para servidores web. E uma forma
que a Microsoft criou para sair do system.web.
Katana
A primeira implementação de Owin. Feita pela
Microsoft.
O futuro
ASP.NET Core
ASP.NET Core
O ASP.NET Core é o ASP.NET que você já conhece,
porém 100% aderente ao padrão OWIN e com
super poderes!!!
E o que isso quer dizer?
Que nós podemos brincar de lego:
Dúvidas?
Composição de plugins/middlewares
Dúvidas?
Novo Pipeline
Anatomia de um Middleware
Destaques
▷ Configurado via código
▷ Roda em qualquer lugar
▷ Você tem 100% de poder em cima do momento
execução
▷ Você pode até desligar o ASP.NET
▷ Muito fácil de se testar
Dúvidas?
Dicas de uso
▷ Cache (dá para substituir o PostSharp..hehe)
▷ Sanitize
▷ Camada Anti Corrupção
▷ Monitoramento
▷ Log
▷ Rate Limit
▷ Web Hook
Demo
Obrigaduu!
Dúvidas?
Entre em contato:
@brbelarmino
bb.belarmino@gmail.com
http://www.brunobelarmino.com.br
Código da demo:
https://github.com/brunobelarmino/aspnet-conference

Mais conteúdo relacionado

Mais procurados

ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
ASP.NET 5 - Novidades do Desenvolvimento Web em .NETASP.NET 5 - Novidades do Desenvolvimento Web em .NET
ASP.NET 5 - Novidades do Desenvolvimento Web em .NETRenato Groff
 
.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
 
ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016Renato Groff
 
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017Renato Groff
 
Migrando para o Angular 2
Migrando para o Angular 2Migrando para o Angular 2
Migrando para o Angular 2Andre Baltieri
 
APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016
APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016
APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016Renato Groff
 
ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017
ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017
ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017Renato Groff
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Renato Groff
 
ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...
ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...
ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...Renato Groff
 
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
 
Criar um sistema com asp net
Criar um sistema com asp netCriar um sistema com asp net
Criar um sistema com asp netAnderson Wernek
 
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
 
Comunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalRComunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalREduardo Pires
 
Xamarin em 7 minutos
Xamarin em 7 minutosXamarin em 7 minutos
Xamarin em 7 minutosakamud
 
ASP.NET Core e Linux - ASP.NET Core Day - Maio/2017
ASP.NET Core e Linux - ASP.NET Core Day - Maio/2017ASP.NET Core e Linux - ASP.NET Core Day - Maio/2017
ASP.NET Core e Linux - ASP.NET Core Day - Maio/2017Renato Groff
 
Desenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do códigoDesenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do códigoGuilherme Heynemann Bruzzi
 
Desenvolvimento para web com Meteor
Desenvolvimento para web com MeteorDesenvolvimento para web com Meteor
Desenvolvimento para web com MeteorWeverton Gomes
 

Mais procurados (20)

ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
ASP.NET 5 - Novidades do Desenvolvimento Web em .NETASP.NET 5 - Novidades do Desenvolvimento Web em .NET
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
 
.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?
 
ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016
 
ASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e alémASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e além
 
GDG Angular 2
GDG Angular 2GDG Angular 2
GDG Angular 2
 
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
 
O Futuro do ASP.NET
O Futuro do ASP.NETO Futuro do ASP.NET
O Futuro do ASP.NET
 
Migrando para o Angular 2
Migrando para o Angular 2Migrando para o Angular 2
Migrando para o Angular 2
 
APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016
APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016
APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016
 
ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017
ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017
ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
 
ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...
ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...
ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...
 
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
 
Criar um sistema com asp net
Criar um sistema com asp netCriar um sistema com asp net
Criar um sistema com asp net
 
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
 
Comunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalRComunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalR
 
Xamarin em 7 minutos
Xamarin em 7 minutosXamarin em 7 minutos
Xamarin em 7 minutos
 
ASP.NET Core e Linux - ASP.NET Core Day - Maio/2017
ASP.NET Core e Linux - ASP.NET Core Day - Maio/2017ASP.NET Core e Linux - ASP.NET Core Day - Maio/2017
ASP.NET Core e Linux - ASP.NET Core Day - Maio/2017
 
Desenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do códigoDesenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do código
 
Desenvolvimento para web com Meteor
Desenvolvimento para web com MeteorDesenvolvimento para web com Meteor
Desenvolvimento para web com Meteor
 

Destaque

ASP.NET MVC Web API -twMVC#8
ASP.NET MVC Web API -twMVC#8ASP.NET MVC Web API -twMVC#8
ASP.NET MVC Web API -twMVC#8twMVC
 
Owin and-katana-overview
Owin and-katana-overviewOwin and-katana-overview
Owin and-katana-overviewsonia merchant
 
ASP.NET Web API O to 100
ASP.NET Web API O to 100ASP.NET Web API O to 100
ASP.NET Web API O to 100Himanshu Desai
 
Moving forward with ASP.NET Core
Moving forward with ASP.NET CoreMoving forward with ASP.NET Core
Moving forward with ASP.NET CoreEnea Gabriel
 
Web api crud operations
Web api crud operationsWeb api crud operations
Web api crud operationsEyal Vardi
 
Creating scalable message driven solutions akkadotnet
Creating scalable message driven solutions akkadotnetCreating scalable message driven solutions akkadotnet
Creating scalable message driven solutions akkadotnetDavid Hoerster
 
ASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiTiago Knoch
 
03 - Presidential Powers
03 - Presidential Powers03 - Presidential Powers
03 - Presidential PowersPaul English
 
Grafico diario del dax perfomance index para el 12 07-2012
Grafico diario del dax perfomance index para el 12 07-2012Grafico diario del dax perfomance index para el 12 07-2012
Grafico diario del dax perfomance index para el 12 07-2012Experiencia Trading
 
Empleo con apoyo. principios, valores y proceso.
Empleo con apoyo. principios, valores y proceso.Empleo con apoyo. principios, valores y proceso.
Empleo con apoyo. principios, valores y proceso.José María
 
How effective is modularization
How effective is modularizationHow effective is modularization
How effective is modularizationSyedArsal
 
Hobbim az olvasás
Hobbim az olvasásHobbim az olvasás
Hobbim az olvasásmatraiorsi
 

Destaque (20)

ASP.NET MVC Web API -twMVC#8
ASP.NET MVC Web API -twMVC#8ASP.NET MVC Web API -twMVC#8
ASP.NET MVC Web API -twMVC#8
 
Owin and-katana-overview
Owin and-katana-overviewOwin and-katana-overview
Owin and-katana-overview
 
Owin e katana
Owin e katanaOwin e katana
Owin e katana
 
The Future of ASP.NET
The Future of ASP.NETThe Future of ASP.NET
The Future of ASP.NET
 
ASP.NET Web API O to 100
ASP.NET Web API O to 100ASP.NET Web API O to 100
ASP.NET Web API O to 100
 
Moving forward with ASP.NET Core
Moving forward with ASP.NET CoreMoving forward with ASP.NET Core
Moving forward with ASP.NET Core
 
End to End Security with MVC and Web API
End to End Security with MVC and Web APIEnd to End Security with MVC and Web API
End to End Security with MVC and Web API
 
Web api crud operations
Web api crud operationsWeb api crud operations
Web api crud operations
 
Creating scalable message driven solutions akkadotnet
Creating scalable message driven solutions akkadotnetCreating scalable message driven solutions akkadotnet
Creating scalable message driven solutions akkadotnet
 
ASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiASP.NET Mvc 4 web api
ASP.NET Mvc 4 web api
 
03 - Presidential Powers
03 - Presidential Powers03 - Presidential Powers
03 - Presidential Powers
 
Much ado about...documents nashville
Much ado about...documents nashvilleMuch ado about...documents nashville
Much ado about...documents nashville
 
contabilidad gubernamental
contabilidad gubernamentalcontabilidad gubernamental
contabilidad gubernamental
 
Motivación laboral
Motivación laboralMotivación laboral
Motivación laboral
 
Grafico diario del dax perfomance index para el 12 07-2012
Grafico diario del dax perfomance index para el 12 07-2012Grafico diario del dax perfomance index para el 12 07-2012
Grafico diario del dax perfomance index para el 12 07-2012
 
課題
課題課題
課題
 
Empleo con apoyo. principios, valores y proceso.
Empleo con apoyo. principios, valores y proceso.Empleo con apoyo. principios, valores y proceso.
Empleo con apoyo. principios, valores y proceso.
 
Sangeetha Vairavel
Sangeetha VairavelSangeetha Vairavel
Sangeetha Vairavel
 
How effective is modularization
How effective is modularizationHow effective is modularization
How effective is modularization
 
Hobbim az olvasás
Hobbim az olvasásHobbim az olvasás
Hobbim az olvasás
 

Semelhante a Middlewares no ASP.NET: evolução, conceitos e dicas de uso

TDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDeviceTDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDeviceRicardo Rufino
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos JavaMarcio Marinho
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaAlexandre Tarifa
 
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
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsJosé Alexandre Macedo
 
Palestra SFD etec Netbeans e Java 3D
Palestra SFD etec Netbeans e Java 3DPalestra SFD etec Netbeans e Java 3D
Palestra SFD etec Netbeans e Java 3DRenato Puccini
 
Aplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend FrameworkAplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend FrameworkFlávio Lisboa
 
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
 
CEPUG 2 - Bem-vindo a Framework CodeIgniter
CEPUG 2 - Bem-vindo a Framework CodeIgniterCEPUG 2 - Bem-vindo a Framework CodeIgniter
CEPUG 2 - Bem-vindo a Framework CodeIgniterEric Silva
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkFlávio Lisboa
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e djangoIgor Sobreira
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindJaydson Gomes
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1César Augusto Pessôa
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicRicardo Guerra Freitas
 

Semelhante a Middlewares no ASP.NET: evolução, conceitos e dicas de uso (20)

TDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDeviceTDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDevice
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos Java
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
Continuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na NuvemContinuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na Nuvem
 
Manual
ManualManual
Manual
 
Netbeans Slides
Netbeans SlidesNetbeans Slides
Netbeans Slides
 
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
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
Palestra SFD etec Netbeans e Java 3D
Palestra SFD etec Netbeans e Java 3DPalestra SFD etec Netbeans e Java 3D
Palestra SFD etec Netbeans e Java 3D
 
Aplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend FrameworkAplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend Framework
 
Workshop ASP.NET MVC 5
Workshop ASP.NET MVC 5Workshop ASP.NET MVC 5
Workshop ASP.NET MVC 5
 
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
 
CEPUG 2 - Bem-vindo a Framework CodeIgniter
CEPUG 2 - Bem-vindo a Framework CodeIgniterCEPUG 2 - Bem-vindo a Framework CodeIgniter
CEPUG 2 - Bem-vindo a Framework CodeIgniter
 
DevOps Primeiros Passos
DevOps Primeiros PassosDevOps Primeiros Passos
DevOps Primeiros Passos
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend Framework
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMind
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual Basic
 

Middlewares no ASP.NET: evolução, conceitos e dicas de uso