Asp.net mvc mvc web应用程序应该是三层的吗?

Asp.net mvc mvc web应用程序应该是三层的吗?,asp.net-mvc,design-patterns,n-tier-architecture,Asp.net Mvc,Design Patterns,N Tier Architecture,我将很快设计几个web应用程序。它们可能会在asp.NETMVC中完成 在我现有的web应用程序中,数据访问层被分离成一个完全独立的应用程序,有时运行在不同的服务器上。这样做更多的是为了代码重用,而不是架构上的原因。这不会成为下一个应用程序的一个因素,因为它将是全新的 在mvc应用程序中使用单独的数据访问应用程序是否过火了?我已经通过使用MVC分离出了业务类,并且我将使用ORM来实现db持久性 编辑:只是为了澄清;我用“层”这个术语来指独立的物理应用程序,而不仅仅是一个逻辑分离或层。Tobias

我将很快设计几个web应用程序。它们可能会在asp.NETMVC中完成

在我现有的web应用程序中,数据访问层被分离成一个完全独立的应用程序,有时运行在不同的服务器上。这样做更多的是为了代码重用,而不是架构上的原因。这不会成为下一个应用程序的一个因素,因为它将是全新的

在mvc应用程序中使用单独的数据访问应用程序是否过火了?我已经通过使用MVC分离出了业务类,并且我将使用ORM来实现db持久性


编辑:只是为了澄清;我用“层”这个术语来指独立的物理应用程序,而不仅仅是一个逻辑分离或层。

Tobias的评论很好

我说添加足够多的层,这样对您来说就有意义了,并且更易于维护。也要保持关注点的分离。

根据我的经验,术语“”通常指的是物理应用程序分离,例如客户端层和服务器层

MVC-指3个“”,关注点是围绕3个关注点it细节模型(数据)、视图(UI)、控制器(应用程序逻辑)的分离

既然我已经对我的术语做出了区分

在mvc应用程序中使用单独的数据访问应用程序是否过火了

我想说,(同样取决于你所说的应用程序),这并不是过分的,因为它实际上可能会导致一个更易于维护的系统。您的ORM可能允许插入新的数据访问选项,但如果您希望添加新的ORM,该怎么办?拥有一个清晰分离的数据访问层(DAL)将允许您的应用程序在这方面具有更大的未来灵活性

另一方面,根据应用程序的规模和远景,创建一个完全独立的数据访问选项可能有些过分,但简而言之,在实现MVC模式的应用程序的组合中,将DAL分离为不同的程序集是非常推荐的做法


如果您需要更深入的评论,希望这能有所帮助。

好吧,这取决于您谈论的是层(pysical)还是层(逻辑/项目)

关于分层——你可以看看像s#arp架构()这样的东西,看看他们是如何做到的(他们已经采取了一种非常好的分层方法)

关于这里更简单的视图示例,请查看Ayende的博客:Ayende.com/blog/


关于层-我认为不必要地添加额外的层和将所有事情都放在电线上只会影响您的性能,除非您出于容量原因需要这样做。正确地划分层,并根据需要将其划分为TEI,以适应容量的调整(如果已经很好地划分了关注点,则不应进行太多重构)。

如果将业务类和DB划分为Persistance,则至少已经有3层了。GUI/Logic/DB-这是3层,所以您不会得到n