web-dev-qa-db-fra.com

A quoi sert le nouveau fichier Startup.cs dans les projets Visual Studio 2013?

Je viens d'installer Visual Studio 2013, j'ai créé un projet d'application Web MVC et j'ai remarqué un nouveau fichier dans le modèle de projet appelé Startup.cs.

Qu'est-ce que c'est, en quoi cela diffère-t-il de Global.asax.cs et existe-t-il de bonnes pratiques recommandées sur l'utilisation de cette information?

54
Mark Redman

Chaque application OWIN a une classe de démarrage dans laquelle vous spécifiez des composants pour le pipeline d'applications.

Si vous démarrez un nouveau projet Visual Studio, vous y verrez des morceaux d'OWIN. OWIN est une spécification qui définit une API pour la structure et les serveurs pour la coopération. Le but d’OWIN est de découpler le serveur et l’application. Par exemple, ASP.NET Identity utilise la sécurité OWIN, l’auto-hébergement SignalR utilise l’hébergement OWIN, etc., les exemples utilisent tous OWIN et doivent par conséquent avoir une classe de démarrage définie dans le fichier "Startup.cs".

Global.asax, le fichier d'application ASP.NET, est un fichier facultatif contenant du code permettant de répondre aux événements au niveau de l'application déclenchés par ASP.NET ou par HttpModules.

Pour plus de détails:

[~ # ~] owin [~ # ~]

http://www.asp.net/aspnet/overview/owin-and-katana

Global.asax

http://msdn.Microsoft.com/en-us/library/1xaas8a2 (v = vs.71) .aspx

Vous pouvez trouver plus d'idées sur pourquoi OWIN dans l'article suivant:

http://www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-project-katana

32
Lin

Le fichier semble être lié à SignalR. Citant le notes de version de VS 201 :

Construit sur OWIN

SignalR 2.0 est entièrement construit sur OWIN (Open Web Interface for .NET). Cette modification rend le processus de configuration de SignalR beaucoup plus cohérent entre les applications SignalR hébergées sur le Web et les applications auto-hébergées, mais a également nécessité un certain nombre de modifications de l'API.

MapHubs et MapConnection sont maintenant MapSignalR

Pour assurer la compatibilité avec les normes OWIN, ces méthodes ont été renommées MapSignalR. MapSignalR appelé sans paramètre mappera tous les hubs (comme MapHubs dans la version 1.x); pour mapper des objets PersistentConnection individuels, spécifiez le type de connexion en tant que paramètre de type et l'extension d'URL de la connexion en tant que premier argument.

La méthode MapSignalR est appelée dans une classe de démarrage Owin. Visual Studio 2013 contient un nouveau modèle pour une classe de démarrage Owin; Pour utiliser ce modèle, procédez comme suit:

  1. Faites un clic droit sur le projet
  2. Sélectionnez Ajouter, Nouvel élément ...
  3. Sélectionnez la classe de démarrage Owin. Nommez la nouvelle classe Startup.cs.

Dans une application Web, la classe de démarrage Owin contenant la méthode MapSignalR est ensuite ajoutée au processus de démarrage d'Owin à l'aide d'une entrée dans le nœud de paramètres d'application du fichier Web.Config, comme indiqué ci-dessous.

Dans une application auto-hébergée, la classe Startup est transmise en tant que paramètre type de la méthode WebApp.Start.

7
user247702

La classe de démarrage est la convention que Katana/OWIN recherche pour initialiser le pipeline. Lorsque votre application démarre, le code à l'intérieur de la fonction Configuration est exécuté pour configurer les composants à utiliser. Dans les modèles MVC 5, il est utilisé pour câbler le middleware d'authentification, qui repose entièrement sur OWIN.

Si vous souhaitez utiliser l'injection de dépendance avec OWIN, consultez ce projet sur GitHub: DotNetDoodle.Owin.Dependencies

6
cecilphillip