.NET 简介 (来源:清华大学出版社)

来源:互联网 发布:js定时跳转页面 编辑:程序博客网 时间:2024/06/06 09:07

.NET 简介 (来源:清华大学出版社) 附带图片

转载自 聪明的一休    转载于2010年05月07日 17:11 阅读(1) 评论(0) 分类: IT知识取款机
举报举报

首先要说明的是:.NET的含义并不简单。在讲解其定义之前,让我们先来看看其设计目标,以达到事半功倍的效果。

Microsoft.NET首先是飞速发展的网络形式的产物,目标是使程序员,特别是使用Microsoft技术的程序员能够在一个应用程序开发平台上快速开发出功能强大的Web应用程序。.NET代表了一个集合、一个环境、一个编程的基本结构,作为一个平台来支持下一代的因特网,这是一个可实现的环境。.NET也是一个用户环境,是一组基本的用户服务,可以作用于客户端、服务器,以及任何地方,并与该编程模式具有很好的一致性,而且有新的创意。

从设计角度上看,Microsoft.NET平台和Windows平台较为相似。该平台的建立,使用户能创建出更多的应用软件。Windows平台上可以使用大量第三方技术,促使个人计算机产业发生了巨大的变革。同样地,.NET能够让遍布全球的网站提供更有价值的服务,还能让用户以非常简便的方式从多个网站上获取信息。

可以这样说,.NET是一个可以支持下一代因特网服务和运营的平台。这个平台包含微软新一代的操作系统—— Windows XP、大量的因特网服务软件、对各种设备(PDA、机顶盒、信息家电等)的支持和微软提供给开发人员的最新应用软件开发套件—— Visual Studio.NET等。在这个平台上,用户可以得到完整地接受服务,开发人员可以得到平台在开发方面的有力支持,以创建各式各样的应用软件。这个平台可以简单地用图1-1来表示。

除此之外,.NET战略同时也是为了对付日益流行的Java。也就是说,微软将未来IT行业发展的一切都以一个名词来概括,这个名词就是.NET。

 

 

图1-1 NET作为支持因特网的平台将所有类型的设备连接起来1.1.1 .NET的核心内容

微软认为.NET的核心内容就是要搭建第三代因特网平台,同时建立这个平台上的运营规则。这个网络平台将解决网站之间的协同合作,从而最大限度地获取信息。在.NET平台上,不同网站之间通过相关的协定联系在一起,网站之间可以自动交流、协同工作,以提供最全面的服务。

微软认识到服务走向因特网是IT产业发展和世界经济发展的必然方向,所以.NET的核心目标就是对其现有的计算模式和软件开发方式进行有针对性的调整,使之符合第三代因特网运营的需要。并利用其现有的科技开发实力,同诸如IBM这样的厂商修改和定义网络通信协议,建立未来在.NET平台上的运作规则,搭建第三代因特网平台。

在计算机开发的最初时代,还没有人能意识到组件技术的意义。开发编程大多是DIY(Do It Yourself,自己动手做)式的做法,设计带窗口的图形界面、菜单、显示图像等全部要由自己编写代码来实现。

Windows平台为广大的程序员们带来了一个通用的系统函数库—— WindowsAPI。通过WindowsAPI,界面的实现变得非常轻松容易。自Windows 95开始,单是按钮、菜单已经不能吸引住用户,界面变得更复杂也更丰富了。一个功能强大、外观漂亮的控件的编码量甚至超过了以往DOS程序中所有界面工作的总和。在界面复杂化的同时,应用程序的应用逻辑也在日益复杂化,同时,计算机在各个领域的应用也更广泛,比如在金融、财务及科学等方面。

但是,WindowsAPI对程序的复杂化起了推波助澜的作用。程序员们迫切地需要一种体系来建立可重用代码。什么是可重用呢?这个问题切中了COM(component object Model,组件对象模型)的要害,可重用也就是对一个软件中普遍适用的功能进行抽象化,从而达到不用修改或几乎不用修改就可以直接被其他需要该功能的软件直接使用的目的。

