楼上的,MVC其实仅仅是展示层和业务逻辑层之间的交互的一种方式。与三层,多层或双层没有关系。
其实,如果你用ASP.NET,严格意义上来说,必须是三层的了。除非你能够用javascript操作数据库。
但是,即使如此,很多时候,我们还会进行更多的层次划分,将Asp.NET站点分割为Client端和Server端。两层之间通过WebService进行交互。这样做,更利于项目任务的分割(每个人可以仅关心其中一部分的功能),和项目的可维护性(将业务逻辑和展示分离)。
一个简单的例子,如果你的项目组有3个人,如果使用三层结构,就可以工作分拆为一个人做UI层,一个人做数据访问层,一个人做业务逻辑层。每个人都会对自己负责的层次负责,确保自己的层次设计良好和可维护,从而达到项目整体的设计良好和可维护。
否则,如果按照功能进行划分,就会造成大量的重复的数据访问对象和业务处理对象,从而使项目的结构腐烂发臭。