C# 如何在VisualStudio中组织.NETMVC应用程序
我开始在Visual Studio(.NET MVC)中创建一个完整的应用程序。如果我将所有内容都放在一个解决方案中,并创建三个独立的项目:Admin(由工作人员用于管理应用程序数据)、Web(面向公众的网页)、Shared(公共数据访问和其他代码),这有意义吗。这似乎是有道理的,因为以后我可能会添加一个移动项目或API或C# 如何在VisualStudio中组织.NETMVC应用程序,c#,asp.net-mvc,visual-studio,visual-studio-2013,architecture,C#,Asp.net Mvc,Visual Studio,Visual Studio 2013,Architecture,我开始在Visual Studio(.NET MVC)中创建一个完整的应用程序。如果我将所有内容都放在一个解决方案中,并创建三个独立的项目:Admin(由工作人员用于管理应用程序数据)、Web(面向公众的网页)、Shared(公共数据访问和其他代码),这有意义吗。这似乎是有道理的,因为以后我可能会添加一个移动项目或API或 如果不是,您如何在Visual Studio中构建解决方案/项目?如果是我,我会将所有内容都放在一个项目中,并使用区域来分隔视图和模型 例如 Project Area
如果不是,您如何在Visual Studio中构建解决方案/项目?如果是我,我会将所有内容都放在一个项目中,并使用区域来分隔视图和模型 例如
Project
Areas
Admin
Controllers
AdminController.cs
Models
Admin.cs
Main
Controllers
MainController.cs
Models
Main.cs
LoginLogout.cs
LoginForm.cs
Views
Admin
Shared
permissions.cshtml
admin.cshtml
Main
Shared
loginLogout.cshtml
loginForm.cshtml
master.cshtml
Index.cshtml
区域提供了一种非常好的方法来分割web应用程序的各个部分,因为它们都在同一个项目中,所以您可以让您的所有部分使用相同的视图布局(母版页),使每个部分看起来都一样
区域将映射到URL,如
在该示例中,您不会将主分区放在某个区域中,而是对站点的主要部分使用普通的模型视图控制器模式,只为管理员或其他分区引入一个区域。我忘记了区域。如果我从同一个站点运行所有内容,这可能会起作用。如果我需要从Intranet网站运行管理员,则可能无法运行。为了支持该方案,我将创建两个web应用程序。一个用于主站点,一个用于管理部分。在管理网站,使它没有一个区域。在IIS中,将管理站点映射为/admin虚拟路径上的子应用程序。然后,如果以后需要移动站点,您可以删除子应用并将站点移动到其他地方。是否将两个web应用放在同一个解决方案中?或者让它们成为两个独立的解决方案?好吧,如果你有Visual Studio 2015,它现在就支持共享项目,但在2013年,我会在同一个解决方案中完成这一切。通过2015,您可以创建共享项目来存储可重用的css、js、视图(cshtml)、代码等。您可以引用共享项目,并将它们链接到构建中。例如,与类库不同的是,共享项目不会生成。引用它的那个构建了它。这会将代码直接拉入web应用程序集。至于css/js等,当你发布网站时,它会将它们作为内容包含在内。不过,web应用程序中的共享项目存在一个bug,我最近发布了一个问题/答案,其中讨论了如何在web应用程序中使用它们。