268 votes

Quand devrais-je utiliser OWIN Katana?

Je suis nouveau à OWIN et Katana. Je ne comprends vraiment pas pourquoi je devrais utiliser OWIN, alors que je peux utiliser IIS . Pour simplifier, ma question est: Qu'est-ce que je perds si je saute l'apprentissage d'OWIN et utilise IIS pour mes sites Web?

J'ai googlé mais il n'y a pas une explication simple. Il y a quelques informations ici , mais ils utilisent des expressions de jargon, donc je ne peux pas le comprendre.

276voto

Stephane Points 4258

Dans asp.net WebApi v2, le OWIN pipeline devient la valeur par défaut. Il va finir par être la norme pipeline en vertu de toute asp.net projet.

Je ne peux pas mieux dire que ce qui est écrit ici : http://www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-project-katana

La section "Ouvrir l'Interface Web .NET (OWIN)" , explique parfaitement les objectifs de OWIN.

Sans OWIN, l'asp.net les bits sont couplés à la façon dont IIS communique avec l'application. OWIN les résumés des serveurs web et des composants de l'infrastructure. Cela signifie que le code de votre application va maintenant être au courant de la OWIN de l'interface, mais pas le serveur qui est de servir la demande.

En retour, les applications peuvent être plus facilement transférées entre les hôtes et potentiellement l'ensemble de plateformes/systèmes d'exploitation. Par exemple, la capacité d'accueil d'une application à une console ou à un autre processus permet Mono pour l'accueillir sans efforts... (Raspberry Pi)

Le deuxième aspect est qu'il fonctionne comme un pipeline.


Owin Pipeline


Vous pouvez brancher n'importe quel middlewares (et autant que vous voulez) entre le serveur web et votre application.
Cela permet d'avoir plus de solutions modulaires. Vous pouvez développer redistribuable middlewares qui peuvent influer sur la demande/réponse de venir vers/à partir de votre application, mais garder ces modules séparés du code de l'application.

Pour-vous convaincre des avantages de cette approche modulaire, jetez un oeil à la nuget packages disponibles pour OWIN : http://www.nuget.org/packages?q=owin

Beaucoup de ces paquets ont été précédemment core asp.net la fonctionnalité, et ont été extraites en tant que middleware.
Par exemple, l'ajout de support pour vous connecter à l'aide de diverses OAuth fournisseurs devient une infrastructure préoccupants " (middleware) et n'a pas besoin d'être partie de votre code d'application plus :

Ou si vous voulez remplacer automatiquement toutes les images de votre site web par chat mignon images, vous pouvez le faire de manière transparente ainsi :

https://github.com/serbrech/Owin.Catify

EDIT : Il est maintenant disponible sous forme de package nuget : Owin.Catify!

207voto

Emran Hussain Points 1196
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 un Katana est une mise en œuvre de OWIN de l'interface de Microsoft. Par conséquent, nous entendons ces 2 mots (OWIN / KATANA) et manytimes nous se confondre entre la différence entre ces 2 termes. Donc, le Katana est l'implémentation de Microsoft OWIN interface. Dire qu'il y a une autre compagnie qui s'appelle BIG-BOSS qui ont voulu créer leur propre mise en œuvre de OWIN, ils peuvent le faire et le nom de leur mise en œuvre comme "BATANA" et de la publicité des phrases comme OWIN / BATANA.

Alors, pourquoi OWIN !!!

Que penser d'un pays où le seul véhicule à la disposition du mouvement est un camion. Rien d'autre. Si vous voulez acheter un véhicule, vous devez acheter un camion. Eh bien, qui a servi de bon, mais les gens ont commencé à réaliser qu'ils n'ont pas besoin de camion tout le temps, spécialement quand ils veulent aller regarder un film ou acheter du lait, de la conduite d'un camion lourd, pas seulement les coûts élevés du carburant, mais aussi ajouter du stress sur la conduite. Mais oui, si ils veulent réaliser beaucoup de lourdes étoffes, camion sert très bien.

Ensuite, le Gouvernement de ce pays est venu avec un cahier des charges pour les constructeurs de véhicules. Le cahier des charges comme suit:

  1. Un véhicule a besoin d'avoir 4 roues
  2. Un véhicule doit avoir un directeur.
  3. Un véhicule doit avoir des phares et feux de signalisation.