软件可重用也经历了好几个时期。在可重用性开始被人们重视的时候,还没有一个完整的体系来从底层体现它,那时可重用还大多是代码级的可重用,也就是说实现可重用的方法是拷贝相同功能的代码。这个方法有限得很,而且有时还很不方便,源代码不是每一个软件制作者都愿意公开的。代码级重用没有延续多少时间,很快就有另外一种重用方式出现了,这就是库重用。库重用重用的不是源代码,而是二进制库,开发人员把可以重用的源代码编译成库文件(一般是后缀名为LIB或者OBJ的文件),然后其他的开发人员可以直接使用库文件中的函数(通常是函数)。库重用相对于源代码重用来说,无须再拷贝任何东西,而只要简单地引入库文件就可以。因为库文件已经是二进制的了,所以开发人员可以放心地发放和使用重用库,而不用担心源代码会泄漏;另外,不像源代码重用那样局限于某一种语言,虽然库文件在各种语言之间还不能完全通用,但是通常在同一个公司的产品中能通用。

库重用虽然缓冲了重用矛盾,但是重用难题并没有被解决。与此同时,模块化的问题随着面向对象理论的出现和应用而迎刃而解,有人开始借鉴面向对象技术来化解软件重用问题。对象重用是继库重用之后出现的一种方案。对象重用不是单纯的重用,而是介于代码重用和高层的逻辑重用之间的一个中间产物。对象重用需要借用代码重用,仍然是需要使用代码来达到重用目的,但是又不像代码重用那样只拷贝代码或者引入一个库就了事。对象本身带有一定的逻辑,可以相对地独立于系统,所以对象重用在库重用的基础上进一步消除了重用者对重用代码的依赖,也就是说,重用者只需较少地了解重用代码就可以使用。

对象重用还是不尽如人意,微软提出了一个DLL(动态链接库)方案,DLL属于操作系统级支持的接口重用方案。接口重用使得软件重用第一次在PC编程世界焕发出光彩。接口重用不是代码级重用,但也不是真正的高层的逻辑重用,它只能算是一个中间产物。接口重用的思想是让开发人员编写好所有的可重用代码,并根据操作系统的规则编译成接口重用文件(这里指的是DLL文件),然后重用者通过对该文件的接口查询、引入来使用该文件内部的代码。接口重用第一次从代码级重用中脱离出来,代码级重用都需要对语言平台进行指定,而接口重用则不然,接口重用可以采用任何语言,这样DLL库就可以让重用在所有语言中进行。接口重用不仅使重用者脱离了代码上的问题,而且也使得重用代码可以脱离原系统而作为一个独立的部分在各个软件之间共享。虽然DLL很好地解决了重用性问题,但是DLL是静态的。之所以说是静态,是因为DLL本身什么也不知道,就像库文件一样,它自己只能等待程序来调用它,而不能有任何动作和交互。

微软在DLL的思想上再进了一步,ActiveX也参与到重用性的混战中了。ActiveX和DLL最大的不同在于ActiveX能解释自己。也就是说,ActiveX能通过调用它的程序进行交互,它本身也可以作为一个软件的一部分参与应用事务。这是一个了不起的进步,现在重用这个词已经不仅仅限于代码上的节省了,而且延伸到应用逻辑领域。因为ActiveX能参与应用程序的交互和逻辑处理,所以应用程序可以在ActiveX的基础上构筑更大、更复杂的应用。这样,编码工作实际上就被分散了,一部分人去专心编写他们的ActiveX,而另外一部分人则继续他们的应用程序编写,然后两部分工作一合并就可以产生一个完整的程序,这样程序的稳定性也大大增加了。

ActiveX并没有停滞不前,COM的产生为重用带来一个新名词—— 组件对象模型。COM是ActiveX二代,不仅具有更完善的重用性能,而且对网络的支持也更好。现在的COM已经被集成到了Windows系统中,成为操作系统的一部分。

