1.3 .NET Framework与C#
学习目标
了解.NET Framework架构和C#语言
1.3.1 什么是.NET Framework
.NET Framework是支持生成和运行下一代应用程序和XML Web Services的内部Windows组件。.NET Framework旨在实现下列目标。
(1)提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储和执行,还是在本地执行但在Internet上分布,或者是在远程执行的。
(2)提供一个将软件部署和版本控制冲突最小化的代码执行环境。
(3)提供一个可提高代码(包括由未知的或不完全受信任的第三方创建的代码)执行安全性的代码执行环境。
(4)提供一个可消除脚本环境或解释环境的性能问题的代码执行环境。
(5)使开发人员的经验在面对类型大不相同的应用程序(如基于Windows的应用程序和基于Web的应用程序)时保持一致。
(6)按照工业标准生成所有通信,以确保基于.NET Framework的代码可与任何其他代码集成。
图1-20给出了.NET Framework的完整体系架构。
NET Framework具有两个主要组件:公共语言运行库和.NET Framework类库。
1.公共语言运行库(Common Language Runtime,CLR)
公共语言运行库是.NET Framework的基础。可以将运行库看作一个在执行时管理代码的代理,它提供内存管理、线程管理和远程处理等核心服务,并且还强制实施严格的类型安全和可提高安全性和可靠性的其他形式的代码准确性。事实上,代码管理的概念是运行库的基本原则。
2.NET Framework类库
.NET Framework的另一个主要组件是类库,它是一个综合性的面向对象的可重用类型集合,可以使用它开发多种应用程序,这些应用程序包括传统的命令行或图形用户界面(GUI)应用程序,也包括基于ASP.NET所提供的最新创新的应用程序(如Web窗体和XML Web Services)。
简单来讲,.NET Framework类库就是一套函数库,以结构严谨的树状层次组织,并由大量的命名空间和类组成,功能强大,使用简单。
1.3.2 Visual Studio 2012与C#
Microsoft Visual C# 2012(读作C sharp)是一种编程语言,它是为生成在.NET Framework上运行的多种应用程序而设计的。C#简单、功能强大、类型安全,而且是面向对象的。C#凭借它的许多创新,在保持C样式语言的表示形式和优美的同时,实现了应用程序的快速开发。
Visual Studio支持Visual C#,这是通过功能齐全的代码编辑器、项目模板、设计器、代码向导、功能强大且易于使用的调试器及其他工具实现的。通过.NET Framework类库,可以访问多种操作系统服务和其他有用的精心设计的类,这些类可显著缩短开发周期。当然.NET也支持其他很多开发语言。
虽然.NET可以支持多种语言,但是只有C#(C Sharp)是为.NET Framework量身定做的。C#语言是.NET平台的重要语言之一,C#语言源于C和C++,是微软专门为.NET设计的一种完全面向对象的高级语言。简单来看,C#仅仅是.NET的一种开发语言。但是事实上C#是.NET开发中最好的一门语言,这是由C#自身的设计决定的。作为专门为.NET设计的语言,C#不但结合了C++的强大灵活和Java语言简洁的特性,还吸取了Delphi和Visual Basic所具有的易用性。而完全的面向对象,简化的类、命名空间、方法重载、继承等机制使得C#必将成为未来的主流编程语言。总之,开发人员可以使用它来构建在.NET Framework上运行的各种安全、可靠的应用程序。
C#语法表现力强,只有不到90个关键字,而且简单易学。C#的大括号语法使任何熟悉C、C++或Java的人都可以立即上手。了解上述任何一种语言的开发人员通常在很短的时间内就可以开始使用C#高效地工作。C#语法简化了 C++的诸多复杂性,同时提供了很多强大的功能,例如可为空的值类型、枚举、委托、匿名方法和直接内存访问,这些都是Java所不具备的。C#支持泛型方法和类型,从而提供了更出色的类型安全和性能。C#还提供了迭代器,允许集合类的实现者定义自定义的迭代行为,简化了客户端代码对它的使用。
作为一种面向对象的语言,C#支持封装、继承和多态性。所有的变量和方法,包括Main方法(应用程序的入口点),都封装在类定义中。类可能直接从一个父类继承,但它可以实现任意数量的接口。重写父类中的虚方法的各种方法要求override关键字作为一种避免意外重定义的方式。在C#中,结构类似于一个轻量类;它是一种堆栈分配的类型,可以实现接口,但不支持继承。
基于C#语言以上优势,本书全部实例都是使用C#为语言背景来介绍网站开发技术、Web应用程序开发技术的。接下来将使用Visual Studio 2012环境结合C#语言列举几个简单程序实例,目的是通过开发实例熟悉Visual Studio的开发环境,可能读者对其中的某些代码结构还不是很明白,不过没关系,先照着完成,后续章节将详细介绍。