Upgrade to Pro — share decks privately, control downloads, hide ads and more …

O futuro do ASP.NET: OWIN / Katana / Helios / {insira projecto aqui}

O futuro do ASP.NET: OWIN / Katana / Helios / {insira projecto aqui}

Pouco mais de dez anos depois da primeira versão do ASP.NET, a Microsoft dá os próximos passos na (r)evolução da plataforma, desenvolve um conjunto de projectos baseados na especificação Open Web Server Interface for .NET (OWIN), e inicia a criação de um ecossistema onde as aplicações Web são compostas por diversos pequenos componentes que podem ser instalados/ utilizados separadamente, e facilmente substituidos se o desejarmos.

Nesta sessão o Caio Proiete vai explorar conosco esta nova plataforma e o seu impacto no desenvolvimento de aplicações ASP.NET MVC e ASP.NET Web API.

C. Augusto Proiete

April 26, 2014
Tweet

More Decks by C. Augusto Proiete

Other Decks in Programming

Transcript

  1. O futuro do ASP.NET: OWIN / Katana / Helios /

    {insira projecto aqui} Caio Proiete http://netponto.org 46ª Reunião Lisboa - 26/04/2014
  2. Caio Proiete Responsável Técnico numa empresa que gere hedge funds,

    com sede nas Bermudas Microsoft MVP, MCT, MC*.net, SCM –> http://caioproiete.net
  3. Agenda • ASP.NET Hoje • ASP.NET vNext: OWIN e Katana

    – Demos e mais demos... • Próximos passos
  4. ASP.NET Hoje É fixe, mas... • Depende do System.Web –

    Faz parte do .NET Framework – Rígido em alguns aspectos • Corre apenas no IIS
  5. O que é OWIN? Open Web Interface for .NET =>

    Especificação http://owin.org • Interface comum para separar aplicações web dos servidores web • Padrões para conectar diferentes servidores e frameworks numa mesma aplicação • Inspirado no node.js, Rack, e WSGI
  6. E o que é Katana? Componentes OWIN desenvolvidos pela Microsoft

    https://katanaproject.codeplex.com • Infra-estrutura, hosts, servers • Adaptadores / Integração com outros frameworks, como ASP.NET Web API, SignalR
  7. OWIN/Katana: Principais objectivos • Portabilidade – Minha app a correr

    em outros servidores web além do IIS • Modular / Flexível – Pequenos componentes especializados / independentes – Diferentes frameworks a partilhar o mesmo servidor • Performance – Minha app a utilizar apenas o que realmente precise – Pensado desde o início para funcionar de forma assíncrona
  8. OWIN: Environment dictionary Key Value "owin.RequestBody" Stream com o conteúdo

    da requisição (se houver) "owin.RequestHeaders" IDictionary<string, string[]> com os itens recebidos no header "owin.RequestMethod" string com o método (ex. “GET”, “POST”) "owin.RequestPath" string com o caminho relativo da requisição (ex. /Clientes/1) "owin.RequestQueryString" string com o conteúdo enviado por query string (e.g. a=1&b=2) “…” "owin.ResponseBody" Stream com o conteúdo da resposta a ser enviada à requisição "owin.ResponseHeaders" IDictionary<string, string[]> com os itens a serem enviados no header "owin.ResponseStatusCode" int com o código de resposta HTTP (200 é o padrão por omissão) “…” (outros) Outros itens adicionados pelo host, server, middleware, application, etc…
  9. OWIN/Katana: Principais NuGet Packages [1/2] Owin – Interface IAppBuilder Microsoft.Owin

    & Microsoft.Owin.Diagnostics – Helpers e abstrações para facilitar o desenvolvimento de componentes OWIN
  10. OWIN/Katana: Principais NuGet Packages [2/2] Microsoft.Owin.Hosting – Infra-estrutura para hosting

    e execução de apps OWIN Microsoft.Owin.Host.HttpListener – OWIN Server que utiliza a classe HttpListener. Servidor padrão para self-hosting Microsoft.Owin.Host.SystemWeb – OWIN server para correr apps OWIN no IIS integrado à pipeline do ASP.NET
  11. OWIN: Interface IAppBuilder namespace Owin { public interface IAppBuilder {

    IAppBuilder Use(object middleware, params object[] args); object Build(Type returnType); IAppBuilder New(); IDictionary<string, object> Properties { get; } } }
  12. A mesma app Katana a correr numa aplicação console (self-hosted)

    demonstração Código: https://github.com/CaioProiete/Owin-Katana-Helios-NetPonto-46a
  13. Projectos baseados em OWIN • Servers / Hosts – Katana

    | http://katanaproject.codeplex.com – Nowin | https://github.com/Bobris/Nowin • Frameworks – WebAPI | https://aspnetwebstack.codeplex.com – SignalR | http://signalr.net – Nancy | http://nancyfx.org – FubuMVC | http://mvc.fubu-project.org – Simple.Web | http://github.com/markrendle/Simple.Web – DuoVia.Http | https://github.com/duovia/duovia-http
  14. E o ASP .NET MVC? E o WebForms? • Continuam

    a depender do System.Web para quase tudo • Mas já começam a utilizar alguns componentes Katana
  15. ASP.NET vNext • ASP.NET MVC 100% OWIN? – ? •

    ASP.NET WebForms 100% OWIN? – ? • Project “Helios” • Project “[redacted]” • Project “[redacted]”
  16. Project “Helios” • Novo Host, ainda em pre-release, que tem

    o objectivo de permitir correr uma app OWIN no IIS sem qualquer dependencia ao System.Web. • NuGet Package – Microsoft.Owin.Host.IIS
  17. Próximos passos[1/2] • Exemplos de código desta apresentação – https://github.com/CaioProiete/Owin-Katana-Helios-NetPonto-46a

    • ASP.NET Owin and Katana – http://www.asp.net/aspnet/overview/owin-and-katana • Katana Project – https://katanaproject.codeplex.com • Katana Sample Projects – https://aspnet.codeplex.com/SourceControl/latest#Samples/Katana/
  18. Próximos passos[2/2] • Katana Components on NuGet – Microsoft.Owin.Security –

    Microsoft.Owin.Security.Cookies – Microsoft.Owin.Security.OAuth – Microsoft.Owin.Security.Google – Microsoft.Owin.Security.Facebook – Microsoft.Owin.Security.MicrosoftAccount – Microsoft.Owin.Security.Twitter – Microsoft.Owin.Cors • http://www.nuget.org/packages?q=Microsoft.Owin
  19. Próximas reuniões presenciais 26/04/2014 – Abril (Lisboa) 24/05/2014 – Maio

    (Porto) 31/05/2014 – Maio (Lisboa) 21/06/2014 – Junho (Lisboa) Reserva estes dias na agenda! :)