【发布时间】:2011-11-14 21:21:18
【问题描述】:
出于练习目的,我将创建一个新的 ASP.NET MVC 3.0 应用程序。 我的解决方案(Practice.sln)将有 4 层:
- Pratice.Common(我的 ViewModel 的类库)
- Pratice.Data(EF 类库)
- Pratice.Service(业务逻辑类库)
- Pratice.Web(asp.net mvc 3.0 项目)
假设我有一个名为“Login”的视图,它在我的 Practice.Common 层中定义的 LoginModel 上进行强类型化。 LoginModel 有 2 个属性(用户名和密码)。
在我的Controller中,当用户提交表单时,我调用如下方法:
[HttpPost]
public ActionResult Login(LoginModel model)
{
if(_service.ValidateUser(model))
return null;
}
ValidateUser() 是在我的 Pratice.Service 层(在我的 LoginService.cs 文件中)中定义的方法。
我基本上将验证过程委托给我的服务层……
我的问题如下:
考虑到我想尝试/使用 Membership Provider 的好处,并且考虑到我的大部分(如果不是全部)逻辑都发生在我的服务层中,如何将会员资格移动到我的服务中层? (如果这甚至是一件好事)
另外……我正计划创建自己的 Membership Provider,而不是内置的,因为我没有使用所有这些生成 TABLES 和 sprocs……
额外问题:
将所有登录和帐户管理直接从控制器中进行,并将我的所有其他业务逻辑保存在我的服务层中是否被认为是最佳实践?
我很好奇将逻辑的“部分”直接发生在控制器内部而其他“部分”发生在服务层中的利弊。
当然,如果有人有解释这一点的链接或文章,我将不胜感激!
真诚的
【问题讨论】:
标签: asp.net-mvc model-view-controller asp.net-membership