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
}
}
}
Oui c'est vrai. OWIN est une interface et Katana est une implémentation de l'interface OWIN par Microsoft . Par conséquent, nous entendons ces 2 mots (OWIN / KATANA) ensemble et souvent nous nous confondons entre la différence entre ces 2 termes. Ainsi, Katana est l'implémentation de Microsoft de l'interface OWIN. Imaginons qu'une autre société nommée BIG-BOSS veuille créer sa propre implémentation de OWIN, ils peuvent le faire et nommer leur implémentation comme 'BATANA' et annoncer des expressions comme OWIN / BATANA.
Alors, pourquoi OWIN !!!
Pensez à un pays où le seul véhicule disponible pour se déplacer est un camion. Rien d'autre. Si vous voulez acheter un véhicule, vous achèteriez un camion. Eh bien, cela servait autrefois bien, mais les gens ont commencé à se rendre compte qu'ils n'avaient pas besoin de camion tout le temps, surtout quand ils veulent aller voir un film ou acheter du lait, conduire un camion lourd coûte non seulement beaucoup de carburant, mais aussi ajouter du stress à la conduite. Mais oui, s'ils veulent transporter beaucoup de choses lourdes, le camion sert très bien le but.
Ensuite, le gouvernement de ce pays a proposé une spécification pour les constructeurs automobiles. La spécification est la suivante:
- Un véhicule doit avoir 4 roues
- Un véhicule doit avoir une direction.
- Un véhicule doit avoir des phares et des feux de signalisation.
Ainsi, sur la base de ces spécifications, n'importe qui peut fabriquer un véhicule selon différents besoins et il peut nommer son véhicule en conséquence. Par conséquent, Sedan, Pickup Truck, SUV, VAN, ..etc .. toutes sortes de véhicules sont apparus sur le marché. Si quelqu'un n'a pas besoin de transporter des objets lourds tout le temps, a plutôt besoin d'un véhicule juste pour se rendre au travail, il peut acheter une petite berline. Quelqu'un peut acheter un SUV s'il a besoin d'un peu plus de puissance.
Sur la base de l'exemple ci-dessus, nous pouvons dire que notre application Web ASP.NET utilise System.Web Assembly qui est lourdement chargé (comme un camion) et si nous voulons créer une petite application Web où notre but est simplement de servir des fichiers basés sur un petit ensemble de demandes, nous sommes tenus d'utiliser cet assemblage System.Web lourd (camion). Maintenant, OWIN apparaît. OWIN est un ensemble de spécifications (on peut l'appeler interface) qui définit un serveur. Sur la base de cette spécification, quelqu'un (comme un constructeur de véhicules) peut créer différents types de serveurs en fonction de domaines de problèmes / d'applications spécifiques. Microsoft a créé sa propre implémentation pour OWIN nommée Katana de la même manière qui peut servir d'API Web. Comme WebAPI est une technologie légère, qui ne nécessite pas de système complet.
Maintenant, si vous demandez: « En ai-je besoin?'? La réponse est: «Cela dépend de votre besoin de performances». Si cela ne vous dérange pas de conduire votre camion même pour aller regarder un film, alors, vous n'avez peut-être pas besoin d'OWIN. Mais si vous le sentez, une berline légère est tout ce dont vous avez besoin pour conduire dans une ville, sur une petite distance, regarder un film ... etc. Oui, vous pouvez vérifier quelles implémentations d'OWIN sont disponibles sur le marché. Katana est l'une des implémentations d'OWIN, vous pouvez donc vérifier ce que Katana offre. Non seulement Katana, si une autre entreprise implémente OWIN selon un domaine spécifique (par exemple, un serveur pour les dispositifs médicaux qui téléchargera les dernières informations sur les médicaments) et si vous êtes médecin, vous pouvez peut-être vérifier cette implémentation d'OWIN. De plus, vous pouvez vous-même créer votre propre implémentation d'OWIN en ciblant n'importe quel créneau spécifique.
En termes d'applications Web, si vous êtes un simple développeur Web, développant peut-être des sites Web personnalisés pour vos clients, vous n'avez pas à vous soucier de la mise en œuvre personnalisée des OWIN, car IIS vous servira de manière équilibrée. Si vous créez un projet d'API Web, vous obtiendrez un modèle basé sur Katana prêt à l'emploi à partir de Visual Studio -> Nouveau projet, de sorte que vous n'aurez à vous soucier de rien d'autre que d'apprendre des techniques spécifiques à Katana. À l'heure actuelle, Katana n'est pas suffisamment mature pour remplacer complètement le besoin d'IIS pour ASP.NET MVC, mais peut-être que ce sera le cas à l'avenir.
Alors quand dois-je écrire ma propre implémentation OWIN?
Réponse: Eh bien, disons par exemple que vous avez développé une application Windows qui devrait fonctionner en tant que serveur en arrière-plan et écouter un numéro de port XXXX. Votre serveur ne répondra qu'à un ensemble de demandes comme celui-ci:
- GET Inventory
- SUPPRIMER ID inventaire = 4
- ID d'inventaire PUT = 5
C'est tout. Et rien d'autre. Alors, pourquoi auriez-vous besoin d'un serveur Web IIS complet pour cette petite tâche? Vous pouvez créer votre propre implémentation OWIN dans ce cas. (Peut-être, vous utiliserez Katana pour cela)
Ok, j'ai donc compris que si je veux créer un site Web ASP.NET MVC, je n'ai pas la possibilité de remplacer IIS, alors pourquoi devrais-je avoir besoin de connaître Katana en ce moment?
Réponse: Même si Katana n'est pas suffisamment mature pour remplacer le besoin d'IIS afin que vous puissiez héberger votre site Web ASP.NET MVC directement sur Katana, mais Katana a implémenté de nombreuses interfaces intéressantes d'OWIN afin que vous puissiez profiter de l'utilisation de ces fonctionnalités. de côté. Par exemple, autoriser vos utilisateurs à se connecter en utilisant Facebook, Google, Twitter, etc. n'était pas très facile auparavant. Katana vous offre de nombreux crochets (en tant que middleware) afin que vous puissiez laisser Katana s'occuper de l'authentification basée sur les médias sociaux externes facilement sans écrire de code de plomberie. L'utilisation de Katana présente de nombreux autres avantages que vous découvrirez peut-être lorsque vous commencerez à utiliser cette technologie.