我正在写一个设计文档,我的团队中的人愿意从ASP.NET WebForm迁移到ASP.NET MVC。这很棒,但我很难理解MVC在3层(数据层、业务层和表示层)架构中是如何工作的。我们可以说模型、视图和控制器是表示层的一部分吗?模型是业务层的一部分吗?
简而言之,MVC和3层架构如何协同工作?谢谢你的帮助!
发布于 2010-06-16 00:49:00
我认为ASP.Net MVC应该在表示层。它使用的“模型”类是真正的视图模型,它描述了视图所需的数据结构。您的所有业务逻辑和数据访问都应该与MVC模型和控制器分开。
此外,MVC的一般“最佳实践”是保持控制器代码尽可能简单,这通常意味着在处理繁重任务的业务层引入一些形式的应用程序服务。
发布于 2010-06-16 00:47:24
表示层是您的视图。
数据层是您的模型(建议查看Repository模式)。
业务层保持原样。
控制器可以在加载对象时调用业务层来实现功能,或者模型可以在请求特定ViewModel时调用业务层来实现功能,但在其他情况下保持不变。
控制器中不应该包含可扩展的业务逻辑--将其放在自己的自包含DLL中。
发布于 2010-06-16 02:10:22
这是非常主观的。做对你的团队有意义的事情。
MVC可以相当灵活,几乎没有跨所有语言的MVC框架以相同的方式做事情。即使在.net领域也是如此。FubuMVC、Spring.net和MVC的处理方式都略有不同。
https://stackoverflow.com/questions/3047230
复制相似问题