我问这个问题有点傻,但是我已经寻找了一段时间,但是还没有找到完整的答案,比如说我有一个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)假设我要在此之上添加一个移动应用程序,我是否应该将每个 View 模型都放在针对Web和移动设备的同一Presentation Models项目中?

3)是否应该从Web流程通过Presentation层进行每次 call ,甚至进行输入验证和CRUD操作?

感谢您的时间

最佳答案

在此,我对您在此处提出的问题发表了意见。
1)我应该将链接查询放在哪里以搜索数据?

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

*您将被要求这样做*

3)是否应该从Web流程通过Presentation层进行每次 call ,甚至进行输入验证和CRUD操作?
*始终应在以下两个位置进行任何验证:表示层和BL,以便以后在公开WCF服务时,它将正常运行。即使跳过表示层验证,也可以。但是BL验证总是失败安全的*

关于.net - MVC解决方案结构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15199312/

10-11 11:52