4

问这个问题我觉得有点傻,但我一直在寻找一段时间并没有找到完整的答案,假设我有一个 MVC 网站,因为我遵循了这篇文章的结构:

架构决策: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 Models 项目中进行所有这些查询?如果是这样,我会假设我仍然需要先创建通用对象,以便我可以将相同的查询重用于其他设备左右。

2)假设我想在此基础上添加一个移动应用程序,我是否应该将每个视图模型放在同一个演示模型项目中,用于 Web 和移动设备?

3)即使对于输入验证和CRUD操作,来自Web的每个调用都应该通过表示层吗?

感谢您的时间

4

1 回答 1

0

在此,我就您在这里查询的要点发表了我的意见 1)我应该将链接查询放在哪里以搜索数据?

*如果您的 Linq 查询与某些搜索条件相关联,请在 BL 层中使用它们。* 2) 假设我想在此基础上添加一个移动应用程序,我是否应该将每个视图模型放在 Web 和移动设备的同一个 Presentation Models 项目中?

*您将被要求这样做*

3)即使对于输入验证和CRUD操作,来自Web的每个调用都应该通过表示层吗? * 任何时候都应该在这两个地方进行任何验证:表示层和 BL,这样当您以后为 WCF 公开您的服务时,它将毫无例外地正常运行。即使跳过了表示层验证,也没关系。但是 BL 验证总是失败的*

于 2013-11-10T13:23:14.507 回答