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

时间:2013-11-17 17:53:17

标签: asp.net-mvc visual-studio-2013 owin

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

这是什么,这与Global.asax.cs有何不同,是否有任何关于如何使用它的最佳实践?

3 个答案:

答案 0 :(得分:32)

每个OWIN应用程序都有一个启动类,您可以在其中指定应用程序管道的组件。

如果您启动一个新的Visual Studio项目,您将看到其中的OWIN部分。 OWIN是一种规范,用于定义框架和服务器的API以进行协作。 OWIN的目的是解耦服务器和应用程序。 例如,ASP.NET Identity使用OWIN安全,SignalR自托管使用OWIN托管等,这些示例都使用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

您可以在以下文章中找到有关OWIN原因的更多想法:

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

答案 1 :(得分:7)

该文件似乎与SignalR有关。引用VS 2013 release notes

  

建立在OWIN

上      

SignalR 2.0完全基于OWIN(开放式Web界面)构建   。净)。此更改使SignalR的设置过程更加频繁   Web托管和自托管SignalR应用程序之间保持一致,   但是还需要进行一些API更改。

     

MapHubs和MapConnection现在是MapSignalR

     

为了与OWIN标准兼容,这些方法已重命名   到MapSignalR。不带参数调用的MapSignalR将映射所有集线器   (正如MapHubs在版本1.x中所做的那样);映射个人   PersistentConnection对象,指定连接类型作为类型   参数,以及作为第一个连接的URL扩展名   参数。

     

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

     
      
  1. 右键单击项目
  2.   
  3. 选择添加,新项目......
  4.   
  5. 选择Owin Startup类。将新类命名为Startup.cs。
  6.         

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

         

    在自托管应用程序中,Startup类作为类型传递   WebApp.Start方法的参数。

答案 2 :(得分:5)

Startup类是Katana / OWIN寻找初始化管道的惯例。当您的应用程序启动时,将运行Configuration函数内部的代码来设置将要使用的组件。在MVC 5模板中,它用于连接构建在OWIN之上的身份验证中间件。

如果你想对OWIN使用依赖注入,请在GitHub上查看这个项目:DotNetDoodle.Owin.Dependencies