0

Good day,

I am currently developing an asp.net mvc 4 site.

I have made a Front end site so far, which a user will be prompted with when they go to my url. Now I want to make a back end which certain users can then login and access all sorts of functionality, settings, options etc.

Now ideally you would make the front end and the back end in two different projects in Visual Studio. But now how would I link them together? For example if i am already logged in in the back end then the front end should still know that i'm logged in. So in essence it must still be one site. I just want to have the different components / facets in different projects.

Reason I want to do this is for organization of the project in VS and to try and modulate it as much as possible.

Can I do this?

4

1 回答 1

1

尽管最有可能将这些创建为具有通用身份验证令牌的单独项目(我可以想到至少一种-尽管这样做是骇人听闻的方式),但根据您的要求,我强烈建议使用具有管理区域的单个项目为管理功能分离(和命名空间)模型、视图和控制器。

尽管您没有指定正在使用的 ASP.NET MVC 的哪个版本,但从版本 2 开始,MVC 中就提供了区域。

这将允许您的与管理员相关的视图、控制器、模型和其他类在项目结构中的 /Areas/Admin 下逻辑分组在一起(如果您想隐藏东西,这可能会花费大部分时间折叠),也适用于任何要命名为 SiteProject.Admin.Class 的类,这将使它们与主站点中的类分开。

如果您考虑将它们放在不同的(引用的)项目中,然后将项目引用为 AdminProject.Class,这在概念上没有什么不同。该区域有自己的路线定义,让您可以灵活地处理不同于主站点的路线,并且其自己的 Web.config 允许附加或更改设置。

使用区域的优点是您不必围绕身份验证做任何额外的工作,您可以将项目部署为单个实体,并且您不必担心项目之间的路由请求(我想一个子domain 将是在单独的项目模型中分离请求的最直接的方法)。如果您想保持相同的外观和感觉(当然您可以根据需要使用完全不同的布局),管理区域中也将提供任何共享视图或局部视图,并且您将能够引用静态资源(例如作为图像、脚本和样式表)使用应用程序相关 URL(tilda - “~/Content/styles.css”)。您也可以使用任何特定于应用程序的应用程序,例如 Session,

如果您订阅了 Pluralsight,那么 K Scott Allen 在他的 MVC2 课程ASP.NET MVC 2.0 Fundamentals中讨论了一些领域(尽管他的 Views 显然不使用 Razor 语法,但这些章节中的所有其他内容仍然相关)。

如果您想在不同的项目中拥有您的业务实体和逻辑,那么这既合适又鼓励未来的可重用性,但在这种情况下,我觉得将相关项目放在一起以保持干燥和简单更为明智.

于 2013-07-13T22:32:05.473 回答