Asp.net mvc MVC(ASP.NET MVC)三层体系结构如何协同工作?

Asp.net mvc MVC(ASP.NET MVC)三层体系结构如何协同工作?,asp.net-mvc,model-view-controller,architecture,3-tier,three-tier,Asp.net Mvc,Model View Controller,Architecture,3 Tier,Three Tier,我正在写一个设计文档,我的团队成员都愿意从ASP.NET WebForm迁移到ASP.NET MVC。这很好,但我很难理解MVC如何在三层(数据层、业务层和表示层)体系结构中工作。我们可以说模型、视图和控制器是表示层的一部分吗?模型是业务层的一部分吗 简言之,MVC和三层体系结构如何协同工作?谢谢你的帮助 表示层是您的视图 数据层是您的模型(建议查看存储库模式) 业务层保持原样 控制器可以在加载对象时调用业务层以获取功能,或者模型可以在请求特定ViewModel时调用业务层以获取功能,但在其他情

我正在写一个设计文档,我的团队成员都愿意从ASP.NET WebForm迁移到ASP.NET MVC。这很好,但我很难理解MVC如何在三层(数据层、业务层和表示层)体系结构中工作。我们可以说模型、视图和控制器是表示层的一部分吗?模型是业务层的一部分吗


简言之,MVC和三层体系结构如何协同工作?谢谢你的帮助

表示层是您的视图

数据层是您的模型(建议查看存储库模式)

业务层保持原样

控制器可以在加载对象时调用业务层以获取功能,或者模型可以在请求特定ViewModel时调用业务层以获取功能,但在其他情况下保持不变


控制器不应该有扩展的业务逻辑——把它放在它自己独立的DLL中。

< P>我知道它只是一个维基百科链接,但是关于N层与MVC体系结构有一些信息。

< P>我认为ASP.NETMVC在表示层中。它使用的“模型”类实际上是视图模型,它描述视图所需的数据结构。所有业务逻辑和数据访问都应该与MVC模型和控制器分开


此外,MVC的一般“最佳实践”是使控制器代码尽可能简单,这通常意味着在处理繁重任务的业务层中引入一些for应用程序服务。

这是非常主观的做对团队有意义的事。

MVC可以非常灵活,几乎没有任何MVC框架跨所有语言以相同的方式工作。甚至在.net空间。FubuMVC、Spring.net和MS-MVC的工作方式略有不同。

一个“层”是一个部署单元,而MVC中的“层”是代码中职责的逻辑分离。

首先, 你不必仅仅因为。。。如果你有一些有用的东西,我想你不需要

但对于您的问题,MVC模式中的模型是表示您的业务问题的任何类型的类,可以是任何类型的计算、业务规则或数据访问类。在MVC框架中,有一个文件夹可以为您提出解决方案,因此您可以将模型类放在其中,但您不必这样做,您可以创建不同的项目来解决您的业务问题,这就是您的模型。 因此,在这里,您可以定义任何其他模式,您可以使用存储库模式,并使用NHibernate或Entity框架实现它

视图只是向用户显示和接收信息的网页

控制器是应用程序的入口,类将接收请求,调用必要的模型并重定向到指定的视图


希望我能帮上忙。

N-Tier和MVC配合使用效果很好。只要遵循SOLID原则和其他几个原则,您就能够保持应用程序的松散耦合和内聚性

我想说,阅读MVC 3上的书籍和观看pluralsight.com视频是你最大的资源。如果一个叫约翰尼和蒂米的同事想在一个控制器中加入一些逻辑,仅仅因为在短期的最后期限匆忙中,“为你的团队工作”并不能使它正确/好/聪明,那么你不能接受“为你的团队工作”


我在互联网上发现了太多的不好的文章,以至于有那么多人被带进了一条黑暗的痛苦之路,这真是太可怕了。走幸福之路。将stackoverflow用于艺术等观点,但请查阅msdn文章、mvc书籍和pluralsight.com

这正是我要回答的问题。可能的重复项:,