36 votes

ASP.NET vNext est agnostique pour l'hôte, qu'est-ce que cela signifie profondément?

Selon le didacticiel ASP.NET vNext : vNext is host agnostic . You can host your app in IIS, or self-host in a custom process

Quelqu'un pourrait-il m'aider à comprendre cela en montrant clairement la différence entre l'hôte actuel asp.net et le nouvel hôte?

65voto

Eilon Points 12589

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/

-1voto

Omega Points 2024

En gardant à l'esprit que vNext est encore un très colorés objet en mouvement rapide, comme les choses se présentent actuellement, c'est une sorte de "moitié" de l'hôte agnostique.

Le middleware spec qu'il définit et applique autorise une interface très générique pour organiser les programmes. Donc la manière de développer est la même. Mais vNext applications sont eux-mêmes serveurs et d'une manière étrange, sont actuellement tenus d'inclure la colle bibliothèques pour le type de serveur que vous utilisez.

Vous pouvez observer ce en voyant que vous devez fournir ce type de serveur que vous souhaitez utiliser à l'intérieur de votre project.json le fichier. Si vNext projets ont été vraiment agnostique, vous sélectionnez un serveur au niveau des systèmes et le point, de monter ou de lancer votre application à partir du serveur choisi.

C'est un peu compliqué en raison des cycles de vie concernées, après vous avez terminé d'ici, je vous encourage à la tête de plus à cette github question sur le vNext projet où je suis en train de prôner une véritable découplé de la conception.

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