First Appraoch
/\
/ \
V/ \ C <=WCF=> {Business Layer (with business logic) <=> ORM <=> Database}
/ \
--------
M
第二种方法
/\
/ \
V/ \ M <=WCF=> {Business Layer (with business logic) <=> ORM <=> Database}
/ \
--------
C
主要差异: - 在第一种方法中,业务对象将具有2个版本。其中一个在业务层内部加载了属性,而其他dumb版本中只有很少的View特定属性要由Controller填充。在第二个appraoch中,将有一个具有所有属性的类。 - 第一种方法似乎与表示层分离了一点
在这两种方法中,Controller都是起点。
至于我从不同的人那里收到的观点,两者都是有效的方法,可以根据发展偏好进行切换。
请分享想法。
答案 0 :(得分:3)
我们在asp.net mvc应用程序中使用下一种方法:
查看&lt; - ViewModel&lt; - Controller&lt; -BusinessObject&lt; - Db
获取有关此方法的更多详细信息答案 1 :(得分:2)
第一个。 ViewModels(在您的三重奏中称为“M”)不应该知道视图或业务层中的任何内容。
真正的MVC定义:
Microsoft添加了ViewModel以使分离更加清晰。首先,视图不依赖于您的域模型。它不应该包含逻辑。
我在此列出了使用视图模型的主要原因:http://blog.gauffin.org/2011/07/three-reasons-to-why-you-should-use-view-models/
答案 2 :(得分:1)
imho业务逻辑属于模型。控制器不应该知道也不关心为什么要在视图中显示某些内容。
事实上,我认为这对于这里的工作最重要,不仅仅是绝对的“最佳”。