大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> NET专区 -> 微软 .NET laza

微软 .NET laza

时间: 2021-07-31 作者:daque

纲要:.net安置是微软继推出dos、windows之后的又一个革新性的开拓平台。在所有.net框架中提出了洪量的新观念和新本领。正文从软硬件开拓的观点对.net框架举行阐明,同声对.net和j2ee举行比拟,并对.net提出了几点疑义。要害词:.net、xml(可扩充标志性谈话)、soap(大略东西考察和议)、windowsdna、汇合(assembly)、通用谈话运转时(clr)、il(中央谈话)、元数据(metadata)、名空间(namespace)、c#一、 媒介什么是.net?各别的人有各别的证明办法。有人觉得.net是一种崭新的下一代可视化开拓情况;有人觉得.net是一种新的对准internet期间的开拓谈话---c#;有人觉得它是鉴于xml(可扩充标志性谈话)和soap(大略东西考察和议)的新式消息调换平台,是面向将来的企业级的开拓平台。也有人觉得.net只然而是windowsdna本领的演化。一致如许的设置特殊多,那些讲法都对,然而都不过波及到了.net的一局部。开始该当确定的是.net是一场本领上的革新。在现在社会,本领超过是每天都爆发的,但革新不是常常有的。在微软的汗青上,从dos到windows32是一场本领革新,从windows32到windowsnt也是一场本领革新。跟着internet的飞快兴盛,软硬件开拓的难度正渐渐加大,现有的开拓平台和开拓情况与本领不管是从开拓本领上仍旧从开拓形式上越来越没辙满意internet期间的须要的鉴于web的运用步调和web效劳,即是在这种情况下,微软推出.net,不妨绝不夸大的觉得,.net是一场革新。在后面临.net的深刻计划中,咱们更能领会到这一点。二、.net框架的构成如图1所示,.net框架由很多上面形成,在所有构造体的最要害的是体例效劳(system service)和通用谈话运转时(common language runtime)。个中通用谈话运转时供给很多效劳来简化代码的开拓和运用步调的安置(deployment),同声在真实性和安定性上面也供给洪量的效劳。.net框架也囊括一系列的普通类库,那些普通类库不妨为任何一种鉴于.net的编制程序谈话运用,经过反面的计划就会发此刻此普通上不妨实行代码级的重用。在框架的最表层,.net供给了一系列组件(提防:在.net中大概用汇合(assembly)这个词包办组件更符合),极地面充分了开拓,不管是开拓鉴于windows的运用步调,仍旧开拓鉴于web的运用步调。 开始计划汇合(assembly),从外表上看,犹如在.net框架中基础未提到汇合的观念,但本质上汇合是无处不在的,汇合不妨觉得是受处置的组件。在此刻的开拓形式下,代码过程编写翻译后天生exe文献或dll文献,那些dll或exe都是对准某一种一定的cpu的,都是径直以呆板码的办法生存。这种办法的缺点仍旧让简直一切人都尝过苦头了---dll组织。在本质生存中,常常遇到如许的情景,在晋级了某一种dll的本子后,创造少许从来老本子的功效展示了题目,以至展示外存辩论、死机等题目。而在汇合中,因为代码的天生是以中央谈话(intermediate language)的情势展示,不鉴于任何一种特出的cpu平台,同声在天生汇合时机动爆发元数据(metadata),此元数据在汇合中以货单(manifest)的情势生存,元数据不妨对组件举行自我刻画,经过元数据,不妨领会组件有哪些典型、哪些资源。在元数据中也包括汇合的本子号等。有了如许的组件-汇合,再也不会展示dll组织等一致的题目。以是说汇合是.net的本子遏制本领的普通,汇合本领的展示使得开拓职员和处置职员不妨在各别运用步调之间庄重地举行本子依附策略,由于汇合不妨自我刻画和自我证明。也不妨实行真实的无副效率安置。因为汇合的自我刻画,使得备案表等观念将落伍。在.net平台下,一切的步调安置将变为正片,重要的备案表废物题目将不生存。在另一上面,因为汇合变成是否运用的组件的最小单元,以是汇合在.net的安定范围也有特殊要害的效率。 底下谈一下体例效劳,在.net里面包括洪量的普通类,那些普通类生存于汇合体中。每一种普通类都设置了少许.net平台潜伏的某些属性。属性一致的普通类被包括到同一名空间中(namespace)。在名空间中,最底层也是最常用的名空间是体例名空间,在体例名空间中包括的类均为基类,在效率上有点象cobject类在mfc中的效率。其余,体例名空间还囊括了特殊情景处置、废物接收、遏制台输出输入之类一系列重本地个性。总的来说,即使想运用.net平台的任何个性,你都须要和名字空间及其所具有的类举行交互。对于开拓职员,在那些名字空间的普通上不妨派生本人的类和名字空间。运用体例效劳供给的洪量效劳,开拓职员不妨以更高的功效、更快的速率、以更好的办法开拓鉴于internet的步调。 在所有.net框架中,从本领观点上看,最要害的观念莫过于通用谈话运转时(common language runtime),以次均以clr动作其代办。即使把体例效劳看成.net框架的普通的话,那clr不妨看作.net框架的中心。对于软硬件开拓职员而言,领会.net的要害之处就在乎对clr地领会。对于windows开拓职员来说,不管是c runtime library仍旧mfc仍旧java virtual machine城市或多或少的领会少许。本质上,windows操纵体例自己就不妨觉得是运转时和库的汇合体。运转时和库一道为运用步调供给效劳,在确定水平上极地面俭朴了功夫,而且利于于代码的重用。比拟com的编制程序形式不妨更好地领会clr的编制程序形式,对于com而言,它的编制程序思维是鉴于典型而不是面向文献的。在这一点上,clr也是沿用的这种方法。在最早的windows编制程序中,当须要挪用某dll的接口时,普遍运用loadlibrary因变量,而后再挪用getprocaddress因变量,跟着com的展示,cocreateinstance和queryinterface因变量变换了这十足。clr也是以典型为重心的。固然在编制程序形式上clr与com一律,但在实行办法上是不一律的。clr克复了少许com自己固有的缺点,比方典型消息方法不一致、独占典型消息不许交战等。第一,在clr中组件的观念变成头号类人民。在com中,表白组件的办法有很多,东西、类、动静贯穿库都不妨表白组件;而在clr之中组件的观念是以汇合(assembily)的情势展示的,对于每一种典型,com沿用128比特的uuid举行设置,而在clr中为了更好地保证独一性,沿用了128字节的公钥和在限制范畴内是维持独一的典型称呼来供给寰球独一表白。当一个存户端运用步调挪用某汇合时,在存户运用步调中存有一64位的公钥hash值,进而能保证被挪用的汇合是精确的汇合。第二,对于clr,惟有一种元数据调换方法生存。在com编制程序中,须要在idl中设置典型消息,而后再运用一种简直的谈话(c++或java)去实行。在clr中开拓职员不妨在任何一种谈话中设置并实行该典型。第三,元数据是实足可扩充的。任何谈话都不妨扩充clr的典型消息。第四,在com中生存两种典型体例,iunkown型和variant型;在clr中一切的典型都来自system.object。第六,在clr中承诺展示接口的多接受。总之,正如不领会com本领就没辙真实领会windows一律,领会clr对于领会.net利害常要害的。本来,从确定观点上去说,clr是com的向前的宏大奔腾。 三、.net的新个性.net是崭新的一种本领,所以,.net中也囊括了很多新个性。这边只列出少许比拟要害的个性。 (一)、普遍的编制程序形式 在.net情况中,一切的运用步调都沿用通用的面向东西编制程序形式,不复像windows情况中那么,既有dll因变量也有com东西。(二)、简化了的编制程序形式 这大概是最令开拓职员欢天喜地的动静了,在.net情况下,因为clr的效率,在举行编制程序时不复须要控制guids、iunknown、addref等令人头疼的com常识了。 (三)、运转于多个平台 对于任何操纵平台,只有扶助.net运转时均不妨运转.net运用步调。此刻一切的windows平台均不妨实行这一点。在未来以至不妨运转在非windows操纵体例上。 (四)、扶助多谈话的归纳 依照com的道理,代码重用是创造在二进制代码的级别上。在.net情况下,代码重用不妨创造在源码的级别上的,也即是说,旁人用c#谈话写的某个类不妨径直在c++如许的谈话中运用。之以是.net有如许的宏大能力在乎.net为一切的扶助.net编制程序办法的谈话供给了一整套通用的典型体例。 (五)、机动资源处置 不妨绝不夸大地说,对于一切开拓职员而言最头疼的即是外存揭发题目。在.net情况下,这个题目获得完全处置,机动资源处置功效仍旧介入到clr之中。同声,因为资源接收功效的介入,在确定水平上安定性也获得了保护,诸如外存溢出报复等将获得灵验遏制。 (六)、普遍的堕落处置办法 断定一切的windowssdk步调员都对windows情况下凌乱的缺点处置办法感触腻烦,win32缺点代码、特殊情景处置、hresult之类。在.net情况下一切的步调都沿用一致的缺点处置办法---爆发特殊。 (七)、安定性 正如咱们仍旧领会的一律,.net的展示是为了逢迎下一代的internet情况下的企业级计划,普遍的考察遏制仍旧不许满意它的诉求,以是在安定性上面.net对立于windows等其余体例而言,有了更深刻的矫正。从承载一个类发端,就举行确认查看;在考察代码和相映资源时,又实行代码考察安定办法。.net供给了一整套体制来确定脚色和确认身份消息,而且能作到跨过程和呆板进而保证所需的代码在远端没有遭到妨害。.net的安定性也深深地嵌入到clr构造中,以保证运用步调自己的安定。那些安定体制是对现有操纵体例安定体制的一种质上的扩充,比拟起来,.net在安定性上获得了进一步的巩固。 (八)、xml和soap的引入 回顾下往日散布式运用步调的安排,往日咱们安排两层的运用步调,在此普通上展示了诸如corba、iiop、rmi和dcom如许的和议。人们仍旧熟习了如许的散布式体例。然而如许的散布式体例的缺点即是精巧性差,由于这种安排办法使得运用步调恒定在效劳器端。而internet是个涣散贯穿、特殊散布的寰球。原有的client/server构造已过程时,如许就提出了崭新的编制程序形式,而xml和soap能使这种形式很好地处事。在.net中xml和soap仍旧深深地溶入个中,并变成特殊要害的构成局部。 (九)、崭新的编制程序谈话c# 跟着.net的推出,微软也强力推出了一种新式的编制程序谈话c#。c#象vb一律大略,又象c++一律宏大。在有些人的眼底,c#是java的复成品。这种讲法犹如有少许原因,由于c#太像java了。但精确地说,c#绝不是java的克隆,c#的推出是微软在接洽了c、c++、java、modula2、smalltalk等洪量谈话的普通上推出的谈话,比拟起java来,c#的最大各别之处在乎它更逼近c++,同声c#也接收了洪量新的观念,比方c#是面向组件的谈话,c#能作到与xml和议的最大水平的融洽。同声,c#在编写翻译办法上与java又很不一律。c#的推出与.net是出色关系的。四、.net与j2ee的比拟在计划机寰球里,新本领连接地展示。以次就sun公司推出的j2ee和微软的.net在面向下一代企业计划上面比拟一番。 j2ee平台供给了一个鉴于组件的本领,来安排、开拓、安装及安置企业运用步调。j2ee平台供给了多层的散布式运用模子、组件重用、普遍化的安定模子以及精巧的工作遏制。同声保护您的平台独力的、鉴于组件的j2ee处置计划不会被牵制在任何一个厂商的产物和api上。经过之上的阐明咱们不妨看到在安排新本领的动身点上该当说.net和j2ee利害常一致的。然而这两种本领在实行本领和简直的实行本领上都有很大以至对抗的辨别点。 开始须要指明的是.net决不是大略的矫正型的windows操纵体例。由于依照微软的安排思维,任何一个操纵平台只有安置了clr就不妨运转.net步调。 1, 在开拓谈话上,.net的扶助面是比拟广的,c++、vb、c#、perl、cobol之类均获得扶助,开拓职员不妨很简单找到符合本人的谈话。而j2ee只扶助java谈话。这即是说j2ee在谈话的采用面上是比拟窄的。固然,c#是.net扶助的最要害的一种谈话,对立于java而言,c#是扶助jit(just-in-time)编写翻译办法的,而java是鉴于证明办法的。同声微软为各别的平台情况供给了各别的jit编写翻译办法。对于一致于windows ce如许的挪动计划情况,微软供给了收缩的.net框架,相映的也供给了econojit(财经型编写翻译器)。在普遍的桌面情况下,微软供给了规范的编写翻译器。另一上面,c#将变成一种产业规范,由于ecma(欧洲计划机创造商协会)正在接收c#;而java谈话不过sun公司提出来的。 2, j2ee扶助java、ejb,而.net扶助xml/soap。从规范的盛开性上去说,xml/soap要好于前者。xml由w3c构造提出,获得稠密厂家的扶助,是下一代internet上实质表白的规范,xml不妨灵验地表白搜集上的百般常识,为消息的调换和计划供给新的载体。xml对立于搜集计划的效率,实足不妨与计划机起步阶段ascii码的效率等量齐观。xml也不妨说是搜集消息的规范代码,它表白的不是标记消息,而是常识化的块状实质。这种规范谈话固然不是步调安排谈话,然而它代办的却是下一代搜集上互操纵的光彩远景。说到这边,不禁得让人想起了人们"昔日"对 java 的亢奋。真实,java有着特殊迷人的初志,让很多人不妨在如许的一种理念的感化下为设想中的百般体例之间的互操纵本领而加入主动的开拓中。然而本质上,java既没有变成人们设想中的胜利的贸易计划东西,也并没有本质上的本领超过。java试图从一致计划平台的观点来实行互操纵,然而这大概长久都是一个理想。真实不妨互操纵的,只能是规范和通用的数据刻画谈话。而soap和议自己也是由微软和ibm如许的贸易权威共同推出开拓。这十足都表白.net本领规范的盛开性是不错的。 3, .net的soap和议不妨保护一个平台上的组件不妨与.net平台上的组件举行消息的调换。 4, 最要害的一点是,在现有的前提下,形形色色所谓的跨平台、“编写翻译一次,多处运转”等标语不过贸易炒做。java的首席安排师james goslin在提出这个题目时已经表白过如许的管见,所谓的“编写翻译一次,多处运转”标语不过一种优美的办法。这即是说,鉴于某一种开拓平台举行开拓是不行制止的,假设你鉴于ibm公司的websphere运用java开拓贸易步调的话,基础上就恒定在这个平台上了。java所号称的100%纯的标语本来不是如许;固然,c#也是如许。 5, 在.net平台上开拓步调的一个要害长处在乎不妨实行真实的“代码重用”。由于在安排.net平台时,一个要害的思维即是运转时和简直的谈话划分。一切的资源处置、外存调配、变量典型等均由运转时处置,如许的话,用c#写的类径直就不妨用在c/c++步调中。如许的话,只有鉴于.net平台,往日的步调不会由于要沿用新式谈话而做特殊大的窜改。而在j2ee平台上,java即是java,它将运转时和简直的谈话混在一道。 总之,j2ee和.net各有各的便宜和缺陷。二者都利害常特出的开拓企业计划软硬件的特出平台。但就象各别的人有各别的爱好一律,在将来的开拓中,仍旧要按照本人的简直须要而决定简直的运用平台。五、对.net的几点疑义 经过上述的领会,咱们不妨发觉到.net真实是一场本领上的革新。然而过程接洽后仍旧会对.net爆发几点疑义。 1, 是真实的跨平台吗? 依照微软的讲法,任何一个操纵平台只有承载了通用谈话运转时(clr)就能作到“写一次、编写翻译一次、任何场所均可运转”。也即是说,clr对于.net步调利害常要害的。固然微软的接洽开拓重心正在开拓clr沙盘,进而到达如许的诉求。然而起码将来展示的第一版.net不会有这种功效,它不过扶助往日的windows平台。就算未来融洽了clr沙盘,是否作到跨平台也是个疑义。 2, com(组件东西模子本领)真消逝了吗? 在2000年的pdc(开拓者常会)上,微软曾表白令人头疼的com编制程序形式将完全消逝,取而带之的将是clr,iunknown等接口将不会展示。对此,不许太达观,要领会com是windows的普通,而且在上头也谈了clr和com本领的联系。该当说com没有消逝,而是有了特殊大的超过(起码在编制程序本领上)。 3, 代码级的多谈话交互能真实做到吗? 对于像visual java、visual basic、c#如许的开拓受处置的代码(managed code)的谈话不妨实行多谈话交互是不妨领会的。但题目是怎样与c/c++如许的自己功效特殊宏大,南针的运用特殊广的谈话真实做到代码重用哪?六、后序.net动作一种崭新的革新性的本领的推出是令人激动的。不妨断定,跟着.net的正式运用的到来,它将极大的变换咱们的开拓形式。动作软硬件开拓职员来说,.net的展示将给咱们带来更大的机会与挑拨。与其临渊羡鱼不如退而结网。狼究竟仍旧要进入的,咱们惟有从此刻发端就作好十足筹备本领找到最符合本人的软硬件开拓之路,本领在本领上不受人牵制。参考材料: http://www.microsoft.com/net/whitepaper.asp http://msdn.microsoft.com/msdnmag http://java.ore

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.