zl程序教程

您现在的位置是:首页 >  后端

当前栏目

《ASP.NET MVC 4 实战》----第 1 章 绪论 1.1 发展阶段

NetASPMVC 实战 发展 ---- 1.1 阶段
2023-09-11 14:17:32 时间
ASP.NET MVC是微软.NET平台上的一个Web开发框架,它为开发者提供了一种构建结构良好的Web应用程序的方式。

本节书摘来自异步社区《ASP.NET MVC 4 实战》一书中的第1章,第1.1节,作者: 【美】Jeffrey Palermo , 【美】Jimmy Bogard , 【美】Eric Hexter , 【美】Matthew Hinze , 【英】Jeremy Skinner,译者: 徐燕萍 , 李萍 , 林逸 , 更多章节内容可以访问云栖社区“异步社区”公众号查看。

第 1 章 绪论

ASP.NET MVC 4 实战
本章内容
boll ASP.NET简史

boll MVC模式介绍

boll ASP.NET MVC 3/4的新特性

ASP.NET MVC是微软.NET平台上的一个Web开发框架,它为开发者提供了一种构建结构良好的Web应用程序的方式。自2007年首次公布预览版以来,作为Web Form的替代品,ASP.NET MVC的普及度已明显提高,现在很多大型Web应用程序都是使用这一技术构建的。

虽然微软长期以来一直在发展Web开发的工具和框架,但ASP.NET MVC却以整洁的代码、关注分离和可测试性对先前的努力形成了一种重要转移。

在这第一章中,我们将简要考察微软Web平台的历史,并介绍MVC设计模式。最后,提一提通过本书可考察到的一些ASP.NET MVC新特性。如果你有ASP.NET MVC以前版本的经验,可以跳到第2章。

让我们先简要看看.NET平台上的Web开发是如何演变的。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

1.1 发展阶段

ASP.NET MVC 4 实战
根据在微软平台上建立Web应用程序的时间长短,你或多或少会经历以下痛苦。20世纪90年代,开发人员使用运行在服务器上的可执行程序来构建交互式网站。这些程序(CGI,公共网关接口,是当时常用的技术)接受Web请求,并负责创建HTML响应。模板是特定的,而且程序难以编写、调试和测试。20世纪90年代后期,经过短暂的HTX模板和IDC连接器阶段之后,微软推出了活动服务器页面(Active Server Pages),即ASP。ASP将模板带入了Web应用程序。服务器页面是一种HTML文档和动态脚本的混合体。虽然这种替代方案向前迈进了一大步,但服务器页面很快变得十分臃肿,而且这种组合式的代码和标记几乎无法辨认。

2002年年初,微软发布了第一版.NET框架,这是经典ASP开发领域的一个巨大转移。

1.1.1 .NET平台

.NET对熟悉经典ASP动态脚本的开发人员而言,是一个巨大的转移。.NET引入了几种新的编程语言,这些语言被编译成相同的中间语言,以便在.NET的公共语言运行时(Common Language Runtime,CLR)上运行。最初,这些语言包括C#、Visual Basic.NET以及J#等,所有这些都是静态的类型化语言。

随着时间的推移,这些在CLR上可用的语言已经得到演化。对于最新版的.NET框架(.NET 4),可以使用以下语言:


28c9b3d3d25be917b67b0850ceec9396a69113e3

除了这些语言之外,.NET 4还包含了一个新的动态语言运行时(Dynamic Language Runtime,DLR),它让动态编程语言可以在CLR上运行。这些语言包括IronRuby和IronPython,它们是流行的Ruby和Python编程语言(在.NET平台上)的开源实现。DLR特性现在对诸如C#之类的静态类型化.NET语言也是可用的。(各部分之间的相互关系见图1.1 —译者注)


7fa75b7dbb479af3299d186eb4f4f9a42e533286

除了支持数种编程语言之外,.NET框架还提供了框架类库(Framework Class Library,FCL)—一个含有大量执行各种任务的类的集合库。用于Web开发的ASP.NET库是这个集合的一部分。

1.1.2 ASP.NET Web Form

ASP.NET Web Form是微软建立在核心的ASP.NET库之上的第一个Web开发框架,而且它完全不同于ASP开发人员以前所处理的事物。

