2.1 .NET Framework的部署目标

来源:互联网 发布:09年新疆75事件知乎 编辑:程序博客网 时间:2024/06/05 10:21

 在过去的几年里, 微软的Windows操作系统得到了不稳定和复杂的口碑, 这个口碑, 不管是不是应得的, 它是由很多不同的因素导致的. 第一, 所有的应用程序使用微软和其他公司的动态链接库(DLL), 因为应用程序要执行很多公司的代码, 任何一段代码的开发者不可能100%地知道其他人是如何使用它的. 尽管这种交互可能潜在地造成各种问题, 但实际上, 这些问题不会总发生, 因为应用程序在部署之前经过了测试和调试.

然而, 当一个公司决定更新它的代码然后发布新的文件时, 就会频繁地发生问题. 这些新文件被假设是向后兼容的, 但是谁知道呢? 实际上, 当一个公司更新了它的代码, 常常发现不可能重新测试和调试所有的已被发布的应用程序来确保这个更新所带来的改变没有不想要的副作用.

我相信正在读这本书的每个人经历过这个问题的一些变体: 当安装一个新的应用程序时, 你发现它会使已安装的一个应用程序不能工作. 这个困境被称为”DLL hell”, 这类不稳定性给计算机用户带来心理和心灵上的恐惧, 最终的结果是用户不得不仔细考虑是否安装新的软件. 个人认为, 我已经决定不在安装某些软件, 免得影响我必须依赖的某些程序.

第二个造成Windows的不良口碑的原因是安装的复杂性. 今天, 当大多数应用程序被安装时, 它会影响系统的所有方面. 例如, 安装一个应用程序会拷贝一些文件到不同的目录中, 更新注册表的设置, 在你的桌面, 开始菜单和快速启动栏上创建快捷方式. 这带来的问题是应用程序不是孤立的存在的, 你不能容易地备份应用程序, 因为你必须拷贝应用程序的文件, 还要备份注册表中相关的部分, 此外, 你不能容易地将应用程序从一个机器上移动到另一个机器上, 你必须再次运行安装程序使得所有的文件和注册表设置都正确无误. 最后, 你不能容易地卸载或者移出应用程序, 而不在你的机器上留下应用程序的任何部分.

第三个原因是安全性. 当安装应用程序时, 它们会带来各种文件, 很多是不同公司写的. 此外, Web应用程序经常有些代码是下载后用户没有意识就安装到机器上了. 今天, 这种代码可以执行任何操作, 包括删除文件和发送email, 用户非常害怕安装新的应用程序, 因为它们会造成潜在的破坏. 为了让用户舒服, 安全性必须放到系统中, 使得用户能显示地允许或者不允许不同公司开发的代码访问系统资源.

.NET Framework在很大程度上解决了”DLL hell”的问题, 你将会在阅读本章和第3章时看到这些. 在应用程序状态遍布用户硬盘的问题方面, 它也有着长足的进步, 例如, 不像COM, 类型不在需要注册表中的设置. 不幸的是, 应用程序仍然需要快捷方式链接, 但是将来的Windows版本可能会解决这个问题. 作为安全性, .NET Framework包括一个称为代码访问安全(code access security)的安全模型. 但是Windows的安全性是基于用户的身份, 代码访问安全性是基于从程序集中获得的证据, 例如程序集的身份(一个强名字, 第三章中会讨论)或者程序集文件物理上是从什么地方载入的. 例如, 用户可能会决定相信微软发布的所有程序集, 而不相信从Internet上下载的程序集. 正像你看到的, .NET Framework使用户能够控制安装和运行什么程序, 使得用户有更多的控制权.

 

原创粉丝点击