Comment expliquer Katana et OWIN en mots simples et utilisations?

J'ai lu de nombreux articles sur les projets OWIN et Katana, mais je n'ai pas pu en avoir une idée complète.

Pour un développeur web normal qui utilise ASP.NET:

  1. qu'est-ce QU'OWIN exactement et quels problèmes résout-il (en termes simples). Quelle est sa relation avec IIS?
  2. OWIN remplace-t-il IIS? sinon, dans quelles situations OWIN convient-il le mieux?
  3. Comment OWIN pourrait-il m'aider dans mes projets de travail quotidiens?
  4. Comment OWIN pourrait-il m'aider à m'améliorer les projets?
301
demandé sur SethO 2013-12-11 20:05:19

4 réponses

En ce qui concerne le commentaire ci-dessus, OWIN n'est pas un framework. OWIN est une spécification sur la façon dont les serveurs web et les applications web doivent être construits afin de découpler les uns des autres et de permettre le mouvement de ASP.NET applications dans des environnements où, à l'état actuel, ce n'est pas possible.

Avant OWIN, lorsque vous construisez ASP.NET application, vous êtes lié par héritage à IIS en raison de la forte dépendance au système.Web de l'assemblée.

Système.Web est quelque chose qui existe depuis ASP (version non. net) et contient en interne beaucoup de choses dont vous n'avez peut-être même pas besoin (telles que les formulaires Web ou L'autorisation D'URL), qui s'exécutent par défaut sur chaque requête, consommant ainsi les ressources et faisant ASP.NET les applications en général beaucoup plus lent que ses homologues à savoir noeud.js.

Donc OWIN lui-même n'a pas d'outils, de bibliothèques ou autre chose. C'est juste un cahier des charges.

Katana d'autre part, est un cadre entièrement développé fait pour faire un pont entre courant ASP.NET cadres et spécifications OWIN. À l'heure actuelle, Katana a adapté avec succès ce qui suit ASP.NET cadres à OWIN:

  • API Web
  • Signal R

ASP.NET les formulaires MVC et Web sont toujours en cours d'exécution exclusivement via le système.Web, et à long terme, il y a un plan pour les découpler aussi bien.

D'autre part, IIS est un bon hôte ingénieux pour les serveurs web. Entier ASP.NET le problème de performance avec l'utilisation D'IIS a des racines profondes dans le système.Web seulement. Jusqu'à récemment, au moment de décider comment allez-vous héberger votre serveur web, vous aviez deux options:

  • IIS
  • Auto-Hôte

Donc, si vous vouliez une performance, vous opteriez pour l'option Auto-hôte. Si vous vouliez beaucoup de fonctionnalités prêtes à L'emploi qu'IIS fournit, vous opteriez pour IIS mais vous perdriez en performance.

Maintenant, il existe une 3ème option, une bibliothèque Microsoft nommée Helios (nom de code actuel) qui a l'intention de supprimer System.Web hors du chemin, et vous permettent D'utiliser IIS de manière plus "plus propre", sans bibliothèques ou modules inutiles. Helios est maintenant en version pré-version, et attend plus de commentaires de la communauté afin de rendre le produit Microsoft entièrement pris en charge.

J'espère que cette explication clarifie les choses mieux pour vous.

Modifier (Sep 2014):

Avec ASP.NET vNext étant en développement, Katana se retire lentement. La Version 3.0 sera probablement la dernière version majeure de Katana en tant que version autonome Framework.

Cependant, tous les concepts introduits avec Katana sont intégrés dans ASP.NET vNext, ce qui signifie que le modèle de programmation sera à peu près le même. Citation de post forum faite par David Fowler (architecte de ASP.NET vNext):

