L'histoire de ASP.NET hébergement
En 2002, il y avait en gros un serveur web pour la .NET plate-forme, et qui a été IIS. Quelques années plus tard, le Développement Visual Studio Serveur Web ("Cassini", qui faisait autrefois partie de l'original Web de la Matrice) est venu en tant que dev-seul serveur. Mais tout en fin de compte utilisés par le Système.Web en tant que couche d'hébergement entre l'application et le serveur web. Le Système.Hôte Web est étroitement couplée à IIS et est très difficile à exécuter sur d'autres hôtes. Même la mise en œuvre sur le VS Dev Serveur Web est limitée, car elle uniquement pris en charge certaines fonctionnalités. Donc en tant que telle, il n'était encore qu'une production de qualité "accueil" pour les ASP.NET les applications qui dépendent du Système.Web.
Avance rapide d'une décennie et OWIN est venu autour, comme une interface entre les applications et les serveurs web. Cela a permis à tout OWIN application compatible pour parler par OWIN à un serveur web qui a un OWIN-compatible couche d'hébergement. Microsoft a écrit Katana comme un OWIN mise en œuvre, qui pourrait accueillir ASP.NET Web API, ASP.NET SignalR, et de nombreux 3ème partie des cadres sur le dessus de plusieurs serveurs, y compris les services internet (IIS Express), Katana auto-serveur hôte, et la coutume hôtes (c'est à dire exécuter le Katana est l'hôte dans une application personnalisée). Il y a une autre OWIN mise en œuvre appelée Nowin qui devrait être en mesure d'exécuter les mêmes applications que les Katana. Ceci est un exemple de l'hôte à l'agnosticisme.
Maintenant, avance rapide de quelques années et il y a ASP.NET vNext, qui suit un modèle très similaire à OWIN en termes de middleware et d'avoir de l'hôte à l'agnosticisme. ASP.NET vNext a la compatibilité des couches pour OWIN middleware application aussi bien des composants.
ASP.NET vNext hôte de l'agnosticisme
ASP.NET vNext est l'hôte agnostique de la même manière que les Katana et OWIN. Les Applications écrites avec ASP.NET vNext sais seulement sur un hôte de la couche d'abstraction, comme l' IApplicationBuilder
(anciennement IBuilder
) de l'interface. Les Applications ne parlez pas directement sur le serveur web. Une grande partie de cette abstraction est faite à travers les fonctionnalités des "interfaces", de sorte que certains serveurs peuvent mettre en œuvre les fonctionnalités et les autres peuvent choisir de ne pas.
Hébergement Web options
ASP.NET vNext applications peut être hébergé sur IIS, IIS Express, votre propre EXE, dans la nouvelle croix-plate-forme Kestrel serveur, et sans doute de plus en plus les hôtes dans l'avenir.
Ni Katana, ni ASP.NET vNext sont de remplacement pour IIS ou d'autres hôtes, bien qu'ils ne les deux autres serveurs web. IIS prend en charge certaines fonctionnalités plus avancées par rapport à Katana et ASP.NET vNext, telles que les applications de warm-up, plus riche de l'application de gestion du cycle de vie (c'est à dire qu'à faire lorsque l'application se bloque, le contrôle de la quantité de mémoire qu'elle utilise, et d'autres types de limitation), la gestion à distance, et ainsi de suite.
Les avantages de OWIN, ASP.NET vNext, et d'être l'hôte agnostique
Je ne peux pas parler pour les motivations pour la création d'OWIN parce que je n'ai jamais été une partie de ce groupe. Mais les mérites d'avoir un serveur web hôte d'abstraction sont nombreux:
- Pouvez basculer entre les hôtes relativement facilement. Par exemple, il est commun à exécuter localement sur un développement seul serveur qui peut s'exécuter avec les autorisations minimales. Ensuite, sur le déploiement de la production, peut-être plus complet de l'hôte, tels que IIS est utilisé. IIS, cependant, nécessite des autorisations administratives pour installer, qui n'ont pas tous sur leurs postes de travail.
- Plus d'options d'hébergement ne peut pas exister. Chemin du retour dans la journée à cause de la dépendance étroite de ASP.NET sur IIS un seul hôte peut exister, donc il n'y avait effectivement pas de "marché" pour les autres hôtes.
- Certains types de tests sont plus faciles à écrire en ayant un test de la mémoire de l'hôte. C'est très souvent utilisés pour tester l'ensemble de la pile d'une application web, mais sans les appels réseau.
Les motivations pour ASP.NET vNext sont énumérés dans la partie sur l'officiel ASP.NET vNext site dans la prise en main tutoriel. Un bref résumé est: avoir un cross-plateforme, open source, side-by-side, pay-as-you-go, hôte-agnostique plate-forme pour créer des applications web et des services. On dirait une substance de vente, mais ce sont tous des aspects essentiels du système. NodeJS offre assez bien ce même ensemble de fonctionnalités, bien sûr, une fois que vous regardez les détails, il y a évidemment beaucoup de la mise en œuvre des différences et sans doute certains philosophiques plus profondes différences. Les motivations à l'appui de ces caractéristiques sont généralement auto-explicatif.
Public pour ASP.NET
Notez que c'est à propos de l'audience de ASP.NET en général, ce qui comprend tout, de ASP.NET des Formulaires Web, pour MVC, Web API, SignalR, Katana, et ASP.NET vNext. L'un de ces cadres sont adaptés pour tout projet de taille et doit être utilisable par n'importe quel raisonnablement développeur expérimenté. Cela est évident en regardant la taille des projets qui les utilisent. Ce site (StackOverflow.com) est construit en partie à l'aide de ASP.NET MVC, par quelques très avancé développeurs (je suppose), mais il ya beaucoup beaucoup plus petits sites en utilisant MVC construit par une relative novices. ASP.NET vNext est la future version de la plupart de ces mêmes cadres, et comme telle, elle vise le même type de demandes et le même type de développeurs.
Plus d'informations
Pour plus d'info sur ASP.NET vNext et OWIN, découvrez un post de blog à partir d'un des devs: http://whereslou.com/2014/06/10/asp-net-vnext-moving-parts-owin/