Qué es la nueva Startup.archivo cs para proyectos de Visual Studio 2013?


Acabo de instalar Visual Studio 2013, he creado un proyecto de aplicación Web MVC y he notado un nuevo archivo en la plantilla del proyecto llamado Startup.cs.

¿Qué es esto, cómo es esto diferente de Global.asax.cs y ¿existen buenas prácticas sobre para qué utilizar esto?

Author: bahrep, 2013-11-17

3 answers

Cada aplicación OWIN tiene una clase de inicio donde se especifican los componentes para la canalización de la aplicación.

Si inicia un nuevo proyecto de Visual Studio, verá partes de OWIN en él. OWIN es una especificación que define una API para framework y servidores para la cooperación. El objetivo de OWIN es desacoplar el servidor y la aplicación. Por ejemplo, ASP.NET Identity utiliza OWIN security, SignalR self hosting utiliza OWIN hosting, etc., todos los ejemplos usan OWIN, por lo tanto, todos necesitan tener una clase de inicio, que se define en " Inicio.archivo cs".

El Global.asax, el ASP.NET application file, es un archivo opcional que contiene código para responder a eventos a nivel de aplicación planteados por ASP.NET o por HttpModules.

Para más detalles:

OWIN

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

Global.asax

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

Usted puede encontrar más ideas sobre por qué OWIN en el siguiente artículo:

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

 32
Author: Lin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-19 08:18:20

El archivo parece estar relacionado con SignalR. Citando las notas de la versión VS 2013 :

Construido sobre OWIN

SignalR 2.0 está construido completamente en OWIN (la Interfaz Web Abierta para . NET). Este cambio hace que el proceso de configuración de SignalR sea mucho más consistente entre aplicaciones SignalR alojadas en la web y auto-alojadas, pero también ha requerido una serie de cambios en la API.

MapHubs y MapConnection ahora son MapSignalR

Para la compatibilidad con OWIN estándares, estos métodos han sido renombrados a MapSignalR. MapSignalR llamado sin parámetros mapeará todos los hubs (como hace MapHubs en la versión 1.x); para mapear el individuo Objetos PersistentConnection, especifique el tipo de conexión como el tipo parámetro, y la extensión URL para la conexión como el primer argumento.

El método MapSignalR se llama en una clase de inicio Owin. Visual Studio 2013 contiene una nueva plantilla para una clase de inicio de Owin; para usar esta plantilla, hacer el siguiente:

  1. Haga clic derecho en el proyecto
  2. Seleccione Agregar Nuevo Elemento...
  3. Seleccione la clase de inicio Owin. Nombre la nueva clase Startup.cs.

En una aplicación Web, la clase de inicio Owin que contiene el MapSignalR método se agrega entonces al proceso de inicio de Owin usando una entrada en el configuración de la aplicación nodo de la Web.Archivo de configuración, como se muestra a continuación.

En una aplicación auto-alojada, la clase de inicio se pasa como el tipo parámetro de la WebApp.Método Start.

 6
Author: Stijn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-17 18:04:50

La clase Startup es la convención que Katana/OWIN busca para inicializar la canalización. Cuando se inicia la aplicación, se ejecuta el código dentro de la función de configuración para configurar los componentes que se utilizarán. En las plantillas MVC 5, se utiliza para conectar el middleware de autenticación que está construido sobre OWIN.

Si quieres usar la inyección de dependencias con OWIN, echa un vistazo a este proyecto en GitHub: DotNetDoodle.Owin.Dependencias

 5
Author: cecilphillip,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-13 16:06:07