VNext est le successeur de Katana (c'est pourquoi ils ressemblent tellement). Katana était le début de la rupture du système.Web et à plus composants modulaires pour la pile web. Vous pouvez voir vNext comme un continuation de ce travail mais allant beaucoup plus loin (nouveau CLR, nouveau projet Système, nouvelles abstractions http).

Tout ce qui existe aujourd'hui dans Katana fera son chemin dans vNext.

Modifier (fév 2015):

ASP.NET vNext est maintenant connu comme ASP.NET 5 et sera construit sur le dessus de. net Core 5. . Net Core 5 est une version allégée de. NET Framework, conçue pour soutenir les objectifs de ASP.NET 5 et. NET natif. Cependant, ASP.NET 5 sera pris en charge par. Net Framework 4.6 comme Eh bien, cela devrait devenir disponible avec. net Core 5. Les deux ASP.NET 5 et. NET Core 5 seront sous licence MIT et accepteront les contributions de la communauté.

Modifier (peut 2015):

En outre, ASP.NET la marque de L'API Web sera abandonnée, mais sa technologie sera la base de nouvelles ASP.NET MVC 6. Précédent ASP.NET les versions MVC ont été construites en implémentant IHttpHandler, une interface définie dans System.Web. ASP.NET MVC 6 supprime cette dépendance, le rendant portable à diverses plates-formes et serveurs web.

Modifier (peut 2016):

ASP.NET 5 sera officiellement renommé en ASP.NET noyau commençant par Release Candidate 2 qui devrait être publié bientôt. Il en va de même pour Entity Framework 7 qui sera renommé Entity Framework Core. Plus d'informations sur l'annonce officielle et les raisons derrière elle peuvent être trouvées sur le blog de Scott Hanselman: ASP.NET 5 est mort-Introduction ASP.NET Core 1.0 et. net Core 1.0

Modifier (peut 2016):

Avec la libération de Release Candidate 2, ASP.NET Core a été modifié afin que les futures applications web ne soient en fait que des applications de console. net Core configurées pour traiter les requêtes HTTP entrantes. Ce concept fait ASP.NET Core encore plus aligné avec l'approche Microsoft a pris en charge l'architecture microservices et sa mise en œuvre via Azure Service Fabric. Plus d'informations sur peut être trouvé sur le Blog Officiel post: annonce ASP.NET Noyau RC2

357
répondu Admir Tuzović 2017-02-23 13:41:16

Si je dois définir OWIN pour moi - même, ce serait: "les meilleures idées du Ruby et du nœud.js web dev communautés, venir à. Net "

Mais cela n'aiderait pas ASP.NET développeur. Ma propre définition serait quelque chose du genre:

OWIN définit une interface standard entre les serveurs web. net et les applications web. Le but de L'interface OWIN est de découpler le serveur et l'application Si je dois répondre aux questions que vous avez posées, alors voici est:

  1. OWIN est une spécification d'interface. Il découpleune application web de IIS.

  2. Si vous utilisez des composants prêts à l'emploi (Ce Qui Est ce que Katana est), certaines parties de la fonctionnalité de l'application sont beaucoup plus faciles à mettre en œuvre par rapport à l'ancienne ASP.NET. L'authentification avec des fournisseurs d'identité tiers (Facebook, Twitter) en est un exemple.

  3. OWIN est essentiellement une collection de meilleures pratiques, qui ont été prouvées dans le web communautés de développement. Il montre un moyen d'implémenter des applications web qui est très ouvert à l'extensibilité. Comme chaque développeur web devrait constamment être à la pointe des nouvelles technologies, c'est une façon de rester à jour avec toute la communauté de développement web et pas seulement .NET. si vous apprenez OWIN, il serait beaucoup plus facile d'apprendre d'autres frameworks de développement web comme Express for node.js ou Rack pour Ruby, car les pratiques qu'ils utilisent sont similaires.
71
répondu Slavo 2015-04-15 15:53:05

, je vais essayer de le couvrir du point de vue pratique.

Katana est le nom du projet pour implémenter OWIN dans Microsoft.

Qu'est-ce QU'OWIN exactement et quels problèmes résout-il (en termes simples). Quelle est sa relation avec IIS? OWIN (Open Web Interface for. NET ) est une norme (Spécification OWIN ) et Katana est la bibliothèque. Net, vous pouvez obtenir nuget à partir d'ici . OWIN et Katana sont devenus un peu synonymes sur le web.
Avant d'OWIN votre seule option était IIS avec OWIN, vous pouvez utiliser n'importe quelle autre application (qui a un point d'entrée) en tant que serveur web.

OWIN remplace-t-il IIS? sinon, dans quelles situations OWIN convient-il le mieux?
Non, il ne remplace pas IIS, vous pouvez utiliser OWIN et IIS Il y a Microsoft.Owin.Host.SystemWeb nuget pour cela . Il est préférable si vous souhaitez optimiser/modifier la façon dont il est géré dans IIS, ou si vous souhaitez créer votre serveur web personnalisé à partir de l'Application Windows Forms.

Comment pourrait OWIN m'aider dans mes projets de travail quotidien?
Cela pourrait réduire les coûts d'exécution de votre serveur puisque vos serveurs web n'ont plus besoin de fonctionner sur IIS (Windows) (les serveurs Windows sont plus chers que ceux basés sur Unix, et vous pouvez l'exécuter sur une Application Console sous Mono sous Linux).

Comment OWIN pourrait-il m'aider dans un projet d'auto-amélioration?
L'apprentissage Microsoft.Owin (et d'autres bibliothèques OWIN connexes) améliorera vos connaissances sur la façon dont la communication HTTP entre le client et le web le serveur fonctionne.

Bonne lecture si vous voulez comprendre plus sur ce que Katana et OWIN est.

52
répondu Matas Vaitkevicius 2014-12-05 11:39:01

Qu'est-ce QU'OWIN?

OWIN signifie Open Web Interface for. NET. OWIN est une spécification qui décrit comment les frameworks de développement web tels que ASP.NET MVC doit interagir avec les serveurs web. Le but D'OWIN est de découpler les applications web du serveur web en introduisant une couche d'abstraction. Une telle abstraction vous permet d'exécuter la même application sur tous les serveurs web qui prennent en charge OWIN. En outre, il simplifie le système global parce que l'abstraction la couche peut fournir une infrastructure légère pour héberger les applications. IIS fournit un riche ensemble de fonctionnalités pour les applications web. Cependant, les applications web peuvent ne pas avoir besoin de toutes ces fonctionnalités. Il peut être suffisant pour eux d'avoir des capacités de traitement HTTP minimales. OWIN hôte compatible peut fournir un tel environnement d'hébergement à ces applications. De plus, vous pouvez définir un pipeline de modules qui sont utilisés pendant le traitement de la demande. Un pipeline OWIN est une chaîne de OWIN compatible composants par lesquels passe une requête.

Qu'est-ce que Katana?

Katana est un ensemble de composants par Microsoft construit en utilisant les spécifications OWIN. Certains de ces composants incluent L'API Web, ASP.NET identité et SignalR.

Ci-dessus est extrait de L'Article CodeGuru: http://www.codeguru.com/csharp/.net/net_asp/overview-of-owin-and-katana.htm

7
répondu Venkatesh Muniyandi 2016-07-28 07:17:40