相同点:
1,都可以进行b/s项目的web开发。
2,都可分为三层,Webfrom(view,logic,access),MVP(view,model,Presenter),MVC(view,model,control)。
3,都支持html语言对视图进行展现,其中MVC中还支持多种视图引擎,比如aspx,cshtml,vbhtml等。
4,其中MVP是WebForm与MVC的变种,其中的Presenter借鉴了MVC中的Control,一般来说项目开发效率居于两者之间,
WebForm>MVP>MVC。如果是小项目业务比较简单的话开发效率为MVC>WebForm>MVP因为MVC很多代码可以自动生成。
不同点:
1,MVP与MVC的视图层和业务层分离,而WebForm是直接绑定。
其中MVP是使用接口中定义属性方法使用注入的方式实现松散耦合,而MVC是使用数据传递而非控件绑定的方式,
比如ViewData,ViewModel等。
2,MVP与MVC的重用性比较好,而WebForm比较差。
其中MVP的重用性是通过interface属性方法和接口方法来实现的一般来说还是限制在同一语言。
而MVC的重用性是最高,可以跨视图引擎 因为它的业务层和视图层是通过数据传递联系的,因而耦合非常低。
而WebForm一般的话是通过和空间绑定来实现视图的显示,因而耦合非常高。耦合高低:webfrom>MVP>MVC。
3,扩展性方面MVC应该最好,其中是MVP,WebFrom。
首先MVC可以通过特征类来标识自己的业务类和方法,从而可以实现业务的低偶合绑定,
其次MVC支持Filter和Intercepter,只需简单的扩展就可以实现自己的私有过滤和拦截,这些都是低耦合的业务处理的典型标识。
然而MVP是interface级别的解耦,并且必须使用Interface来实现解耦,所以其扩展性大家可以很容易理解。
最后说的是WebForm一般来说是实体类中方法或者接口的调用或绑定。因此扩展性高低:MVC>MVP>webfrom。
4,视图的复杂度:由于MVC引入了新的引擎机制,所以其视图制作效率增加不少。因此视图的复杂度:webfrom>MVP>MVC
5,MVC和MVP由于与视图耦合度低,所以更利于测试的进行,而事件驱动的Webform这点就做得比较差劲。
6,支持视图代码生成:MVC支持,MVP和webform不支持。