我觉得有点傻傻地问这个,但我一直在寻找一段时间,但没有找到完整的答案,假设我有一个MVC网站,因为我已经按照这个帖子结构了:
Architectural decisions: ASP.NET MVC & Entity Framework
WebSite (MVC)
Controllers
Views
Content (scripts, css, images, etc.)
Presentation Models
View Models
Model mappers
Web Library
Extensions (to MVC/Web classes)
Helper Classes
Attributes
Business Logic
Rules
Data (if complex, use separate subfolder per context/repos/models)
Entity Models
Repositories
Data Context
General Library
Extensions
Helper Classes
1)我应该在哪里放置搜索数据的链接查询?
我想在我的BL中使用搜索对象创建一般搜索,如果需要另一个应用程序(比如移动应用程序或winform应用程序)可以重复使用,然后返回将通过Presentation模型项目映射的一般搜索对象? 我不确定查询是“业务逻辑/规则”。
或者我应该直接在Presentation Models项目中执行所有这些查询吗? 如果是这样,我会假设我仍然需要先创建一般对象,这样我就可以为其他一些设备重复使用相同的查询。
2)假设我想在此基础上添加一个移动应用程序,我应该将每个视图模型放在Web和移动设备的相同Presentation Models项目中吗?
3)即使输入验证和CRUD操作,来自网络的每个电话都应该通过表示层进行流程吗?
感谢您的时间
答案 0 :(得分:0)
在此,我已就您在此处查询的要点发表了意见 1)我应该在哪里放置我的链接查询来搜索数据?
* 如果您的Linq查询与某些搜索条件相关联,请在BL图层中使用它们。 * 强> 2)假设我想在此基础上添加一个移动应用程序,我应该将每个视图模型放在Web和移动设备的相同Presentation Models项目中吗?
*您需要这样做*
3)即使对于输入验证和CRUD操作,来自Web的每个调用都应该通过表示层流动吗? *总是应该在两个地方进行任何验证:表示层和BL,这样当您稍后公开WCF服务时,它将正常运行。即使跳过表示层验证,也没关系。但BL验证总是失败安全*