public interface OWIN
{
void ListenHttpCallAndServeWebPage();
}
namespace Microsoft.OWIN
{
public class Katana : OWIN
{
public void ListenHttpCallAndServeWebPage()
{
// listen to a port for HTTP call and serve web page
}
}
}
Sim está certo. OWIN é uma interface e Katana é uma implementação da interface OWIN pela Microsoft . Portanto, ouvimos essas duas palavras (OWIN / KATANA) juntas e muitas vezes nos confundimos entre a diferença entre esses dois termos. Portanto, Katana é a implementação da interface OWIN da Microsoft. Digamos que exista outra empresa chamada BIG-BOSS que deseje criar sua própria implementação do OWIN; eles podem fazer isso e nomear sua implementação como 'BATANA' e anunciar frases como OWIN / BATANA.
Então, por que OWIN !!!
Pense em um país onde o único veículo disponível para circulação é um caminhão. Nada mais. Se você quiser comprar um veículo, você compraria caminhão. Bem, isso costumava servir bem, mas as pessoas começaram a perceber que, elas não precisam de caminhão o tempo todo, especialmente quando querem assistir a um filme ou comprar leite, dirigir um caminhão pesado não apenas custa combustível alto, mas também adicione estresse ao dirigir. Mas sim, se eles querem carregar muitas coisas pesadas, o caminhão serve muito bem ao objetivo.
Então, o governo daquele país apresentou uma especificação para os fabricantes de veículos. A especificação é a seguinte:
- Um veículo precisa ter 4 rodas
- Um veículo deve ter uma direção.
- Um veículo deve ter farol e luzes de sinalização.
Portanto, com base nessas especificações, qualquer pessoa pode fabricar veículos de acordo com diferentes necessidades e pode nomear seus veículos de acordo. Portanto, Sedan, caminhonete, SUV, VAN, etc. etc. todo tipo de veículo apareceu no mercado. Se alguém não precisar carregar coisas pesadas o tempo todo, precisar de um veículo apenas para ir ao local de trabalho, ele / ela pode comprar um pouco de Sedan. Alguém pode comprar um utilitário esportivo se precisar de mais energia.
Com base no exemplo acima, podemos dizer que nosso aplicativo da Web ASP.NET usa o System.Web Assembly que é muito carregado (como um caminhão) e se queremos criar um pequeno aplicativo da Web em que nosso objetivo seja servir apenas alguns arquivos com base em em um pequeno conjunto de solicitações, somos obrigados a usar esse conjunto System.Web pesado (caminhão). Agora, o OWIN aparece. OWIN é um conjunto de especificações (podemos chamar de interface) que define um servidor. Com base nessa especificação, alguém (como um fabricante de veículos) pode criar vários tipos de servidores com base em domínios de problemas / necessidades de aplicativos específicos. A Microsoft criou sua própria Implementação para OWIN, chamada Katana, da mesma maneira que pode servir a API da Web. Como o WebAPI é uma tecnologia leve, que não precisa do sistema completo.
Agora, se você perguntar: ' Eu preciso disso'? A resposta é: 'Depende da sua necessidade de desempenho'. Se você não se importa de dirigir seu caminhão, mesmo que vá assistir a um filme, talvez não precise do OWIN. Mas se você sentir isso, um carro Sedan leve é tudo o que você precisa para dirigir dentro de uma cidade, a uma pequena distância, assistir a filmes etc. etc. sim, você pode verificar quais implementações do OWIN estão disponíveis no mercado. O Katana é uma das implementações do OWIN; portanto, você pode verificar o que o Katana oferece. Não apenas Katana, se alguma outra empresa implementa o OWIN de acordo com um domínio específico (por exemplo, um servidor para dispositivos médicos que baixará as informações mais recentes sobre medicamentos) e se você é médico, talvez possa verificar a implementação do OWIN. Além disso, você mesmo pode criar sua própria implementação do OWIN visando qualquer nicho específico.
Em termos de aplicativos da Web, se você é um desenvolvedor simples da Web, desenvolvendo sites personalizados para seus clientes, talvez não precise se preocupar com a implementação personalizada de OWINs, porque o IIS o atenderá de maneira equilibrada. Se você criar um projeto de API da Web, terá o modelo baseado no Katana pronto no Visual Studio -> Novo Projeto, para que não precise se preocupar com nada além de aprender técnicas específicas do Katana. No momento, o Katana não está maduro o suficiente para substituir completamente a necessidade do IIS para o ASP.NET MVC, mas talvez, no futuro, ele o faça.
Então, quando eu precisar escrever minha própria implementação OWIN?
Resposta: Bem, digamos, por exemplo, você desenvolveu um aplicativo Windows que deve ser executado como servidor em segundo plano e ouvir um número de porta XXXX. Seu servidor responderá apenas a um conjunto de solicitações como este:
- GET Inventory
- DELETE ID do inventário = 4
- ID do inventário PUT = 5
Isso é tudo. E nada mais. Então, por que você precisaria de um servidor Web IIS completo para esta pequena tarefa? Você pode criar sua própria implementação OWIN nesse caso. (Talvez você use Katana para isso)
Ok, entendi que, se eu quiser criar um site ASP.NET MVC, não tenho a opção de substituir o IIS, então por que preciso saber sobre Katana neste momento?
Resposta: Embora o Katana não seja maduro o suficiente para substituir a necessidade do IIS, para que você possa hospedar seu site ASP.NET MVC diretamente no Katana, o Katana implementou muitas interfaces interessantes do OWIN, para que você possa aproveitar o uso desses recursos. ao lado. Por exemplo, permitir que seus usuários façam login usando o Facebook, Google, Twitter etc. não era muito fácil antes. O Katana oferece muitos ganchos (como um middleware) para que você possa permitir que o Katana cuide da autenticação externa baseada em mídia social facilmente sem escrever código de encanamento. Existem muitos outros benefícios no uso do Katana que você pode descobrir ao começar a usar essa tecnologia.