Ainsi, sur la base de ces spécifications, n'importe qui peut faire du véhicule selon les besoins différents et qu'ils peuvent nommer leur véhicule en conséquence. Par conséquent, Berline, pick-up, SUV, VAN, ..etc.. tous type de véhicule a montré dans le marché. Si quelqu'un n'a pas besoin de transporter de lourdes fourre tout le temps, plutôt besoin d'un véhicule pour aller au travail, il/elle peut acheter une petite Berline. Quelqu'un peut acheter des SUV s'il a besoin de peu de puissance en plus.

Basé sur l'exemple ci-dessus, nous pouvons dire que notre ASP.NET application Web utilise le Système.Web de l'Assemblée qui est très chargé (comme un camion) et si nous voulons faire une petite Application Web où notre but est simplement de servir des fichiers sur la base d'un petit ensemble de demandes, nous sommes tenus d'utiliser ce Système lourd.Web de l'assemblée (le camion). Maintenant, OWIN. OWIN est un ensemble de spécifications (on peut appeler ça de l'interface), qui définit un Serveur. Basé sur la spécification, quelqu'un (comme un constructeur automobile) peut faire différents types de serveurs basés sur des domaines de problème / besoins de l'application. Microsoft a créé leur propre mise en Œuvre pour OWIN nommé Katana de la même façon qui peut vous servir de l'API Web. Comme WebAPI est un poids léger de la technologie, qui n'a pas besoin de full blown Système.Web les choses, un peu de poids à la mise en œuvre de Serveur (comme le Katana) peuvent stimuler la performance fortement lorsque vous utilisez l'Api Web hébergé sur un Katana.

Maintenant, si vous demandez, 'j'ai besoin de lui' ? La réponse est "Cela dépend de votre besoin de performance". Si vous ne vous occupez de la conduite du camion, même pour aller regarder un film, puis, peut-être que vous n'avez pas besoin d'OWIN. Mais si vous sentez que, d'un poids léger Berline est tout ce que vous devez lecteur à l'intérieur d'une ville, à une petite distance, regarder un film..etc.. oui, Vous pouvez vérifier les implémentations de OWIN disponibles sur le marché. Katana est l'un de la mise en œuvre de OWIN, vous pouvez donc vérifier ce Katana offre. Non seulement Katana, si une autre entreprise met en œuvre des OWIN selon le Domaine spécifique (par exemple, un serveur pour les Dispositifs Médicaux qui va télécharger la dernière information sur la médecine) et si vous êtes un médecin, peut-être, vous pouvez vérifier que la mise en œuvre de OWIN. En outre, vous pouvez vous-même créer votre propre mise en œuvre de OWIN cibler un créneau spécifique.