微软认为.COM是信息海洋中一个一个的“数字孤岛”。而将这些数字孤岛连接起来,打破不同的操作平台、不同的网络设施以及业界遗留下来的藩篱,从而实现因特网统一的解决方案就是.NET。这个方案如图1-2所示。可以看出,微软在基本统一了PC之后,不但想向因特网进军,而且还要通过进一步的革新和发展来统一因特网。

 

 

图1-2 .NET将.COM“数字孤岛”联系起来

.NET组件使用非专用的、独立于平台的XML与其他组件在网络上进行通信,可以轻易地跨越防火墙,而且不受网络协议的限制。.NET组件与COM组件不同,不必放在系统注册表中,而是在被称为“清单”的区域中封装全部信息,详见第3章的具体介绍。1.1.2 .NET对用户的重要意义

从只有极少数专业人士才能接触到的大型计算机到安装有DOS的PC机,为DOS操作系统的简单易用使得使用电脑的人数大大增加。与此同时,计算机使用人数的增加也刺激了PC业的发展,进而对PC操作系统的发展产生强大的推动力。从Windows开始装备PC机的那一天起,使用电脑的人数呈几何级数增长。因为,Windows操作系统不仅提供了比DOS更为强大的功能,而且提供了更为友好的人机交互界面,使人们能够比以往任何时候都可以方便地使用计算机,并将计算机看成是辅助自己完成繁琐工作的得力助手。但是,因为受限于当今软件科技的发展水平,距离“科技以人为本”、“科技服务于人”的理想标准,还有相当长的一段路要走。

.NET对最终用户来说非常重要。以前人们必须具备相当的技术功底才能让计算机很好地为他们服务。很多计算机概念令人难以理解,以致于最终用户在掌握计算机使用技能时总是需要花费大量的时间和精力。但是,随着.NET平台的诞生与发展,在.NET网络平台上,人们可以使用键盘、鼠标、手写、语音和语言等各种方式进行人机交流,这将极大地降低人们使用网络的难度,从而为构建全真虚拟网上社会打下基础。.NET平台提供的强大功能可使用户轻松地进行因特网连接,并完成那些在当时看来十分费时、费力的事务。用户可以自由访问、查看及使用自己的数据。

随着宽带技术的发展和普及,以及新一代因特网技术的发展,越来越多的非PC设备和信息终端在提供网络服务方面扮演着越来越重要的角色。例如,传统的电视将被机顶盒代替,人们可以与电视节目进行交互,这将极大地丰富人们的生活。

.NET的出现,意味着人们只用一种简单而统一的界面就可以编写、浏览、编辑和分享信息。由于.NET世界中的“世界语”是XML,而作为信息交换载体的所有文件都以XML格式存在,所以任何规模的公司都可以使用相同的信息交换形式与供应商、伙伴和客户分享信息。这样,一种全新的协同工作模式就随着.NET的应用而应运而生。1.1.3 微软的.NET战略

.NET战略,大概是微软公司自创建以来制定的影响最为深远的决策。其意义之深远、涉及面之广、实施难度之大,恐怕只有从微软这样的“巨人”嘴里说出来才会有人相信。并且,微软的这个战略确确实实地已经成为了IT行业的业界之最,因为用微软自己的话来讲,“真正的竞争对手又是谁呢?从某种意义上说,这是一个很好的问题。没有任何对手宣布过他们的.NET。说实话,无论是从开发商或者是最终用户的角度来看,都找不到任何一种其功能类似于.NET的软件产品。也没有任何其他人士能够做出类似的东西来。”

的确,这个战略实施的难度太大了,因为这个战略的实施进度表不仅仅被微软控制,还必须与成千上万的服务商和诸如IBM、SUN这样的竞争对手协同工作,制定因特网未来的规范,这样才能完成这一梦想。微软认识到了这项计划实施起来的艰巨性和复杂性,所以微软公司的领袖把这个战略当成是微软的世纪豪赌。

