Posts Tagged .NET

译:《Professional C# 4.0 and .NET 4》 第一章 .Net体系架构(2)

以下内容原文见《Professional C# 4.0 and .NET 4》 -> Part1: The C# Language -> Chapter 1: .NET Architecture
原文作者:Christian Nagel, Bill Evjen, Jay Glynn, Karli Watson, Morgan Skinner
翻译:Sam.Sha – ycoder.com
备注:只翻译UI技术相关的,不包含ASP

程序集

一个程序集是个逻辑单位,包含了针对.NET Framework编译的代码,本节不会详细介绍,在第18章“Assemblies”会作全面的说明,这里只作主要点概要

程序集完全是自描述的,他是一个逻辑单位而不是物理单位,也就是说他可能被存放在多个文件中(实际上,动态程序集存放在内存中而不是文件),如果一个程序集存放在多个文件中,其中有一个主文件包含了入口和其他程序集文件的位置

注意可运行代码和库代码都使用了相同的程序集结构,他们唯一的区别是,可执行程序集包含了一个主程序入口,而库程序集没有。

程序集的一个重要特征是,它既包含了对应代码的类型方法元数据描述,也包含了程序集自己的元数据描述,程序集元数据包含在被称为程序清单的位置,允许检查程序集版本和完整性。

ildasm, 一个基于windows的实用程序,可以用来检查程序集的内容,包括程序清单和元数据,ildasm会在18章节做介绍

译:《Professional C# 4.0 and .NET 4》 第一章 .Net体系架构(1)

以下内容原文见《Professional C# 4.0 and .NET 4》 -> Part1: The C# Language -> Chapter 1: .NET Architecture
原文作者:Christian Nagel, Bill Evjen, Jay Glynn, Karli Watson, Morgan Skinner
翻译:Sam.Sha – ycoder.com

第一部分:C#语言

第一章:.Net体系架构

本节内容:

.NET中编译和运行代码
微软中间语言的优势
值类型引用类型
数据类型
理解异常处理和属性
程序集,.NET基础类,名称空间
通过本书,我们强调C#语言需要结合.NET Framework考虑,而不是孤立的看待,C#编译器是专门针对.NET的,这意味着所有C#编写的代码总是运行在.NET Framework中,这对于C#语言有两点重要影响:
1、C#的架构和方法反映了.NET底层的实现方法
2、在许多情况下,C#的语言特性实际上依赖于.NET的特性或者.NET的基础类
因为有这样的依赖性,有必要在学习C#编程之前理解.NET的体系结构和方法,这是本章的目的

C#与.NET关系

C#是一种相对较新的语言,具有两方面特点:
1、是特别针对微软.NET Framework设计的语言
2、是一种基于面向对象设计方法的语言,在设计它时,微软借鉴了所有其他相似的面向对象的语言
有一件重要的事情要说明,C#语言有他自己的规则,虽然他被设计用于.NET Framework,但他本身并不是.NET的一部分,有些.NET支持的功能,C#并不支持,你可能感到奇怪的是有些C#支持的功能.NET也不支持(如某些操作符的重写),但是C#语言的目的是用于.NET的,如果你想有效的使用C#开发程序你需要了解这个架构,因此本章将花点时间探究.NET底层的样子,让我们开始吧。

通用语言运行器

.NET Framework的核心是它的运行执行环境,也就是通用语言运行器(CLR)或者.NET运行器。在CLR控制下运行的代码通常称为托管代码。
但是,在被CLR执行之前,任何你编写的代码都需要被编译,编译有两步:
1、编译成微软中间语言(IL)
2、IL由CLR编译成跨平台的特殊代码