我问这个问题有点傻,但是我已经寻找了一段时间,但是还没有找到完整的答案,比如说我有一个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/