我在基于MVC架构的客户端-服务器应用程序上使用owin自托管Web api。我看到很多代码示例,这些示例显示具有配置的Startup类和具有Main方法(使用(WebApp.Start(url:baseAddress)))启动OWIN自托管程序的Program类和Main方法位于同一项目中。我是否应该绝望地将自己的主机托管到一个项目,以便将WebApp.Start放在一个项目中,而将具有启动claas的Web api托管到另一个项目中,包括所有控制器,等等?
答案 0 :(得分:0)
常见的答案是取决于情况。通常,自托管应用程序非常简单,可以提供一些简单的功能。在这种情况下,由于两个部分都很简单,因此无需将它们分开(主机代码和Asp.Net Mvc
),并且可以将它们作为应用程序层放置在一个项目中。但是,如果您要为宿主代码增加一些复杂性(例如,对Asp.Net Mvc
应用进行一些预热),则可能应该将宿主代码和Asp.Net Mvc
应用代码分成两个项目。>
答案 1 :(得分:0)
发现这可能是受关注点分离启发的好主意:自托管主机不应该了解服务器,反之亦然。 Owin和Web API的工作不同,因此需要分开。