频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

易于反编译的中间语言

来源:yesky 作者:刘彦清 出处:巧巧读书 2005-11-23 进入讨论组

  无论是用VB、C#或其他的.NET编程语言编写的软件都会被编译成一种"中间语言"(IL),只有在软件运行时,一个运行时编译器(JITter)才将IL代码编译成机器语言,这在理论上就意味着创建非Windows平台的.NET运行库是可能的,但目前关于这一点还没有任何的官方说法。
IL的一个不足之处是:它可以非常容易在VB5中进行反编译,使得许多开发人员都怀疑.NET架构的安全性。

  在IL一级对代码有影响的CLR的变化能使所有的使用CLR的开发人员受益。对特定语言的优化主要与如何将这种语言编译为IL的质量有关,因此从技术上说,在不同的.NET语言之间还是有着细微的差别。尽管如此,总体情况还是很好的,比如,VB与C#具有相同水平的调试和分析工具,因为它们使用的就是同一个工具。

  CLR提供了空前的跨语言集成能力,其中包括跨语言的代码继承。所有的使用CLR的语言都共享一个相同的类型系统,这就使得利用多种编程语言开发软件变得更为简单。

  在CLR中运行的代码被称作管理代码,它使用的内存是完全由CLR控制的。管理代码带来的好处是显而易见的,包括跨语言的集成性、跨语言的异常处理和组件交互的单一模型。Visual Basic只能使用管理代码,而C#则还可以不使用管理代码(不使用运行库),使用指针管理等功能,这是VB与C#的一个不同之处,这一点的重要性取决于你需要完成的任务。

  The architectural differences imposed by the CLR run deeper than cross-language inheritance, shared features, and managed code. For one, 由CLR带来的结构上的差异性远不止跨语言的继承、共享的特性和管理代码。Visual Studio.NET的基础架构不是COM,包括字符串在内的VB.NET中的所有元素都是对象。基于这些原因和其他的一些原因,微软改变了基础架构处理对象的方式,每当引用一个对象时,COM都把对象引用计数器加1。如果释放了一个对象则计数器减1,当计数器减为0后这个对象也结束了。URl收藏 http://www.qqread.com/vb/c520924010.html进入讨论组讨论。
更多专题 【深 度 阅 读】 相 关 文 章
收藏此文】【 】【打印】【关闭
较早的文章:正确的发展方向

较新的文章:VB5.0中实现系统登录
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章