Web Form是围绕事件驱动的页面生命周期而建立的,在渲染的页面上可以触发事件。作为开发人员,你可以对这些事件进行挂接,以便在页面生命周期的某个时刻运行代码。用户界面元素被定义为控件,每个控件负责自身的渲染过程,并有一组自己的事件。这种方法虽然对于具有Visual Basic 6或Windows Form背景的开发人员来说较为熟悉,但传统的Web开发人员却感觉背道而驰,因为它背离HTTP基础而进行了抽象,并在Web上强迫实行状态化模型,然而,Web本质上是无状态的。

当Web Form第一次发布时,受困扰的程序员要搜索神奇的事件,以便在这些事件中添加几行必要的简单代码,以使页面在需要时正常工作,但服务器端事件生命周期却随活动而引发了爆炸式增长。Web Form还引入了视图状态(ViewState)的概念,将其用于维护你正在使用状态化模型的假象(因为Web本质上是无状态的,状态化模型实际上是抽象出来的假象—译者注)。

虽然理论上可行,但随着应用程序的复杂性增加,视图状态崩溃了。由于整个应用程序的状态都必须存储在每一个生成页面的输出之中,即使简单的页面也可能有数百KB大小。由于诸如Visual Studio之类的工具鼓励将SQL查询这样的数据访问嵌入到页面逻辑之中,开发的最佳实践被忽视了。Web Forms框架最大的失误也许是把所有事情都紧密地耦合在System.Web命名空间之中。单元测试后台代码文件中的代码毫无希望,现在再看许多尚存的Web Form应用程序,其Page_Load方法可能有数页之长。尽管早期版本的Web Form有一些缺陷,但ASP.NET以及更大的.NET框架对Web应用程序市场已经形成了巨大冲击。如今,我们看到许多著名的网站都运行在ASP.NET平台之上。该平台在市场上已经证明了自己,而且,当与运行在Windows上的IIS相结合时,ASP.NET可以很容易地支持在大型数据中心运行的复杂Web应用程序。

ASP.NET MVC框架利用了ASP.NET的成功,推动ASP.NET成为Web应用程序开发领域的领导者。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。


实战解读ASP.NET Core身份认证 长话短说:上文我们聊了 ASP.NET Core 基于声明的访问控制到底是什么鬼? 今天我们乘胜追击:聊一聊ASP.NET Core 中的身份验证。
ASP.NET Core 实战:基于 Dapper 扩展你的数据访问方法 ASP.NET Core 实战:基于 Dapper 扩展你的数据访问方法 在非静态页面的项目开发中,必定会涉及到对于数据库的访问,最开始呢,我们使用 Ado.Net,通过编写 SQL 帮助类帮我们实现对于数据库的快速访问,后来,ORM(Object Relational Mapping,对象关系映射)出现了,我们开始使用 EF、Dapper、NHibernate,亦或是国人的 SqlSugar 代替我们原来的 SqlHelper.cs。
ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路 原文:ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路  一、前言  最近一段时间自己主要的学习计划还是按照毕业后设定的计划,自己一步步的搭建一个前后端分离的 ASP.NET Core 项目,目前也还在继续学习 Vue 中,虽然中间断了很长时间,好歹还是坚持下来了,嗯,看了看时间,原本决定的半年完成肯定是完不成了。
实战中的asp.net core结合Consul集群&Docker实现服务治理 0、目录 整体架构目录:ASP.NET Core分布式项目实战-目录 在写这篇文章之前,我看了很多关于consul的服务治理,但发现基本上都是直接在powershell或者以命令工具的方式在服务器上面直接输入consul agent .... 来搭建启动consul集群,一旦把命令工具关掉,则consul无法再后台启动,尤其是在linux系统中。
微服务介绍及Asp.net Core实战项目系列之微服务介绍 0、目录  整体架构目录:ASP.NET Core分布式项目实战-目录 一、微服务选型 在做微服务架构的技术选型的时候,我们以“无侵入”和“社区活跃”为主要的考量点,将来升级为原子服务架构、量子服务架构的时候、甚至恢复成单体架构的时候,代价最小。
微服务介绍及Asp.net Core实战项目系列 0、目录 整体架构目录:ASP.NET Core分布式项目实战-目录 0、微服务介绍 1、RESTful API 规范介绍 2、asp.net core介绍及swagger使用 3、asp.
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
Java Spring Boot开发实战系列课程【第7讲】:Spring Boot 2.0安全机制与MVC身份验证实战(Java面试题) 立即下载