En termes d'applications web, si vous êtes un simple développeur Web, développement de Sites web personnalisés pour vos clients, peut-être, vous n'avez pas besoin de s'inquiéter à propos de la coutume de la mise en œuvre de OWINs, car IIS server vous de manière équilibrée. Si vous construisez un projet d'API Web, vous obtiendrez Katana modèle basé sur un prêt à partir de Visual Studio -> Nouveau Projet, de sorte que vous n'aurez pas à vous soucier de rien d'autre que l'apprentissage de Katana techniques spécifiques. À ce moment, le Katana n'est pas assez mature pour remplacer complètement la nécessité pour les services internet (IIS ASP.NET MVC, mais peut-être, dans l'avenir, il sera.

Puis, Lorsque j'ai peut-être besoin d'écrire mon propre OWIN mise en Œuvre ?

Réponse: eh Bien, disons par exemple, vous avez développé une application Windows qui devrait fonctionner en tant que serveur en arrière-plan et d'écouter un numéro de port XXXX. Votre serveur va répondre à certaines Demandes considérées comme ceci:

  1. OBTENEZ de l'Inventaire
  2. SUPPRIMER de l'Inventaire ID=4
  3. L'Inventaire ID=5

C'est tout. Et rien d'autre. Alors, pourquoi auriez-vous besoin d'un serveur web IIS pour cette tâche peu ? Vous pouvez créer votre propre OWIN mise en œuvre dans ce cas. (Peut-être, vous allez utiliser Katana pour ça)

Ok, j'ai compris que, si je veux faire un ASP.NET MVC site, je n'ai pas l'option pour remplacer IIS, alors pourquoi devrais-je savoir au sujet de Katana en ce moment ?

Réponse: Même si le Katana n'est pas assez mature pour remplacer le besoin de IIS afin que vous pouvez accueillir votre ASP.NET MVC site web directement sur le Katana, mais Katana mis en place de nombreuses interfaces cool de OWIN, de sorte que vous pouvez prendre avantage de l'utilisation de ces fonctionnalités côté par côté. Par exemple, permettant à vos utilisateurs de se connecter en utilisant Facebook, Google, Twitter, etc n'a pas été très facile avant. Katana vous donne de nombreux crochets (middle-ware), de sorte que vous pouvez laisser Katana prendre soin de externe les Médias Sociaux en fonction de l'Authentification facilement sans avoir à écrire de code de plomberie. Il y a beaucoup d'autres avantages à l'aide de Katana que vous pouvez trouver lorsque vous commencez à utiliser cette technologie.

45voto

Lex Li Points 18214

Une version plus simple de la réponse est que le Katana est gong à remplacer complètement le Système.Web de l'assemblée et de la vieille ASP.NET pipeline, qui vous donne une meilleure flexibilité (l'utiliser dans plusieurs scénarios, et de n'utiliser que les pièces que vous voulez) et de la performance.

Donc tout le monde devrait regarder son évolution maintenant et être prêt à changer quand c'est enfin terminé.

Ci-dessous est un schéma que j'ai dessiné pour remplir les détails de Microsoft ne parvient pas à inclure dans cet article.

enter image description here

OWIN est d'une telle norme, qu'il laisse application des cadres de courir sur elle, oubliant tout le reste en dessous. D'autre part, OWIN lui-même utilise divers adaptateurs pour s'assurer qu'il peut parler à la sous-jacentes des serveurs web (IIS et beaucoup d'autres).

Je travaille maintenant avec le Jexus serveur web de l'auteur pour étudier comment on peut écrire un adaptateur hôte à pont OWIN/Katana et Jexus. Nous sommes vraiment heureux d'apprendre que OWIN est flexible et hautement personnalisable.

Référence: http://blog.lextudio.com/2014/06/why-owin-matters-a-lot-for-asp-net-developers/

14voto

nnoor Points 632

Pourquoi je devrais utiliser OWIN, alors que je peux utiliser IIS?

OWIN est conçu de manière à découpler les serveurs web de la cadres de vous travailler. Il peut faire les demandes léger et portable pour le mélange des cadres et des serveurs.

Et Katana est l'implémentation de Microsoft OWIN composants.

Depuis ces quelques dernières années, Microsoft fait des outils du web, plus agile et réactive que leur plan est en cours. Pour un exemple, le développement de ASP.Net MVC et ASP.Net l'API Web. Ils ne dépendent pas du Système.Web dll qui est un énorme fardeau qu'ils se sentent maintenant, je pense. L'avantage est à la fois l'évolution des correctifs peuvent être fournis en temps opportun et le cycle est plus rapide que jamais. Aussi les développeurs peuvent désormais déployer ces applications sur mesure OWIN hôtes ou Katana, qui est une référence de OWIN mise en œuvre.

Quel est le point après tout?

Microsoft a publié un projet qui est un léger OWIN fonction d'accueil web sur IIS, appelé " Helios. L'objectif est d'éviter ASP.NET/IIS relation en offrant des petits composants qui peuvent être utilisés, installés et gérer de manière indépendante, en cours d'exécution sur une web-host qui implémente l'OWIN cahier des charges.

L'une des principales raisons est la performance-facteur. Helios sera en mesure d'atteindre 2x-3x plus de débit que la norme ASP.Net application. En termes de consommation de mémoire, Helios est beaucoup mieux que le Système.Web dll. Dans une prise de référence Helios architecture a permis un exemple d'application pour atteindre 50000 demandes simultanées avec environ 1 go moins de frais généraux comparer à une norme ASP.Net application.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X