六、 .NET框架篇
  .NET是微软自从发布Windows 3.0以来最为激动人心的新技术,是微软战略上为下一个十年对服务器和桌面软件工程的第一步,是微软的一场世纪大豪赌。对于.NET,微软的定义是,“用于构架、配置、运行网络服务及其他应用程序的开发环境。该平台包括三个主要部分:公共语言运行时、框架类和ASP.NET。”
  .NET框架是微软公司继Windows DNA以来的新的开发平台。基于这个新的框架,以前在DNA中暴露出来的缺陷有望得到解决。另一方面,.NET并没有完全抛弃WINDOWS DNA,实际上它是WINDOWS DNA的继续和发展。如今的.NET不仅有一套明确的技术规范,还提供了一系列的支持产品,例如编译器、类库甚至最终的用户程序。如Windows.NET是操作系统平台、.NET框架是运行环境、.NET企业服务器为产品服务器、Visual Studio.NET为编程平台。
  .NET框架是以一种类似于Java系统的虚拟机方式运行和管理的编程平台,通过公共语言运行时刻为基础,支持多种语言(C#、VB.NET、C++、Python 等)的开发。下图5展示了.NET的整体框架结构。

  图5..NET体系结构。
  下面的图6则从另一个角度展示了公共语言运行库和类库与应用程序之间以及与整个系统之间的关系。注意,该插图还展示了托管代码如何在更大的结构内运行。

  图6..NET公共语言运行库与类库、应用程序及整个系统之间关系示意图。
  .NET框架具有两个主要组件:公共语言运行库和.NET框架类库。公共语言运行库是.NET框架的基础。您可以将运行库看作一个在执行时管理代码的代理,它提供内存管理、线程管理和远程处理等核心服务,并且还强制实施严格的类型安全以及可提高安全性和可靠性的其他形式的代码准确性。事实上,代码管理的概念是运行库的基本原则。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。.NET框架的另一个主要组件是类库,它是一个综合性的面向对象的可重用类型集合,您可以使用它开发多种应用程序,这些应用程序包括传统的命令行或图形用户界面(GUI)应用程序,也包括基于ASP.NET所提供的最新的应用程序(如Web窗体和XML Web服务)。
  .NET框架可由非托管组件承载,这些组件将公共语言运行库加载到它们的进程中并启动托管代码的执行,从而创建一个可以同时利用托管和非托管功能的软件环境。.NET框架不但提供若干个运行库宿主,而且还支持第三方运行库宿主的开发。
  【注】.NET框架简史
  .NET框架1.0(完整版本号1.0.3705),系最初的.NET构架,发行于2002年。它也是第一个微软Visual Studio.NET的发行版的一部分(Visual Studio.NET 2002)。
  .NET框架1.1(完整版本号1.1.4322),这是首个主要的.NET框架升级版本,发行于2003年,它也是第二个微软Visual Studio.NET版本的一部分(Visual Studio.NET 2003)。它也是首个Windows Server 2003内置的.NET框架版本。这个框架新增功能有:
  ·内建了对移动ASP.NET控件的支持,现在已经集成到框架的内部。
  ·安全方面的变更—使得Windows窗体代码以可靠的行为执行,从而可以在互联网环境内安全运行,并且加入了ASP.NET应用程序的代码安全访问功能。
  ·内建了对ODBC和Oracle数据库的支持,现在已经集成到框架的内部。
  ·.NET Compact框架—这是一个用于智能设备(例如 PocketPC或者SmartPhone)的.NET框架的子集。
  ·对IPv6的支持。
  ·大量的API变更。
  .NET框架2.0(完整版本号2.0.50727.42),发行于2005年10月27日。重大改进有:
  ·大量的API变更。
  ·一个新的API让需要管理一个.NET运行库实例的非.NET的应用程序可以做到这点。这个新的API对.NET运行库的各种功能(如多线程、内存分配、代码载入等)均提供了很好的控制。
  .NET框架3.0(曾用名WinFX),将随Windows Vista一同发布。这个框架依然使用.NET框架2.0版本的CLR(公共语言运行时),并加入了适应未来软件发展方向的4个框架:Windows描述基础(WPF)、Windows通信基础(WCF)、Windows工作流基础(WWF)和Windows CardSpace(WCS)。

微软软件开发技术二十年回顾-.NET框架篇的更多相关文章

  1. 微软软件开发技术二十年回顾-Windows DNA篇

    五. Windows DNA篇 微软的Windows分布式因特网应用体系(简称Windows DNA)是微软创建新一代高适应性商业解 决方案的框架,它使公司能够充分地挖掘数字神经系统的优点.Windo ...

  2. 微软软件开发技术二十年回顾-COM、OLE、ActiveX及COM+篇

    本文摘自:http://www.job168.com/info/read_100394.html 微软的许多技术,如OLE.ActiveX.以及DirectX等都是基于COM技术而建立起来的.微软本身 ...

  3. 微软软件开发技术二十年回顾-MFC篇

    三. MFC篇 Windows API是面向过程的接口,因此对于当时的编程技术来说,它是完美无缺的.但是,随着人们逐渐使用C++进行Windows程序的开发,迫切需要建立与Windows API的面向 ...

  4. 微软软件开发技术二十年回顾-API篇(转)

    二. API篇 随着Windows操作系统开始占据主导地位,开发Windows平台下的应用程序成为人们的需要.当然,这也为传统的DOS程序员提供了一种新的编程方法-一种不受设备限制并由事件驱动的编程方 ...

  5. Qt开发技术:图形视图框架(二)场景QGraphicsScene、QGraphicsItem与QGraphicsView详解

    前话   Qt的图形视图框架,最核心的三个类为:QGraphicsScene.QGraphicsItem与QGraphicsView.   基于图形框架的高级白板软件Demo QGraphicsSce ...

  6. fir.im Weekly - 2016 移动开发技术大回顾

    2016 年是移动技术发展迅速的一年,认认真真回顾这一年必不可少.@移动开发前线 的 这篇 2016移动开发技术巡礼 ,精心盘点了 2016 年 移动开发技术大事件,分为 iOS/Android平台篇 ...

  7. Qt开发技术:图形视图框架(一)基本介绍

    前话   使用到Qt的视图框架.   Qt视图框架介绍 简介   图形视图框架(The Graphic View Framework)用于管理和与大量定制的二维图形项目交互,以及用于可视化项目的视图小 ...

  8. javac选项以递归方式编译给定目录下的所有Java文件 - IT屋-程序员软件开发技术分享社区

    http://www.it1352.com/539276.html #Linux $ find -name“* .java”> sources.txt $ javac @ sources.txt ...

  9. 【Android 直播软件开发:音视频硬解码篇】

    开篇 炙手可热,望而生畏的音视频开发 时至今日,短视频App可谓是如日中天,一片兴兴向荣.随着短视频的兴起,音视频开发也越来越受到重视,但是由于音视频开发涉及知识面比较广,入门门槛相对较高,让许许多多 ...

随机推荐

  1. 2017 校赛 问题 E: 神奇的序列

    题目描述        Aurora在南宁发现了一个神奇的序列,即对于该序列的任意相邻两数之和都不是三的倍数.现在给你一个长度为n的整数序列,让你判断是否能够通过重新排列序列里的数字使得该序列变成一个 ...

  2. 两张图说明http协议,tcp协议,ip协议,dns服务之间的关系和区别

    一.理解一个传输流再去扩展 用http举例来说,首先作为发送端的客户端在应用层(http协议)发出一个想看某个web页面的http请求. 接着,为了传输方便,在传输层(tcp协议)把从应用层处收到的数 ...

  3. 2019-9-2-win10-uwp-打包第三方字体到应用

    title author date CreateTime categories win10 uwp 打包第三方字体到应用 lindexi 2019-09-02 12:57:38 +0800 2018- ...

  4. python 逗号分隔值文件的操作

  5. 应用中弹出 WiFi 提示框的方法

    如果 iOS 程序中用到了 WiFi,想有 WiFi 提示,只需要在 .plist 文件中加入如下 Key/Value 即可: 键名:ApplicationusesWi-Fi 值:YES 键名:SBU ...

  6. shell学习(15)- eval及shell No such file or directory解决办法

    eval可以读取一连串的参数,然后按照参数特性来执行.参数数目不限,彼此之间用分号隔开. eval会对后面的命令进行两遍扫描,如果第一遍扫描后,命令是个普通命令,则执行此命令:如果命令中含有变量的间接 ...

  7. JDK8中`Optional.orElse()` 和`Optional.orElseGet()`之间的区别

    看例子就明白了 ``` static String B() { System.out.println("B()..."); return "B"; } publ ...

  8. oracle函数 SYS_CONTEXT(c1,c2)

    [功能]返回系统c1对应的c2的值.可以使用在SQL/PLSQL中,但不可以用在并行查询或者RAC环境中 [参数] c1,'USERENV' c2,参数表,详见示例 [返回]字符串 [示例] sele ...

  9. oracle函数 LENGTHC(c1).LENGTH2(c1).LENGTH4(c1)

    [功能]返回字符串的长度; [说明]多字节符(汉字.全角符等),按1个字符计算 [参数]C1 字符串 [返回]数值型 [示例] SQL> select length('高乾竞'),length( ...

  10. Top 10 open source projects of 2015

    Top 10 open source projects of 2015 Posted 15 Dec 2015Jen Wike Huger (Red Hat)Feed 188 up 31 comment ...