MVC解决方案结构

时间:2013-03-04 10:23:57

标签: .net asp.net-mvc entity-framework

我觉得有点傻傻地问这个,但我一直在寻找一段时间,但没有找到完整的答案,假设我有一个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操作,来自网络的每个电话都应该通过表示层进行流程吗?

感谢您的时间

1 个答案:

答案 0 :(得分:0)

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

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

*您需要这样做*

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