第15章 · 播客 第6集

基于中间件的开发 · .NET 平台与框架:CLR、ADO.NET 与 ASP.NET

🎙️ 本集播客第6集:.NET 的定位与四个重要特点、框架全景图——最底层的 CLR 怎么靠 MIL 和 JITC 统一多语言、基础类库的命名空间、ADO.NET 的 DataSet 革新、ASP.NET 的 Web 表单与 Web 服务,最后是 J2EE 与 .NET 那道跨平台对多语言的经典对比题。 语音由微软 Edge 神经网络语音预生成(女声·晓伊,男声·云希)。点击下方任意对话可直接从该句开始播,当前句朗读时下一句已预先加载,无缝衔接。
🎙️ 第15章播客 第6集
⬇ 下载本集 点击播放
阿明
小雅姐,Java 阵营讲完了,这集轮到微软的 .NET?
小雅
对。先记战略定位:Microsoft.NET 战略基于一组开放的互联网协议,推出一系列产品、技术和服务。微软 CEO 鲍尔默说:「Microsoft.NET 代表了一个集合、一个环境、一个可以作为平台支持下一代 Internet 的可编程结构。」三个名词:集合、环境、可编程结构,填空题直接取材。
阿明
那 .NET 想造一个什么样的互联网?最终目的是什么?
小雅
原文原话:.NET 的最终目的就是让用户在任何地方、任何时间,以及利用任何设备都能访问他们所需要的信息、文件和程序;用户不需知道这些东西在什么地方,只需发出请求、只负责接收,所有后台的复杂性完全屏蔽。而支撑它的不是物理网络层次上的拓扑结构,而是面向软件和应用层次的可编程 Internet 软件结构,判断题爱问这句。
阿明
.NET 有四个重要特点是吧?
小雅
.NET 包括 4 个重要特点:一是软件变服务,二是基于 XML 的共同语言,三是融合多种设备和平台,四是新一代的人机界面。第一条软件变服务:今天的软件产品仅仅是一张光盘,用户购买、安装、管理和维护;软件服务来自 Internet,替用户安装、更新和跟踪,伴随 ASP(应用服务提供)产业的兴起,软件正从产品形式向服务形式转化,这是 IT 行业的整体趋势。
阿明
第二条 XML 共同语言呢?那几个协议缩写我总分不清。
小雅
XML 是从 SGML 语言演化而来的标记语言,作为元语言可定义不同种类应用的数据交换语言。.NET 通过 XML 定义了三个协议:SOAP 提供在无中心分布环境中用 XML 交换结构化有类型数据的简单轻量机制;WSDL 定义服务描述文档的结构,如类型、消息、端口类型、端口和服务本身;Web 服务发现协议定义如何从资源中提取服务描述文档。Web 服务本身是包装后可在 Web 上发布的构件,用 WSDL 描述发布、DISCO 查找、SOAP 传递调用。
阿明
第三第四条比较短吧?
小雅
第三条融合多种设备和平台:.NET 谋求与各种 Internet 接入设备和平台的一体化,主要关注无线设备和家庭网络设备及相关软件、平台。第四条新一代的人机界面:体现在「智能与互动」两方面,包括自然语音、视觉、手写等多模式输入;基于 XML 的可编辑复合信息架构——通用画布;个性化的信息代理服务;智能标记。
阿明
然后是框架结构,图里最底下那层是 CLR?
小雅
先给全景:通用语言运行时及它所提供的一组基础类库是整个开发框架的基础;开发技术有数据库访问 ADO.NET、网络应用 ASP.NET、Windows 编程 WinForms;开发语言支持 VB、VC++、C# 等;开发工具 VisualStudio.NET。
阿明
CLR 的定义我背过一半,通用语言运行时?
小雅
通用语言运行时 CommonLanguage Runtime,CLR,处于框架的最底层,是框架的基础,为多种语言提供统一的运行环境。原文类比 C 运行时、VB 运行时、Jave 虚拟机。真题问「处于框架最底层、为多种语言提供统一运行环境的是」,选项 CLR、基础类库、ADO.NET、ASP.NET,答 CLR。功能有:统一和简化的编程模型、避免 DLL 的版本和更新问题、多种语言之间的交互例如在 VB 中使用 C++ 编写的类、自动的内存和资源管理。
阿明
受控代码的运行步骤是个流程题吧?
小雅
是,三步按顺序背:基于通用语言运行时开发的代码称为受控代码。首先用运行时支持的编程语言编写源代码,然后用针对运行时的编译器生成独立于机器的微软中间语言(Microsoft Intermediate Language,MIL),同时产生运行所需的元数据,代码运行时再使用即时编译器(Just In Time Compiler,JITC)生成机器代码执行。链条:源代码、MIL 加元数据、JITC。
阿明
基础类库在 CLR 上面?
小雅
对。基础类库 Base Class Library 包括从输入输出到数据访问等各方面,提供统一的、面向对象的、层次化的、可扩展的编程接口,用点号分隔的方法查找和使用类库。例子:根的命名空间是 System,数据访问的命名空间是 System.Data。
阿明
ADO.NET 重点在 DataSet 吧?
小雅
先定位:在 Microsoft.NET 中访问数据库的技术是 ADO.NET,提供一组用来连接到数据库、运行命令、返回记录集的类库,与从前的 ADO 相比,Connection 和 Command 对象很类似,革新体现在三个方面。第一,提供对 XML 的强大支持,这也是 ADO.NET 的一个主要设计目标,支持 W3C 的 XSLT、DTD、XDR 等标准,这为 XML 成为 Microsoft.NET 中数据交换的统一格式提供了基础。
阿明
第二项革新就是 DataSet?真题考过它。
小雅
ADO.NET 引入了 DataSet 的概念,这是一个驻于内存的数据缓冲区,提供数据的关系型视图,不管数据来自关系型数据库还是 XML 文档,都可用统一编程模型创建使用,它替代了原有的 Recordset 的对象,尤其适合分布式应用。真题问「替代 Recordset、提供关系型视图的驻内存缓冲区」,选项 DataReader、DataSet、DataAdapter、DataTable,答 DataSet。
阿明
第三项革新是那些新对象?
小雅
第三,ADO.NET 还引入了一些新的对象,例如 DataReader 可以高效率地读取数据,产生一个只读的记录集。分工:DataReader 只读高效读,DataSet 驻内存缓冲区——这两个最容易互串,真题的 A 选项 DataReader 就是这么当干扰项的。
阿明
ASP.NET 呢,三个看点?
小雅
ASP.NET 是 Microsoft.NET 中的网络编程结构。第一,Web 表单:设计目的是使开发者非常容易地创建 Web 表单,把 VB 的快速开发模型引入网络开发。三点:支持多种语言;代码和内容分开,开发人员和设计人员分工合作;引入服务器端控件,可扩展,开发者可建造自己需要的控件。
阿明
第二是 Web 服务,写 .ASMX 文件那个?
小雅
对,Web 服务是下一代可编程网络的核心,实际上是一个可命名的网络资源,就像使用 COM 对象一样,不同的是通过 SOAP 甚至 HTTP 来实现。建造网络服务就是编写一个后缀为 .ASMX 的文件,加入想表现的方法即可,建造者不需要了解 SOAP、XML 细节;使用最简单的方式是 HTTP 协议(HTTPGET 或 HTTPPOST),直接访问 .ASMX 文件的 URL。
阿明
第三个应用框架,性能提升靠编译?
小雅
ASP.NET 应用不再是解释脚本,而是编译运行,再加上灵活的缓冲技术,性能从根本上得到了提高。由于应用框架基于通用语言运行时,发布一个网络应用仅仅是一个复制文件的过程,更新和删除网络应用可以直接替换删除文件;配置信息可存放到 XML 格式的文件中;还提供了更多样的认证和安全管理方式。「不再是解释脚本而是编译运行」是判断题原句。
阿明
语言和 COM 那段呢?C# 是为 .NET 新造的?
小雅
WinForms 一句带过:传统的基于 Windows 的应用仍是 Microsoft.NET 战略中不可或缺的一部分,除利用 ActiveX 控件及丰富的 Windows 接口,还可基于通用语言运行时开发。语言方面:测试版中已支持 VB、C++、C# 和 Jscript 四种语言及深层次交互。C# 单独背:全新的面向对象语言,快速构建从底层系统级到高层商业构件的不同应用,给 C 和 C++ 带来类似 VB 的快速开发,还允许 XML 数据直接映射为它的数据类型。
阿明
COM 构件和 .NET 构件是什么关系?
小雅
原文辨析:.NET 框架的一个主要目的是使 COM 开发变得更加容易,已自动处理了所有与 COM 紧密相关的任务,包括引用计算、接口描述及注册。但这并不意味着 .NET 构件不是 COM 构件——VisualStudio 6.0 的 COM 开发人员可以调用 .NET 框架构件,后者更像是拥有 iUnknown 数据的 COM 构件。区别在自动化:COM 构件必须手写安全模块、无法自动管理内存、安装必须写 Windows 注册表,.NET 构件自我描述、无须注册便能安装。
阿明
COM+ 呢?
小雅
原文的定义句:当把 COM 与 Microsoft 事务服务器(MTS)和分布式 COM(DCOM)结合在一起时,就变成了 COM+。COM+ 提供一组面向中间层的服务,特别是进程管理功能和数据库与对象连接池处理功能,将来版本还将提供称为分区的功能,专为应用程序服务提供商设计的更强大的进程隔离功能。配方背死:COM 加 MTS 加 DCOM 等于 COM+。
阿明
还有安全系统和 DLL 地狱那段?
小雅
本集必背清单:鲍尔默定义——集合、环境、可作为平台支持下一代 Internet 的可编程结构;四特点——软件变服务、基于 XML 的共同语言、融合多种设备和平台、新一代的人机界面;三协议——WSDL 描述发布、DISCO 查找、SOAP 传递调用;框架配对——数据库 ADO.NET、网络应用 ASP.NET、Windows 编程 WinForms、开发工具 VisualStudio.NET。
阿明
最后那道 J2EE 对 .NET 的对比题,怎么答才稳?
小雅
两个收尾考点。安全系统是高度细化、基于事实的系统,赋予多种代码处理权限而不仅仅是「on」或「off」,运行时收集应用程序的事实信息——从何处下载、是否有效签名——按管理策略决定是否允许运行。DLL 地狱的成因是新应用重写了共享库;.NET 靠两招消除:强大的内部命名系统防止重名错当,「并行」配置让应用发现文件被不兼容更改时可请求运行时提取可用版本自行修复。
阿明
跨平台配 Java、单平台配多语言,方向焊死。
小雅
真题四选项:A 说 J2EE 单平台多语言、.NET 跨平台单语言——正好说反;B 说都跨平台多语言——错;C 说 J2EE 跨平台、单语言 Java,.NET 单平台 Windows、多语言——对;D 说都单一——错。答案 C。依据:J2EE 基于 Java 一次编写到处运行,跨平台但仅支持 Java;.NET 绑定 Windows,通过通用语言运行时支持 VB、C++、C#、Jscript 等多语言。
阿明
两大平台对垒,各自的底牌都记住了。下一集?
小雅
真题四选项:A 说 J2EE 单平台多语言、.NET 跨平台单语言——正好说反;B 说都跨平台多语言——错;C 说 J2EE 跨平台、单语言 Java,.NET 单平台 Windows、多语言——对;D 说都单一——错。答案 C。依据:J2EE 基于 Java 一次编写到处运行;.NET 绑定 Windows,通过通用语言运行时支持 VB、C++、C#、Jscript 等多语言。说反的 A 最毒。
阿明
后半段细节也过一遍。
小雅
下一集讲企业应用集成 EAI——信息孤岛怎么来的、按集成深度分的三层什么顺序、交互式流程和多步流程怎么区分、数据集成为什么是基础。那集的排序题是高频坑,低到高的顺序一个字都不能背反。