什么是Visual Studio 2013项目中新的Startup.cs文件?

我刚刚安装了Visual Studio 2013,创build了一个MVC Web应用程序项目,并在项目模板中注意到一个名为Startup.cs的新文件。

这是什么,这与Global.asax.cs有什么不同,有什么好的最佳实践来使用它?

每个OWIN应用程序都有一个启动类,在其中为应用程序pipe道指定组件。

如果你开始一个新的Visual Studio项目,你会看到一些OWIN。 OWIN是一个为框架和服务器定义一个API来协作的规范。 OWIN的意义在于分离服务器和应用程序。 例如,ASP.NET Identity使用OWIN安全性,SignalR自主托pipe使用OWIN托pipe等等,这些示例都使用OWIN,因此它们都需要有一个启动类,它在“Startup.cs”文件中定义。

Global.asax是ASP.NET应用程序文件,它是一个可选文件,其中包含用于响应由ASP.NET或HttpModules引发的应用程序级事件的代码。

更多细节:

OWIN

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

Global.asax中

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

您可以在下面的文章中find更多关于OWIN的原因:

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

该文件似乎与SignalR有关。 引用VS 2013发行说明 :

build立在OWIN上

SignalR 2.0完全build立在OWIN(.NET的Open Web Interface)上。 这种改变使SignalR的设置过程在networking托pipe和自主托pipe的SignalR应用程序之间更加一致,但也需要进行一些API更改。

MapHubs和MapConnection现在是MapSignalR

为了与OWIN标准兼容,这些方法已被重命名为MapSignalR。 不带参数调用的MapSignalR将映射所有集线器(如版本1.x中的MapHub); 映射各个PersistentConnection对象,将连接types指定为types参数,并将连接的URL扩展指定为第一个参数。

在Owin启动类中调用MapSignalR方法。 Visual Studio 2013包含一个Owin启动类的新模板; 要使用此模板,请执行以下操作:

  1. 用鼠标右键单击该项目
  2. select添加,新build项目…
  3. selectOwin Startup类。 命名新类Startup.cs。

在Web应用程序中,包含MapSignalR方法的Owin启动类随后被添加到Owin的启动过程中,使用Web.Config文件的应用程序设置节点中的条目,如下所示。

在自托pipe应用程序中,Startup类作为WebApp.Start方法的typesparameter passing。

启动类是Katana / OWIN寻找初始化pipe道的约定。 当您的应用程序启动时,将运行configurationfunction内部的代码来设置将要使用的组件。 在MVC 5模板中,它被用来连接所有build立在OWIN之上的authentication中间件。

如果你想在OWIN中使用dependency injection,请在GitHub上查看这个项目: DotNetDoodle.Owin.Dependencies