ASP.NET MVC与Asp.net WebForms比较和选择

联系:

WinForm -> Asp -> Asp.net Web Form -> Asp.net mvc
Asp.net Web Form继承了WinForm的思想,是事件驱动的编程模型。实现事件驱动,组件模型和页面回发给自己的应用是离不开的。
Asp.net mvc是Url驱动的编程模型。是界面构建模式mvc在Asp.net的实现。

Asp.net Mvc不是用来代替Asp.net WebForms,而是对web开发提供一种新的开发模式。你可以选择适合自己或团队开发的模式来进行开发。

微软开发ASP.NET MVC框架的是基于以下一些目标的:

1)各层分工明确,可测试性(支持TDD)

2)一个高扩展的插件式的架构

3)更友好的URLS,易于优化SEO,同时对REST的支持。

4)可以继续使用原有的Asp.net的一些特征。

5)对HTML代码的完全可控性。

ASP.NET MVC优点:

1)界面代码和业务逻辑代码完全的分离。Asp.net Web Form中,界面代码和业务逻辑代码是不完全的分离,只是通过代码隐藏文件把两者给分开了,UI与业务逻辑的捆绑依然在代码隐藏文件中清晰可见。
2)代码的分离实现了低耦合。清晰的代码,易于维护。
3)简单。相对Asp.net web Form,没有了复杂的服务器控件(如GridView),没有了事件驱动;取而代之的是html标签(微软鼓励这样做)、Url驱动。

4)对HTML的可控性增强。

5)更加友好的URL便于SEO

6)生成的HTML页面更加简单和清晰,因为没有了ViewState.

7)默认就对JS框架的支持

 

ASP.NET WebForms优点:

1)为HTTP提供了一种事件模型,对任何开发人员都可以很容易上手。

2)提供了大量的标准控件和第三方控件使得开发更加简单易行。

3)由于使用了ViewState机制使得状态管理变得简单。

那么我们开发时该怎么对二者进行选择呢?

TDDControl HTMLData-DriverLike WinformsRAD
MVC
WebForms

 

 

 

 

ASP.NET MVC 框架具有以下功能:

  • 应用程序任务(输入逻辑、业务逻辑和 UI 逻辑)的分离、可测试性和测试驱动的开发 (TDD)。 MVC 框架中的所有核心协定都基于接口并且可使用 mock 对象进行测试,mock 对象是模仿应用程序中实际对象的行为的模拟对象。 您可以对应用程序进行单元测试,而不必在 ASP.NET 进程中运行控制器,这使得单元测试既快速又灵活。 您可以使用任何与 .NET Framework 兼容的单元测试框架。

  • 可扩展和可插入的框架。 设计 ASP.NET MVC 框架的组件的目的是为了可以轻松地替换或自定义它们。 您可以插入自己的视图引擎、URL 路由策略、操作方法参数序列化以及其他组件。 ASP.NET MVC 框架还支持使用依赖项注入 (DI) 和控制反转 (IOC) 容器模型。 DI 使您能够将对象注入到类中,而不是依靠类来创建对象本身。 IOC 指定某个对象是否需要其他对象,第一个对象应该从配置文件之类的外部源中获取第二个对象。 这样,测试会更加轻松。

  • 广泛支持 ASP.NET 路由,ASP.NET 路由是一个功能强大的 URL 映射组件,它允许您生成具有易于理解和可搜索的 URL 的应用程序。 URL 未必包含文件扩展名,并且旨在支持非常适合搜索引擎优化 (SEO) 和具象状态传输 (REST) 寻址的 URL 命名模式。

  • 支持将现有 ASP.NET 页面(.aspx 文件)、用户控件(.ascx 文件)和母版页(.master 文件)标记文件中的标记用作视图模板。 您可以将诸如嵌套母版页、内联表达式(<%= %>)、声明性服务器控件、模板、数据绑定、本地化等现有 ASP.NET 功能与 ASP.NET MVC 框架结合使用。

  • 支持现有 ASP.NET 功能。 ASP.NET MVC 允许您使用一些功能,如 Forms 身份验证和 Windows 身份验证、URL 授权、成员资格和角色、输出和数据缓存、会话和配置文件状态管理、运行状况监视、配置系统以及提供程序体系结构。

转载于:https://www.cnblogs.com/floewr-yuan/archive/2011/08/25/2153817.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值