(关于.net的详细介绍,http://msdn.microsoft.com/zh-cn/library/a4t23ktk(v=vs.90).aspx)
C#作为一种编程语言,是专门为与MS的.NET Framework一起使用而设计的,是一种基于现代面向对象设计方法的语言,用于生成面向.NET环境的代码。
.NET Framework 具有两个主要组件:公共语言运行库(CLR)和 .NET Framework 类库。可以将CLR看作是一个在执行时管理代码的代理,它提供内存管理、线程管理和远程处理等核心服务,并且强制实施严格的类型安全以及可提高安全性和可靠性的其他形式的代码准确性。而在CLR控制下运行的代码称为托管代码(managed code),而不以运行库为目标的代码称为非托管代码。类库是一个综合性的面向对象的可重用类型集合。
.NET Framework 环境
托管执行的过程包括:
- 1.选择编译器。
- 2.将代码编译为MSIL(MS中间语言)。
- 3.将MSIL编译为本机代码。
- 4.运行代码。
托管代码的优点:
- 1.平台无关性。
- 2.提高性能。
- 3.语言的互操作性。
关于中间语言
- 面向对象和使用接口。.NET接口与COM接口不同,不需要支持COM基础结构,而与COM共享一个理念:提供一个契约,实现接口的类必须提供接口指定方法和属性的实现方式。
语言互操作的真正涵义是一种语言编写的类应该与另一种语言通信,特别是:
- 用一种语言编写的类应该能继承于另一种语言编写的类
- 一个类能包含另一个类的实例,而不管这个类的具体实现
- 一个对象能调用其它语言编写的对象的方法
- 对象或对象的引用应该能在方法之前传递
- 可以调试不同语言编写的源代码
2. 相异值类型和引用类型。值类型变更保存值,而引用类型变量保存地址。
- 3. 强数据类型。每个变量都清晰的标记为某个特定的类型,强迫实现类型安全会降低性能,但也获得的好处更多:
语言的互操作性
垃圾回收
- .NET采用两种机制释放进程向系统动态申请的内存
- 一是手工方式使用应用程序代码
- 二是维护对象引用计数
- 安全性
应用程序域
- .NET的一项重要改进,主要用于减少应用程序的系统开销。在.NET开发之前,可以让这些实例共享一个进程,但一个运行的实例就足以使 所有的崩溃;当然也可以把所有的实例孤立于不同的进程中,但这样增大了系统开销。一般情况下,进程只能通过虚拟内存来访问内存,进程不能直接访问内存。
- 应用程序域是分离组件的一种方式,任何一个进程分解到不同的应用程序域中,每个应用程序域对应一个应用程序,执行的每个线程都在一个具体的应用程序域中。
ASP.NET的特性
- ASP.NET是结构化的
- 可以在VS中创建,可以创建ASP.NET所需要的业务逻辑和数据库访问组件
- ASP.NET的后台编码允许进一步采用结构化的方式
- ASP.NET在性格上提高非常明显
C#在.NET体系结构中作用
- C#需要.NET运行库,C#与ADO.NET合并后,可以快速的经常的访问数据库了
- C#与.NET的优点
- 组件冲突将减少,部署工作更容易
- ASP代码变得不再难懂
-