.NET Framework

转载 2007年09月25日 21:28:00
NET是一个内涵很广的术语,它包含了微软公司对未来的核心战略、规划与洞察力。此战略的核心就是.NET Framework,该构架提供了全面支持.NET的核心技术。.NET Framework本身由若干组件组成:
MSIL——MS中间语言,.NET的通用语言。程序员可以使用任何.NET语言编写代码,包括VB、C#、JScript和其他大约20种语言。这些代码都会编译为MSIL。
CLR——公共语言运行时,负责在计算机上执行MSIL、与Windows和IIS交互时所涉及的全部实质性任务。
.NET Framework类库——包含大量重要功能的代码库。用户可以非常方便地将这些库调用到应用程序中,使复杂任务的程序代码更为简洁。
.NET语言——是符合一些特殊要求(由公共语言规范定义)的编程语言,能够编译成MSIL。
ASP.NET——该模块扩展了IIS,使之能通过.NET Framework创建Web页面。
Web服务——可通过Web访问的组件,并可以在应用程序中使用。它们可以提供任何功能,例如新闻标题、天气预报、股票走势等。

2.1.1 编译(从用户代码到机器代码)
将用户代码(用高级语言编写的程序代码)转换为机器代码(机器可以识别的二进制代码)的过程称为编译。编译过程包括将本机环境信息写入经编译的程序代码这一过程,因此编译后的程序代码可以高效地利用计算机的所有可用资源。
预编译代码:在使用前时行编译的代码。对于这种代码,由于编译器有机会花时间分析全部的代码和要运行它的机器,因此代码能够以很快的速度执行。不过,由于预编译的代码是针对某一计算机的,因此除非仍在该计算机上运行编译后的代码,否则需要将另一台计算机设成与第一台计算机相同的系统与资源。
解释代码:边执行边编译的代码。这种代码执行较慢,因为需要为每个请求编译代码,且系统没有机会全面优化所编译的代码。不过,其优点是解释过程可以调整,以适应运行代码的机器。
所以,开发人员在选择语言时将面临一个两难的局面。他们可以选择较慢的解释代码以适应运行代码的机器,也可以选择较快的预编译代码但移植性较差。

2.1.2 中间语言介绍
.NET在编译时采用两步法来解决这个问题。.NET编译器将程序代码编译成MSIL的特殊格式,编译过程包括了一些代码,但并没有针对某台机器进行优化。因此,MSIL具有一般的优化性能,并可以移植到任何.NET服务器上。
当用户执行编译为MSIL的页面时,将其传给公共语言运行时CLR,CLR使用JIT(Just-In-Time)编译器将代码编译成真正的机器码,并对程序进行最后的、且与机器相匹配的优化,以使程序能在其所在的计算机上以尽可能快的速度运行。
因此,MSIL和CLR组合使用,具有两种编译代码的优点:预编译代码的结构优化和解释代码的可移植性。
更为重要的是,MSIL本身与机器无关,因此,可以在装有CLR的任一计算机上运行。

2.1.3 对象
对象是自包含的功能单位,就像一个小型程序,其中包含可以完成特定任务的数据或代码。使用预先编写好的对象有如下优势:
① 避免为多次使用而重复编写代码
② 对象允许购买超出我们开发能力范围或资源的功能
③ .NET对象是标准化的,其他程序员可以方便的发现和使用对象的功能
④ 对象可以用任何与.NET兼容的语言编写。
模型对象称为类定义。

2.1.4 .NET的基类
.NET Framework的一个非常重要的特性是它具有基类库,它可以使程序员避免那些工作量大得令人头疼、且枯燥无味的编码工作。基类库中包含大量微软已经编写好的代码,程序员可以将它们包括到任一程序中。要利用这些代码,只需要知道如何使用对象即可,不需要理解代码的内部工作原理。
命名空间:.NET用命名空间将功能相似的类组合到一起。为了使用包含在命名空间中的类,需要导入这些命名空间。

2.2 ASP.NET的工作原理
ASP.NET文件以.aspx扩展名保存。
当安装.NET时,本地的IIS Web服务器会自动配置以查找扩展名为.aspx的文件,且用ASP.NET模块(名为aspnet_isapi.dll的文件)处理这些文件。

在Web页面中插入ASP.NET代码有3种方式:
1:使用内联代码:使用<% %>作为界定符,在ASP中经常使用,在ASP.NET中不推荐使用。
2:使用<script runat="server">脚本代码
一个应用程序(多个页面)的各个部分可以使用多种语言编写,但不能在一个页面上混合使用多种语言。
C#代码可以位于ASPX页面的任何地方。
每个代码块都必须位于一个函数或方法声明中。
方法在其他代码触发它时执行。它也许会触发一次,也许触发多次,也许永远不触发。
如何在第一次建立页面时,让某类触发器自动运行代码?换言之,无论事件是否发生,都执行某些代码?在创建页面时,ASP.NET模块会执行位于一个特定方法即Page_Load()中的所有代码。 

NSIS 检测.NET Framework版本(学习九)

 Section -.NET Framework   ;检测是否是需要的.NET Framework版本   Call GetNetFrameworkVersion   Pop $R1...

.Net Framework下的多线程安全集合

每个正式发布的.net framework版本在增加特性时,都会着眼于那些对于当今程序员有挑战的问题上。.net framework 4.0增加了一个新的System.Collections.Conc...

.Net Framework 4.6.2升级/ 指定的信任提供程序不认识或不支持使用者的指定格式

1.打开官方地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=53345 选择“下载”: 2.下载文件,点击下载完成的...

搞懂.NET Framework 历史版本(2017年)

最近被.NET平台各种名词、以及各种版本弄得有些疑惑,开发和部署,对于开发平台版本选择是个基本问题,因此,花了些时间,学习汇总了有关.NET版本演进的历史。 .NET简介 这个平台相信我们都知道...

如何手动删除并重新安装 .NET Framework 2.0

如何手动删除并重新安装 .NET Framework 2.0 本文可能包含一个指向 Windows 安装程序清理实用程序 ...

项目inno setup安装脚本,带检测.net framework

完全不懂delphi语言,只是看过这种安装脚本,搞了三天才搞好,各种测试,各种改,终于做出了一个比较完整的安装包。 要说,还是有很多改进的地方,比如没有使用procedure,inno setup可以...

关于安装.Net Framework 安装失败回滚退出的解决办法

此办法适用于 .Net Framework 目前可能出现的安装失败,回滚退出的的情况。 本人在win 7 X64上多次尝试过,.Net Framework 4.5     .Net Framewor...
  • jkdlzm
  • jkdlzm
  • 2017年03月21日 09:44
  • 2922

.NET Framework版本与操作系统

.Net Framework 常用的版本:  2.0   vs2005 默认  Windows server 2008 默认安装;  3.5   vs2008默认   Windows server 2...

编译时提示程序集引用找不到与.Net Framework 4 Client Profile

在Ioc容器的性能测试中,在Munq代码完编译时出现Error:“The type or namespace name 'Munq' could not be found (are you missi...

NSIS:检测本机.Net Framework版本

为了实现检测本机.Net Framework版本并在线下载安装,我找到了这篇文章 http://my.oschina.net/chinesedragon/blog/317307 主要函数是GetNe...
  • aqtata
  • aqtata
  • 2016年07月03日 11:50
  • 1788
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.NET Framework
举报原因:
原因补充:

(最多只允许输入30个字)