Shared Source CLI Essentials第一章第一部分,Shared Source CLI Essentials第一章第一部分
【 tulaoshi.com - ASP.NET 】
第一章 CLI组件模型介绍21世纪的程序员有很多烦恼。首先,优秀的软件比以前复杂多了。仅仅提供一个基于终端的简单命令提示符或一个字符用户界面已经不能被用户接收了;现在的用户需要包括各种优秀虚拟功能的丰富的图形化用户界面。软件相关的数据,已经很少有结构适合存储在本地系统的普通文件中的了;现在的情况是,计算机用户已经十分依赖软件所提供的查询和报表的功能,而为了满足用户的这些需求,常常必须使用关系数据库。而不断变化的业务情况要求对长期存储的数据进行的经常的修改也要求必须使用关系数据库。从前单机环境就能够满足应用程序的部署需要,在这种环境中是通过文件或剪贴板来实现数据共享的;而现在这个星球上的大部分计算机都联入了网络,因此在这些计算机上部署的软件不但必须要具有网络功能,还必须能够适应不断变化的网络环境。简而言之,软件开发早已不再是技术高手单枪匹马就能够完成任务的职业了,它已经变成了一种基于相当复杂的底层框架的集体行为了。现在的程序员已经不能享受使用贴近处理器的底层工具(例如汇编或C编译器)来从头完成一个完整的软件工程的奢侈了。也很少有人有时间或耐心来编写中间层的框架了,即使是象HTTP协议的实现或者完成一个XML解析器这样简单的工作都很少有人来作,而具有调节底层框架来使系统达到所需的性能和质量的技能的人就更少了。现在软件开发最主要的重心放在了可重用代码和可重用组件上。操作系统加上少量的开发库这种方式已经不能满足软件开发的需要。因此,不管你喜不喜欢,今天的程序员都必须依赖多个不同来源的代码来支持他的应用程序,而且这些代码要能够正确可靠的协同工作。为了适应当前软件开发模式的变化趋势,出现了一种新的软件开发方法学――基于组件的软件开发,它采用组合多个独立的代码模块的方式来创建应用程序。通过组合多个来源的组件,可以快速和高效的创建应用程序。然而,这门技术对编程工具和软件开发过程提出了新的需求。例如,因为依赖于其它由不被信任或不知名的开发者开发的组件,所以程序执行时的严格控制和在运行时对代码的验证成为软件正常运行最基本的要求。在我们这个遍布网路连接的时代,基于组件的复杂软件常常不需要客户端的操作就能动态更新,而有时这些更新可能是恶意的。如果询问那些计算机病毒的受害者保护她的机器和数据的干净是否必要,或者和一个不熟练的计算机使用者谈论那些他们所经历的,由于安装和卸载应用程序而导致系统莫名其妙的不稳定的情况,您就会发现基于组件的软件造成的问题几乎和它带来的好处一样之多。多年来,对基于组件的软件开发的商业宣传和所预期的高效,被如何安全的将不同来源的组件组合起来工作的复杂性所抵消了。然而,最近10年中,我们看到了寄宿托管组件的虚拟执行环境在商业上的成功。托管组件是可以独立开发和部署的简单软件部件,不过它们可以在应用程序中安全的共存。托管组件的”托管”,是指它们需要一个虚拟执行环境来提供运行时和执行服务。为了满足组件的需要,这些环境着重致力于提供一个重点在于保证组件之间的安全合作和协作的结构良好的模型,而不只是简单的暴露它下层的处理器和操作系统的物理资源。如图1-1所抽象描述的那样,虚拟执行环境和托管组件为三个不同的软件群体提供了很多好处:程序员,开发编程工具和编程库的人,以及那些管理在虚拟执行环境中运行的软件的管理员。对于那些使用托管组件开发复杂应用软件的程序员来说,开发工具和编程工具库的出现减少了花费在集成各组件和管理组件间通讯的任务上的时间,提高了生产率。对于工具软件开发者来说(例如编译器开发者),支持框架和一个清晰,说明详细的虚拟机的出现可以减少花费在框架和解决互操作性上的时间,而留出更多的时间来开发工具软件。(high-definition, carefully specified virtual machine??)最后,管理员和计算机用户可以从使用单一的运行时框架和打包模型中获益,并因此更好的控制计算机,所有这些都和特定的处理器和操作系统无关。 图1-1 当寄宿在一个虚拟执行环境中时,各组件可以安全的进行协作。 CLI虚拟执行环境 ECMA通用语言框架是一个虚拟执行环境的标准规范。它描述了一个数据驱动的架构,在其中,语言无关的数据块以自装配件,类型安全的软件系统的形式被激活。驱动这个过程的数据,叫做元数据,开发工具用它来描述软件的行为,以及软件在内存中运行的特性。CLI执行引擎利用元数据来达到将各个来源的组件安全装载到一起的目的。各CLI组件在严格控制和监督下共存,然而它们也能够互相访问,可以直接访问哪些需要共享的资源。CLI是一个良好的平衡了可控性和灵活性的模型。 ECMA,欧洲计算机厂商联合会,是一个已有多年历史的标准化团体。除了发布它自己的标准之外,ECMA也和ISO(国际标准化组织)有着密切的关系,基于这种关系,CLI标准已经被认可为符合ISO/IEC 23271:2003标准,之后根据一篇科技报告,而成为ISO:IEC 23272:2003标准,C#标准也被认可为符合ISO/IEC 23271:来源:http://www.tulaoshi.com/n/20160129/1486406.html
看过《Shared Source CLI Essentials第一章第一部分》的人还看了以下文章 更多>>