日期:2014-05-17  浏览次数:20356 次

关于MVC的分层问题
MVC新手请教,我想沿用三层架构的思想,但是MVC的模型层既包括了三层里的Model BLL DAL三个层,数据操作用的是EF。有没有办法把EF层生成的Model独立出一个层啊。因为Model不仅仅是BLL DAL才访问的,几乎所有的层都要用到这个层,而且有些功能要有一些独立的Model(并不是只与数据库表一一对应)。又或者提供以下 大家的设计方法。求教!

------解决方案--------------------
MVC设计模式下:
Model:描述的是业务逻辑,而不是所谓的User,Customer这些东西
比如一个Model可以叫做:单据登记业务,或者单据查询业务,
它们是服务的提供者,而不是数据提供者

View:只呈现了服务的外观,并不知道服务的细节,更不知道数据的细节

Controller分为:ModelDrv(模型控制器)和ViewDrv(视图控制器),
模型控制器负责业务逻辑的组装,
试图控制器负责创建和更新视图以及创建更新模型

MVC传载数据用DataTable,XML,JSON都可以,EF的那些用不上,
数据对象是在运行时刻由控制器根据Model的描述自动匹配的,
程序中根本就不会出现User.Id这种东西


------解决方案--------------------
只要不做DBSET,就不会和数据库打交道。
------解决方案--------------------
探讨

MVC传载数据用DataTable,XML,JSON都可以,EF的那些用不上,
数据对象是在运行时刻由控制器根据Model的描述自动匹配的,
程序中根本就不会出现User.Id这种东西


------解决方案--------------------
首先要搞明白你一个问题:你是每一个交互动作都刷新一下页面吗?

如果不是,那么你应该把精力放在从交互界面的技术出发上。当你以html/javascript编程为前端交互界面编程手段时,跟asp.net mvc的所谓交互操作ui层就完全是无关的了。你需要花精力去考虑jascript/ajax编程中的分层问题,这时候最好简化服务端数据操作的层次,不要去管什么mvc。