我有这样的结构
WebUI 项目 - 控制器、视图框架项目 - 存储库、服务层和域
所以现在我有 3 个方法/类
- 打开 ID/打开身份验证
起初我以为我会将所有逻辑放在我的框架项目中的服务层中(准备请求,检查响应等将在该层中)。
所以现在我正在使用 dotnetopenauth 库,因为我需要在我的控制器中使用 AsActionResult 方法(我从我的服务层返回“OutgoingWebResponse”,因为我不希望我的服务层中有任何 MVC)
当我决定在我的服务层中不包含任何 MVC 时,我开始思考。正如我所读到的,包含业务逻辑的服务层不应具有任何依赖项,例如 MVC 引用,因为如果您使用 Windows Phone 应用程序,则不应使用 MVC 的东西。
您的业务层应该可以在任何应用程序中实现即插即用。
因此,出于上述原因,现在我不确定是否应该将我为 openId 编写的内容移动到我的 mvc 项目中的模型文件夹中。因为如果我确实使用 Windows Phone 应用程序或表单应用程序,我将不会使用 dotnetopenauth,因为我认为这些类型的应用程序不支持它。
我的第二个是表单身份验证。再次与上述几乎相同的原因。这是否应该在我的模型文件夹中作为本地服务/repo 层(即在同一个项目文件中)。
我正在使用 nhibernate、流利的 nhiberate 和 ninject。我的回购都在我的框架项目中。所以我当然有所有的参考资料。但由于我使用 ninject 进行 ioc,所以我的 webui 项目中也有所有引用。
我不知道是否可以更改这个以从我的 webui 中删除这些引用。我在想不,因为他们我的 ioc 不能放在我认为应该去的 webui 中。