网站首页 > 知识剖析 正文
许多 ASP.NET 开发人员开始接触 MVC,都认为 MVC 与 ASP.NET 完全没有关系,是一个全新的 Web 开发。
事实上 ASP.NET 是创建 WEB 应用的框架,而 MVC 是一种能够用更好的方法来组织并管理代码的体系,所以可以称之为 ASP.NET MVC。
因此,我们可以将原来的 ASP.NET 称为 ASP.NET Webforms,新的 MVC 称为 ASP.NET MVC。
ASP.NET Webforms
ASP.NET 在过去的十几年里,已经服务并成功实现Web 应用的开发。那么,我们先了解一下为什么ASP.NET能够如此流行,并成功应用?
微软编程语言从 VB 开始就能够成为流行并广泛应用,都源于其提供的强大的 Visual studio 能够进行可视化的编程,实现快速开发。
使用 VS 时,开发人员能够通过拖拽 UI 元素,并在后台自动生成这些界面的代码,称为后台代码。在后台代码中,开发人员可以添加操作这些UI元素的逻辑代码。
因此微软的可视化 RAD 架构体系有两方面组成,一方面是 UI,一方面是后台代码。
ASP.NET WebForms 存在的问题
响应时间
如图所示,每一次 WebForms 请求都有转换逻辑,运行并转换服务器控件为 HTML 输出。如果页面使用表格,树形控件等复杂控件,转换就会变得很糟糕,HTML 输出也是非常复杂的。由于这些不必要的转换从而增加了响应时间。上图是 ASP.Net MVC 和 Webforms 的响应时间对比,我们会发现 Webforms 的响应时间是 MVC 的两倍左右。
带宽消耗
ASP.NET 开发人员都非常熟悉 Viewstates,因为它能够自动保存 post 返回的状态,减少开发时间。但是这种开发时间的减少会带来巨大的消耗,Viewstate增加了页面的大小。
从上图中,我们可以看到与 MVC 对比,Viewstate 增加了两倍的页面存储。
MVC是怎么弥补这些问题的?
Asp.Net MVC 由 Model,View,Controller 三部分组成。Controller 中包含后台代码逻辑,View 是ASPX,如纯 HTML 代码,Model 是中间层。
不使用服务器控件,直接编写 HTML 代码,并且将后台代码迁移到独立的类库中,是 MVC 解决 Webforms 问题的方法。
直接编写HTML代码的好处在于,web设计者可以与开发人员紧密合作及时沟通,设计人员也可以使用他们喜爱的设计工具来设计HTML代码。
将后台代码迁移到独立的简单的类库,执行效率也会大大提高。
ASP.NET Webform 和 MVC 比较,如上图所示。
深入理解 ASP.NET MVC 今天就讲到这里,后续还会更新 “七天学会 ASP.NET MVC” 的其它篇章。
敬请期待!
相关开发工具
要进行 ASP.ET MVC 的开发,不但需要具备 MVC 的知识,还需要高效的工具来帮助开发。
使用 ComponentOne Studio Enterprise 中提供的 ComponentOne Studio ASP.NET MVC,您能获取快速的轻量级控件来满足用户所有需求,大大减轻工作量。
快人一步,免费试用
如果您想试用 ComponentOne Studio ASP.NET MVC,请联系我们:
微信:GrapeCityDT
邮件:marketing.xa@grapecity.com
官网:www.gcpowertools.com.cn
关于葡萄城控件
葡萄城是一家跨国软件研发集团,专注控件领域近30年,是全球最大的控件提供商,也是微软认证的金牌合作伙伴
猜你喜欢
- 2025-03-28 ASP.NET MVC AJAX 文件上传(asp.net core 文件上传)
- 2025-03-28 来,我们一起做个 ASP.NET Core 项目!
- 2025-03-28 ASP.NET Core 基础系列(4)(Startup)
- 2025-03-28 Winform开发技术详解 - 应用环境 & 相关技术介绍
- 2025-03-28 ASP.NET Core EFCore 属性配置与DbContext 详解
- 2025-03-28 ASP.NET Core3.1中文教程 完整版高清PDF
- 2025-03-28 WEB报表开发工具哪个好?主流.NET报表控件对比测评
- 2025-03-28 在ASP.NET Core中集成认证和授权流程
- 2025-03-28 ASP.NET Core WebAPI 版本控制实现指南
- 2025-03-28 在 ASP.NET Core 中集成 Autofac 依赖注入容器:实现灵活的依赖管理
- 04-29php开发者composer使用看这一篇就够了
- 04-29引用和变量声明在不同语言中的实作
- 04-29PHP 没你想的那么差
- 04-29Ubuntu linux 上的 Nginx 和 Php 安装
- 04-29CentOS下通过yum搭建lnmp(单版本PHP)
- 04-29为什么 PHP8 是个高性能版本
- 04-29PHP8函数包含文件-PHP8知识详解
- 04-29使用无参数函数进行命令执行
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)