Eu li muitos artigos sobre os projetos OWIN e Katana, mas não consegui ter uma idéia completa.
Para um desenvolvedor web normal que usa o ASP.NET:
- O que exatamente é OWIN e quais problemas ele resolve (em palavras simples). Qual é a sua relação com o IIS?
- OWIN substitui o IIS? caso contrário, em que situações o OWIN se encaixa melhor?
- Como a OWIN poderia me ajudar em meus projetos de trabalho diário?
- Como o OWIN poderia me ajudar em projetos de auto-aperfeiçoamento?
Respostas:
Em relação ao comentário acima, o OWIN não é uma estrutura. OWIN é uma especificação de como os servidores e aplicativos da Web devem ser criados para dissociá-los e permitir a movimentação de aplicativos ASP.NET para ambientes que não eram suportados anteriormente.
Antes do OWIN, ao criar o aplicativo ASP.NET, você estava inerentemente vinculado ao IIS devido à grande dependência do
System.Web
assembly.System.Web
é algo que existe desde o ASP (versão não .NET) e contém internamente muitas coisas que você nem precisa (como Formulários da Web ou Autorização de URL), que por padrão são executadas em todas as solicitações, consumindo recursos e tornando o ASP Aplicativos .NET em geral muito mais lentos que seus equivalentes, como Node.js. por exemplo.O OWIN em si não possui nenhuma ferramenta, biblioteca ou qualquer outra coisa. É apenas uma especificação.
Katana, por outro lado, é uma estrutura totalmente desenvolvida para fazer uma ponte entre as estruturas atuais do ASP.NET e a especificação OWIN. No momento, Katana adaptou com êxito as seguintes estruturas do ASP.NET ao OWIN:
O ASP.NET MVC e os Web Forms ainda estão sendo executados exclusivamente via System.Web e, a longo prazo, há um plano para dissociá-los também.
Por outro lado, o IIS é um host bom e com recursos para servidores web. Problemas inteiros de desempenho do ASP.NET usando o IIS têm raízes profundas
System.Web
apenas. Até o momento recente, ao decidir como você hospedaria seu servidor da web, você tinha duas opções:Portanto, se você quiser uma performance, opte por uma opção de auto-host. Se você quisesse muitos recursos prontos que o IIS fornece, você optaria pelo IIS, mas perderia o desempenho.
Agora, existe uma terceira opção, uma biblioteca da Microsoft chamada Helios (nome de código atual) que pretende remover
System.Web
o caminho e permitir que você use o IIS de maneira mais "limpa", sem bibliotecas ou módulos desnecessários. O Helios agora está na versão de pré-lançamento e aguarda mais comentários da comunidade para torná-lo totalmente compatível com o produto da Microsoft.Espero que esta explicação esclareça melhor as coisas para você.
EDIT (setembro de 2014):
Com o ASP.NET vNext em desenvolvimento, Katana está se aposentando lentamente. A versão 3.0 provavelmente será o último grande lançamento do Katana como uma estrutura autônoma.
No entanto, todos os conceitos introduzidos com o Katana estão sendo integrados ao ASP.NET vNext, o que significa que o modelo de programação será praticamente o mesmo. Citação da postagem do fórum feita por David Fowler (arquiteto do ASP.NET vNext):
EDIT (fevereiro de 2015):
O ASP.NET vNext agora é conhecido como ASP.NET 5 e será construído sobre o .NET Core 5. O .NET Core 5 é uma versão fatorada leve do .NET Framework, projetada para suportar os objetivos do ASP.NET 5 e .NET Native . No entanto, o ASP.NET 5 também será suportado pelo .NET Framework 4.6, que deverá estar disponível junto com o .NET Core 5. O ASP.NET 5 e o .NET Core 5 serão licenciados pelo MIT e aceitarão contribuições da comunidade.
EDIT (maio de 2015):
Além disso, a marca ASP.NET Web API será descontinuada, no entanto, sua tecnologia será a base do novo ASP.NET MVC 6. As versões anteriores do ASP.NET MVC foram criadas com a implementação do IHttpHandler, uma interface definida em
System.Web
. O ASP.NET MVC 6 remove essa dependência, tornando-a portátil para várias plataformas e servidores web.EDIT (maio de 2016):
O ASP.NET 5 será renomeado oficialmente para ASP.NET Core, começando com o Release Candidate 2, que está programado para ser lançado em breve. O mesmo se aplica ao Entity Framework 7, que será renomeado para Entity Framework Core. Mais informações sobre o anúncio oficial e os motivos por trás dele podem ser encontradas na postagem do blog de Scott Hanselman: O ASP.NET 5 está morto - Apresentando o ASP.NET Core 1.0 e o .NET Core 1.0
EDIT (maio de 2016):
Com o lançamento do Release Candidate 2, o ASP.NET Core foi modificado para que futuros aplicativos Web sejam na verdade apenas aplicativos de console do .NET Core configurados para processar solicitações HTTP recebidas . Esse conceito torna o ASP.NET Core ainda mais alinhado com a abordagem adotada pela Microsoft com o suporte à arquitetura de microsserviços e sua implementação por meio do Azure Service Fabric. Mais informações podem ser encontradas na postagem oficial do blog: Anunciando o ASP.NET Core RC2
fonte
Se eu tiver que definir o OWIN para mim, isso seria: "As melhores idéias das comunidades de desenvolvimento web Ruby e Node.js., chegando ao .NET"
Mas isso não ajudaria nenhum desenvolvedor do ASP.NET. Minha própria definição seria algo como:
OWIN define uma interface padrão entre servidores da Web .NET e aplicativos da Web. O objetivo da interface OWIN é desacoplar servidor e aplicativo. Se eu tiver que responder às perguntas que você colocou, então aqui está:
OWIN é uma especificação de interface. Ele desacopla aplicativos da Web do IIS.
Se você estiver usando componentes prontos (que é o que é o Katana), algumas partes da funcionalidade do aplicativo são muito mais fáceis de implementar em comparação com o ASP.NET antigo. A autenticação com provedores de identidade de terceiros (Facebook, Twitter) é um exemplo disso.
fonte
Vou tentar cobri-lo da perspectiva prática.
Katana é o nome do projeto para implementar o OWIN na Microsoft .
O que exatamente é OWIN e quais problemas ele resolve (em palavras simples). Qual é a sua relação com o IIS? OWIN ( Open Web Interface for .NET ) é um padrão ( OWIN Specification ) e Katana é a biblioteca .NET, você pode obter pepitas aqui . OWIN e Katana tornaram-se um tanto sinônimo na web.
Antes do OWIN, sua única opção era o
IIS
OWIN, você pode usar qualquer outro aplicativo (que tenha ponto de entrada) como servidor da web.OWIN substitui o IIS? caso contrário, em que situações o OWIN se encaixa melhor?
Não, ele não substitui o IIS, você pode usar o OWIN e o IIS há
Microsoft.Owin.Host.SystemWeb
pepitas para isso . É mais adequado se você deseja otimizar / alterar a maneira como ele é tratado no IIS ou se deseja criar seu servidor Web personalizado, digamos, Windows Forms Application.Como a OWIN poderia me ajudar em meus projetos de trabalho diário?
Isso poderia reduzir os custos de execução do servidor, já que seus servidores da Web não precisam mais ser executados no IIS (Windows) (os servidores Windows são mais caros que os baseados em Unix e você pode executá-lo no aplicativo de console em Mono no Linux).
Como o OWIN poderia me ajudar em projetos de auto-aperfeiçoamento?
O aprendizado
Microsoft.Owin
(e outras bibliotecas OWIN relacionadas) melhorará seu conhecimento sobre como a comunicação HTTP entre o cliente e o servidor da web funciona.Boa leitura, se você quiser entender mais sobre o que é Katana e OWIN.
fonte
O que é o OWIN?
OWIN significa Open Web Interface for .NET. OWIN é uma especificação que descreve como as estruturas de desenvolvimento da Web, como o ASP.NET MVC, devem interagir com os servidores da Web. O objetivo do OWIN é desacoplar aplicativos da web do servidor da web, introduzindo uma camada de abstração. Essa abstração permite executar o mesmo aplicativo em todos os servidores da Web que suportam OWIN. Além disso, simplifica o sistema geral porque a camada de abstração pode fornecer uma infraestrutura leve para hospedar os aplicativos. O IIS fornece um rico conjunto de recursos para os aplicativos Web. No entanto, os aplicativos da web podem não precisar de todos esses recursos. Pode ser suficiente que eles tenham recursos mínimos de processamento HTTP. O host compatível com OWIN pode fornecer um ambiente de hospedagem para esses aplicativos. Além disso, você pode definir um pipeline de módulos que são usados durante o processamento da solicitação. Um pipeline OWIN é uma cadeia de componentes compatíveis com OWIN através dos quais uma solicitação passa.
O que é Katana?
Katana é um conjunto de componentes criados pela Microsoft usando as especificações OWIN. Alguns desses componentes incluem Web API, ASP.NET Identity e SignalR.
Acima está um trecho do artigo CodeGuru: http://www.codeguru.com/csharp/.net/net_asp/overview-of-owin-and-katana.htm
fonte