В практических целях я собираюсь создать новое приложение ASP.NET MVC 3.0.
Мое решение (Practice.sln) будет иметь 4 слоя:
- Pratice.Common (библиотека классов для моих ViewModels)
- Pratice.Data (библиотека классов для EF)
- Pratice.Service (библиотека классов для бизнес-логики)
- Pratice.Web (проект asp.net mvc 3.0)
Давайте предположим, что у меня есть представление под названием «Логин», которое строго типизировано на LoginModel, определенной в моем слое Practice.Common.
Модель LoginModel имеет 2 свойства (имя пользователя и пароль).
В моем контроллере, когда пользователь отправляет форму, я вызываю следующий метод:
[HttpPost]
public ActionResult Login(LoginModel model)
{
if(_service.ValidateUser(model))
return null;
}
ValidateUser () - это метод, определенный в моем слое Pratice.Service (внутри моего файла LoginService.cs).
Я в основном делегирую процесс проверки моему уровню обслуживания ...
У меня следующий вопрос:
Учитывая, что я хотел бы попробовать / использовать преимущества поставщика членства, и учитывая, что большая часть (если не вся) моя логика происходит на моем уровне обслуживания, как может переместиться Членство в мой уровень обслуживания ? (если это даже хорошо)
Кроме того ... Я планировал создать свой собственный провайдер членства, а не встроенный, поскольку я не использую все эти генераторы ТАБЛИЦ и спроков ...
Бонусный вопрос:
Считается ли наилучшей практикой, чтобы все управление учетными записями и учетными записями происходило непосредственно из вашего контроллера, а вся остальная часть моей бизнес-логики хранилась внутри моего уровня обслуживания?
Мне любопытно, что за и против имеют "части" логики, происходящие непосредственно внутри контроллера, и другие "части", происходящие на уровне обслуживания.
Конечно, если у кого-то есть ссылка или статья, объясняющая это, я был бы признателен!
С уважением