J'ai lu de nombreux articles sur les projets OWIN et Katana, mais je n'ai pas pu en avoir une vue d'ensemble.
Pour un développeur Web normal qui utilise ASP.NET:
- Qu'est-ce que OWIN et quels sont les problèmes qu'il résout (en termes simples). Quelle est sa relation avec IIS?
- OWIN remplace-t-il IIS? sinon, dans quelles situations OWIN convient-il le mieux?
- Comment OWIN pourrait-il m'aider dans mes projets de travail quotidiens?
- Comment OWIN pourrait-il m'aider dans un projet d'auto-amélioration?
Réponses:
Concernant le commentaire ci-dessus, OWIN n'est pas un cadre. OWIN est une spécification sur la façon dont les serveurs Web et les applications Web doivent être construits afin de les découpler et permettre le déplacement des applications ASP.NET vers des environnements qui n'étaient pas pris en charge auparavant.
Avant OWIN, lors de la création d'une application ASP.NET, vous étiez intrinsèquement lié à IIS en raison de la forte dépendance à l'
System.Web
assembly.System.Web
est quelque chose qui existe depuis ASP (version non .NET) et contient en interne de nombreuses choses dont vous pourriez même ne pas avoir besoin (comme les formulaires Web ou l'autorisation d'URL), qui par défaut s'exécutent toutes à chaque demande, consommant ainsi des ressources et rendant ASP Les applications .NET sont en général beaucoup plus lentes que leurs homologues telles que Node.js par exemple.OWIN lui-même ne dispose d'aucun outil, bibliothèque ou autre. Ce n'est qu'une spécification.
Katana, d'autre part, est un cadre entièrement développé conçu pour faire le pont entre les cadres ASP.NET actuels et la spécification OWIN. À l'heure actuelle, Katana a adapté avec succès les cadres ASP.NET suivants à OWIN:
ASP.NET MVC et Web Forms s'exécutent toujours exclusivement via System.Web, et à long terme, il est également prévu de les découpler.
D'un autre côté, IIS est un bon hôte plein de ressources pour les serveurs Web. Les problèmes de performances ASP.NET entiers à l'aide d'IIS ont des racines profondes
System.Web
uniquement. Jusqu'à une date récente, pour décider comment allez-vous héberger votre serveur Web, vous aviez deux options:Donc, si vous vouliez une performance, vous opteriez pour une option d'auto-hébergement. Si vous vouliez beaucoup de fonctionnalités prêtes à l'emploi qu'IIS fournit, vous opteriez pour IIS mais vous perdriez sur les performances.
Maintenant, il y a une 3ème option, une bibliothèque Microsoft nommée Helios (nom de code actuel) qui a l'intention de supprimer
System.Web
à l'écart et de vous permettre d'utiliser IIS de manière plus "propre", sans bibliothèques ou modules inutiles. Helios est maintenant en version préliminaire et attend plus de commentaires de la communauté afin de le rendre pleinement compatible avec les produits Microsoft.J'espère que cette explication clarifie mieux les choses pour vous.
EDIT (sept. 2014):
Avec ASP.NET vNext en cours de développement, Katana se retire lentement. La version 3.0 sera probablement la dernière version majeure de Katana en tant que framework autonome.
Cependant, tous les concepts introduits avec Katana sont en cours d'intégration dans ASP.NET vNext, ce qui signifie que le modèle de programmation sera à peu près le même. Citation d'un article de forum rédigé par David Fowler (architecte d'ASP.NET vNext):
EDIT (février 2015):
ASP.NET vNext est désormais connu sous le nom d'ASP.NET 5 et sera construit au-dessus de .NET Core 5. .NET Core 5 est une version factorisée légère de .NET Framework, conçue pour prendre en charge les objectifs d'ASP.NET 5 et .NET Native . Cependant, ASP.NET 5 sera également pris en charge par .NET Framework 4.6, qui devrait devenir disponible avec .NET Core 5. ASP.NET 5 et .NET Core 5 seront tous deux sous licence MIT et accepteront les contributions de la communauté.
EDIT (mai 2015):
De plus, la marque de l'API Web ASP.NET sera abandonnée, mais sa technologie sera à la base du nouveau ASP.NET MVC 6. Les versions précédentes d'ASP.NET MVC ont été construites en implémentant IHttpHandler, une interface définie dans
System.Web
. ASP.NET MVC 6 supprime cette dépendance, la rendant portable sur diverses plates-formes et serveurs Web.EDIT (mai 2016):
ASP.NET 5 sera officiellement renommé ASP.NET Core à partir de la version Release Candidate 2 qui devrait être publiée prochainement. Il en sera de même pour Entity Framework 7 qui sera renommé Entity Framework Core. Plus d'informations sur l'annonce officielle et les raisons de cette annonce peuvent être trouvées sur le blog de Scott Hanselman: ASP.NET 5 est mort - Présentation d'ASP.NET Core 1.0 et .NET Core 1.0
EDIT (mai 2016):
Avec la sortie de Release Candidate 2, ASP.NET Core a été modifié afin que les futures applications Web ne soient en fait que la configuration des applications de console .NET Core pour traiter les demandes HTTP entrantes . Ce concept rend ASP.NET Core encore plus aligné sur l'approche adoptée par Microsoft avec la prise en charge de l'architecture des microservices et son implémentation via Azure Service Fabric. Plus d'informations sur peuvent être trouvées sur le blog officiel: Annonce d'ASP.NET Core RC2
la source
Si je dois définir OWIN pour moi-même, ce serait: "Les meilleures idées des communautés de développeurs Web Ruby et Node.js, à venir sur .NET"
Mais cela n'aiderait aucun développeur ASP.NET. Ma propre définition serait quelque chose comme:
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 serveur et application. Si je dois répondre aux questions que vous avez posées, alors voici:
OWIN est une spécification d'interface. Il dissocie une application Web d'IIS.
Si vous utilisez des composants prêts à l'emploi (ce qu'est Katana), certaines parties des fonctionnalités de l'application sont beaucoup plus faciles à mettre en œuvre par rapport à l'ancien ASP.NET. L'authentification auprès de fournisseurs d'identité tiers (Facebook, Twitter) en est un exemple.
la source
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 que OWIN et quels sont les problèmes qu'il résout (en termes simples). Quelle est sa relation avec IIS? OWIN ( Open Web Interface for .NET ) est une norme ( spécification OWIN ) et Katana est une bibliothèque .NET, vous pouvez obtenir un nuget à partir d'ici . OWIN et Katana sont devenus quelque peu synonymes sur le Web.
Avant OWIN, votre seule option était
IIS
avec OWIN, vous pouvez utiliser n'importe quelle autre application (qui a un point d'entrée) comme 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 un
Microsoft.Owin.Host.SystemWeb
nuget pour cela . Il convient mieux 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, disons, de l'application Windows Forms.Comment OWIN pourrait-il m'aider dans mes projets de travail quotidiens?
Cela pourrait réduire les coûts de fonctionnement de votre serveur car 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 l'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 le fonctionnement de la communication HTTP entre le client et le serveur Web.Bonne lecture si vous voulez en savoir plus sur ce qu'est Katana et OWIN.
la source
Qu'est-ce que 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 doivent interagir avec les serveurs Web. Le but de 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 prenant en charge OWIN. De plus, il simplifie le système global car la couche d'abstraction peut fournir une infrastructure légère pour héberger les applications. IIS fournit un riche ensemble de fonctionnalités aux applications Web. Cependant, les applications Web peuvent ne pas avoir besoin de toutes ces fonctionnalités. Il pourrait leur être suffisant d'avoir des capacités de traitement HTTP minimales. L'hôte compatible OWIN peut fournir un tel environnement d'hébergement à ces applications. De plus, vous pouvez définir un pipeline de modules utilisés lors du traitement de la demande. Un pipeline OWIN est une chaîne de composants compatibles OWIN à travers laquelle passe une demande.
Qu'est-ce que Katana?
Katana est un ensemble de composants de Microsoft construits selon les spécifications OWIN. Certains de ces composants incluent l'API Web, ASP.NET Identity et SignalR.
Ci-dessus est extrait de l'article CodeGuru: http://www.codeguru.com/csharp/.net/net_asp/overview-of-owin-and-katana.htm
la source