实际上这是在赌一场软件业的改革。将软件作为一种服务的概念非常引人注目,它将会引起软件同行的关注,但是要等多久人们才能彻底革新他们的业务模式呢?

应用程序和网站集成以及XML的重要性正在日益受到重视。大量的服务器、客户和其他零散服务会变得非常重要。微软公司力争把用户界面变为一个能够进行本地存储、自主管理、以各种方式定制工作模式和数据的世界。

由于Windows 2000和Windows XP是.NET的基础核心,托管.NET工作的操作系统和平台是否成功也是极其关键的因素,对于成功地实现可扩展性、可靠性和可管理性至关重要。1.1.4 理解“软件作为服务”

.NET的设计目标之一就是让“软件作为服务”。但是对于这句话,我们应当怎样理解呢?

在人们日常生活中,离不开各式各样的服务。比如,如果用户在当地ISP申请了网络使用账号,那么当网络设备连接妥当之后,就可以享受美妙的因特网服务;当观众在所属地区申请了有线电视服务,并按手续缴纳了服务费用后,就可以在闲暇之余,享受精彩的电视节目。两者都是客户通过对某些服务进行“订阅”,并按时缴纳服务费用后,得以享受相关服务的例子。其实对于“软件作为服务”的最简单的认识与上面的例子无异,在网络上开通的各种联机杂志、金融信息等服务,就是我们身边形式最简单的软件服务。

所谓“软件作为服务”其实就是一种提供软件服务的机制。最终用户可以根据自己的需要来“订阅”应用软件的功能,并且这种“订阅”是有选择性的,用户可以在一个庞大的应用程序中选择他们所需要的那一部分。这种“订阅”机制不同于传统应用程序,它可以满足最终用户对于自有配置应用的需求。

举个例子,像Word这样的字处理软件,虽然功能强大,但是仍然有很多用户对其感到不满,因为Word中包含了太多他们根本就不需要的功能。用户都希望能够对软件进行自由配置,因为只有这样,才可以在得到足够功能的同时,省掉为不需要的软件功能而支付费用。

随着.NET应用的普及,软件最终可以实现在因特网上的动态安装—— 用户可以只安装感兴趣的或当前工作需要的部分,或者干脆将整个程序都放在网络上。这很像现在多数人使用的基于Web的电子邮件系统,只要连接到因特网,不论使用的是哪一台电脑,也不管这台上网的电脑物理位置在何处,都可以自由地浏览、编辑自己的邮件。这种方式还有助于拉近软件开发人员和最终用户的关系,因为一方面,用户可以从频繁的升级和补丁中获得软件的新特性,而另外一方面,软件开发人员也可更好地理解用户的需求,进而开发出更受消费者欢迎的产品。

最终用户可以从.NET的许多方面享受到动态安装和订阅服务带给他们的好处。为了实现这些令人向往的功能,装配件作为.NET技术的一个核心概念被引入,使用装配件,应用程序可以通过一个清单(manifest)来维护应用程序的组件信息。当然,这不仅是一个专属因特网的新特性,它同时也是解决DLL兼容问题的基础。有关装配件和清单的详细内容,请参阅本书第3章。

“软件作为服务”的另外一个方面,就是在网络上能够暴露可编程接口,并通过这种方式来共享站点的服务。而当今,Web网站的开发模式决定了站点彼此之间是相互隔离的“孤岛”。举个例子,如果某个Web站点开发人员要为他的站点提供信用卡验证功能的支持,那么他要么自己开发软件,要么从别人那里购买软件模块。而.NET采用的方式将简化他们的工作,因为相关的服务就放在网络上共享的地方,随时为需要它们的人们准备着。开发人员可以直接引用这些接口来完善自己应用程序的功能。这个允许在Web站点之间暴露可编程接口的技术叫做Web服务(Web Service),它通过将标准的XML语言和SOAP(简单对象访问协议)作为信息描述和交换的手段,使“软件作为服务”不再是梦想。有关Web服务的具体内容,在本书的第9章中有更为详尽的论述

原创粉丝点击