у меня такая структура
Проект WebUI — контроллеры, представления Проект Framework — репозитории, сервисный уровень и домен
Итак, теперь у меня есть 3 метода/класса
- Открытый идентификатор/открытая авторизация
Сначала я думал, что поместлю всю свою логику на сервисный уровень в моем фреймворковом проекте (подготовка запроса, проверка ответа и т. д. будет на этом уровне).
Итак, теперь я использую библиотеку dotnetopenauth и потому что мне нужно использовать метод AsActionResult в моем контроллере (я возвращаю «OutgoingWebResponse» из своего сервисного уровня, так как мне не нужно ничего MVC в моих сервисных слоях)
Это заставило меня задуматься, когда я решил не использовать MVC на своем сервисном уровне. Как я читал, ваш сервисный уровень, содержащий вашу бизнес-логику, не должен иметь никаких зависимостей, таких как ссылки MVC, потому что, если вы переходите к приложению Windows Phone, вы не должны использовать материал MVC.
Ваш бизнес-уровень должен быть своего рода plug and play в любом приложении.
Так что теперь я не уверен, должен ли я переместить то, что я написал для openId, в папку моих моделей в моем проекте mvc только по причинам, указанным выше. Поскольку, если я перейду к приложению Windows Phone или приложению форм, я не буду использовать dotnetopenauth, поскольку я не думаю, что он поддерживается в этих типах приложений.
Мой второй — с аутентификацией форм. Снова почти те же причины, что и выше. Должно ли это происходить также в папке моих моделей в качестве локального слоя службы/репозитория (т.е. в том же файле проекта).
Я использую nhibernate, nhiberate и ninject. Все мои репозитории находятся в моем фреймворковом проекте. Так что у меня, конечно, все ссылки там. Но поскольку я использую ninject для ioc, у меня также есть все ссылки в моем проекте webui.
Я понятия не имею, можно ли изменить это, чтобы избавиться от этих ссылок из моего webui. Я думаю, что нет, потому что я не могу иметь свой ioc в своем веб-буи, куда, по моему мнению, он должен идти.