.NET其实就是一个软件平台,这个平台和Java平台有许多的相似之处,主要表现在

1、二者编写的程序都是可以跨平台执行的
 
2、二者编写的程序编译后生成的都是一种中间码(IL),需要经过第二次编译才能转换成本地所能执行的代码(Native Code)。这一特征正是.NET和Java的程序可以跨平台执行的根本原因
 
IL如下图所示
 
3、二者在B/S(Broser/Server)开发方面都很强大。
 
 
 
下面具体介绍这些特征
 
 

跨平台执行

无论是哪种操作系统,只要那个操作系统上装有对应的.NET FrameWork,那么只要是用.NET编写和编译的程序都可以在该平台上执行。因为软件被编译成为IL的组件(.EXE或.DLL)这些组件与具体的.NET语言和操作系统无关,IL的语法大体上都是一样的。
 
 

编译生成中间码,需要相应的.NET Framework中的即时编译器进行第二次编译生成原生码(Native Code)后才能被CPU执行,就像Java程序需要Java虚拟机(JVM)进行第二次编译才能执行一样。下面是.NET程序和JAVA程序的执行原理

 
.NET的执行原理
 
 
.JAVA的执行原理
 

在B/S开发方面功能强大

.NET的BCL(基底类别库)中提供的ASP.NET的类对B/S的开发很是便利。
 
 

.NET FrameWork主要有两部分构成:CLR(公共语言运行时)和BCL(基底类别库)。其实CLR和BCL也都是由组件构成的。

 

CLR的构成

 
 
 
 
BCL的构成
 
BCL的组件都是存在于系统文件夹GAC(Global Assembly Cache)中的,一些有数位签章的类也注册在这个文件夹里,在这个文件夹中的组件是可以被所有软件所共用的

随机推荐

  1. Parallel并行运算实例

    并行运算Parallel,是.net 4.0版本里添加的新处理方式,主要充分利用CPU.任务并发的模式来达到提高运算能力.简单理解为每个CPU都在处理任务,而不会让它们空闲下来. 直接看实例: nam ...

  2. UrlRewriter.dll伪静态实现二级域名泛解析

    大家应该知道,微软的URLRewrite能够对URL进行重写,但是也只能对域名之后的部分进行重写,而不能对域名进行重写, 如:可将 http://http://www.115sou.com/qq/  ...

  3. Java [Leetcode 318]Maximum Product of Word Lengths

    题目描述: Given a string array words, find the maximum value of length(word[i]) * length(word[j]) where ...

  4. Java [Leetcode 155]Min Stack

    题目描述: Design a stack that supports push, pop, top, and retrieving the minimum element in constant ti ...

  5. gtid

    GTID的全称为 global transaction identifier,可以翻译为全局事务标示符,GTID在原始master上的事务提交时被创建.GTID需要在全局的主-备拓扑结构中保持唯一性, ...

  6. ashx-auth-黑色简洁验证码

    ylbtech-util: ashx-auth-黑色简洁验证码 ashx-auth-黑色简洁验证码 1.A,效果图返回顶部   1.B,源代码返回顶部 /ImageUniqueCode.ashx &l ...

  7. 如何清除win7开机密码

    一.电脑已经登录到系统,但是忘记了密1对于这种情况是最简单的,其实只需要将密码取消就可以了右键单击桌面上我的电脑,选择管理即可进入计算机管理界面2依次展开系统工具--本地用户和组--用户,在右侧选择要 ...

  8. Winxp下搭建SVN服务器

    本文介绍一种在winxp下搭建SVN服务器的方法. (1) 需要下载Slik-Subversion和TortoiseSVN两个软件.我使用的版本是Slik-Subversion-1.8.3-1-win ...

  9. [HIve - LanguageManual] Join Optimization (不懂)

    Join Optimization Join Optimization Improvements to the Hive Optimizer Star Join Optimization Star S ...

  10. C++中的重载,隐藏,覆盖,虚函数,多态浅析

    直到今日,才发现自己对重载的认识长时间以来都是错误的.幸亏现在得以纠正,真的是恐怖万分,雷人至极.一直以来,我认为重载可以发生在基类和派生类之间,例如: class A { public: void ...