341 votes

Comment expliquer Katana et OWIN dans des mots simples et des usages?

J'ai lu de nombreux articles sur le OWIN et Katana projets, mais je ne pouvais pas obtenir la totalité de l'image.

Normal d'un développeur web qui utilise ASP.NET:

  1. Qu'est-ce exactement OWIN et quels sont les problèmes liés à résoudre (dans des mots simples). Quelle est sa relation avec IIS?
  2. Ne OWIN remplacer IIS? si non, dans quelles situations OWIN meilleur ajustement?
  3. Comment pourrait-OWIN m'aider dans mon travail quotidien des projets?
  4. Comment pourrait-OWIN m'aider dans une auto-projets d'amélioration?

416voto

Barisa Puter Points 2742

Concernant le commentaire ci-dessus, OWIN est pas un cadre. OWIN est une spécification des serveurs web et des applications web doit être construit afin de dissocier l'un de l'autre et permettre le mouvement de ASP.NET les applications pour les environnements où l'état actuel il n'est pas possible.

Avant OWIN, lorsque vous êtes en bâtiment ASP.NET application, vous êtes inheritedly lié à IIS en raison de la lourde dépendance à l'égard du Système.Web de l'assemblée.

Système.Le Web est quelque chose qui existe depuis ASP (non .Version NET) et en interne contient beaucoup de choses que vous pourriez même pas besoin (comme les Formulaires Web ou l'Autorisation d'URL), qui, par le défaut d'exécuter à chaque demande, donc de consommer les ressources et de les rendre ASP.NET les applications en général beaucoup plus lent que ses homologues, à savoir Node.js.

Donc, OWIN même ne dispose pas de tous les outils, les bibliothèques ou quoi que ce soit d'autre. C'est juste un cahier des charges.

Katana d'autre part, est entièrement développé cadre de faire un pont entre le courant ASP.NET cadres et OWIN spécification. Pour le moment, Katana, a adapté la suite ASP.NET cadres d'OWIN:

  • Web API
  • Signal R

ASP.NET MVC et Web Forms sont toujours en cours d'exécution exclusivement via le Système.Web, et dans le long terme, il est prévu d'en dissocier de ceux aussi bien.

D'autre part, IIS est bon, plein de ressources d'accueil pour les serveurs web. Ensemble ASP.NET problème de performance avec l'aide de IIS a des racines profondes dans le Système.Web seulement. Jusqu'à la période récente, au moment de décider comment vous hébergez votre serveur web, vous avez deux options:

  • IIS
  • Auto-Hébergement

Donc si vous voulez une performance, vous aller pour l'auto-hôte de l'option. Si vous voulait beaucoup de dehors-de-le-boîte de fonctionnalités de IIS, vous aller pour IIS mais vous délierez sur la performance.

Maintenant, il y a une 3ème option, une bibliothèque Microsoft nommé Helios actuel (nom de code), qui vise à supprimer du Système.Web, et vous permettent d'utiliser IIS sur plus "propre", sans inutiles bibliothèques ou des modules. Helios est maintenant en pré-version, et est en attente de plus de commentaires de la communauté afin de la rendre totalement prises en charge de Microsoft produit.

Espérons que cette explication clarifie les choses mieux pour vous.

EDIT:

Avec ASP.NET vNext être dans le développement, le Katana est lentement en train d'arriver à la retraite. La Version 3.0 sera probablement la dernière version majeure de Katana comme un cadre autonome.

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

vNext est le successeur de Katana (c'est pourquoi elles se ressemblent). Katana est le début de la rupture du Système.Web et à plus composants modulaires pour le web de la pile. Vous pouvez voir vNext comme un la poursuite de ce travail, mais va beaucoup plus loin (CLR, nouveau Projet Système de, nouveaux http abstractions).

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

72voto

Slavo Points 5585

Si je dois définir OWIN pour moi, ce serait: "Les meilleures idées de Ruby et Node.js web dev communautés, à venir .NET"

Mais cela n'aide pas du tout ASP.NET développeur. Ma propre définition pourrait être quelque chose le long des lignes de:

OWIN est un ensemble de pratiques et de bibliothèques qui permettent d'acquérir le contrôle sur toutes les parties de votre cycle de vie d'application. Il fournit des crochets pour un développeur d'avoir un impact sur l'environnement d'exécution de l'application, et pas seulement l'application elle-même. Il vous permet également de mettre en œuvre des fonctionnalités personnalisées et de le brancher dans le pipeline à tout moment dans le cycle de vie de demande.

Si je dois répondre aux questions que vous avez posées, alors ici, c'est:

  1. OWIN est un cadre qui permet de raccorder et de contrôle de l'environnement d'hébergement et de pipeline de demande de votre application. Il peut remplacer IIS tout à fait, ou de travailler avec elle de l'autre côté.
  2. OWIN peut remplacer IIS, mais n'a pas besoin d'. Il peut brancher des composants dans toutes les parties de la canalisation. Certains de ces peut être un processus hôte pour les web app (qui remplacerait IIS), mais d'autres peuvent être des fonctionnalités supplémentaires (comme l'authentification). C'est tout pour le développeur.
  3. Si vous êtes à l'aide de prêt-à-composants (qui est ce Katana est), puis de certaines parties de l'application, les fonctionnalités sont beaucoup plus faciles à mettre en œuvre par rapport par rapport à l'ancien ASP.NET. L'authentification avec les tiers fournisseurs d'identité (Facebook, Twitter) en est un exemple.
  4. OWIN est essentiellement un ensemble de meilleures pratiques qui ont fait leurs preuves dans le développement web communautés. Il montre une façon de mettre en œuvre des applications web qui est très ouvert à l'extensibilité. Comme chaque développeur web doit être constamment à la pointe des nouvelles technologies, c'est une façon de rester à jour avec l'ensemble de la communauté des développeurs web, et pas seulement .NET. Si vous apprenez OWIN, il serait beaucoup plus facile à apprendre d'autres cadres de développement web comme Express pour node.js ou Rack pour Ruby, parce que les pratiques qu'ils utilisent sont similaires.

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