推荐理由
C#和.NET全面革新了编写程序的方式。本书以最新的.NET Frame-work2.0和Visual Studio2005为基础,全面介绍了C#编程的工具,提供了理解.NET体系结构的工作原理所必需的背景知识。
本书首先探讨了C#的基础知识,包括基本语法、数据类型和面向对象的特性。接着阐述了如何把该语言应用于各种使用相关技术的应用程序,倒如数据库访问和高级绘图技术。这种方式有助于对C#语言的各个方面进行深入细致的理解,以专业人员的方式开始编程。
本书涵盖的内容有助于编写动态Web页面、XML Web服务、分布式应用程序的组件,以及Windows桌面应用程序等。
本书主要内容:NET环境中的编程原则,创建Windows应用程序和Windows服务的方式,使用已有的COM组件和NET应用程序,用ASP.NET编写动态的Web页面和Web服务。用C#2005处理XML的技术。用ADO.NET访问数据库,与目录交互操作,编写在Web站点上运行的删节组件。
本书读者对象:本书适用于已具有C++、Visual Basic或J++等编程经验的开人发员。本书还适合于了解NET1.0,但准备迁移到NET2.0和Visual Studio 2005的程序员。
本书技术支持:在www.wrox.com和http://www.tupwk.com.cn/downpage上可以获取本书源代码以及Wrox技术支持。
Wrox畅销书!C#经典名著!2005年最权威的十大IT图书!2005年度引进版科技类优秀图书!之C#2005最新版。
内容简介
C#经典名著!也是Wrox红皮书中最畅销的品种之一,从第一版开始就名满天下;其第3版被中华读书报、CSDN、《程序员》等机构评选为2005年最权威的十大IT图书之一(第2名);在中国版协、中国出版科学研究所、《出版参考》杂志组织的“2005年度输出版、引进版优秀图书”评选活动中获得“2005年度引进版科技类优秀图书”奖。第4版面向C# 2005,在全面展示.NET新特性的同时继续完善原有的内容,是有一些C#基础知识的学习者或者想迁移到C#的其他程序员全面掌握C#的首选教程。
本书作者
李海波,01年获清华大学工学博士学位,随后在新加坡国立大学从事协同产品设计与门户的博士后研究。02年至04年在金蝶软件(中国)公司中央研究院担任高级研究员。现任复旦大学软件学院零售与分销管理系统研究中心的副主任,从事教学与科研工作。
目录
第Ⅰ部分 C#语言
第1章 .NET体系结构
第2章 C#基础
第3章 对象和类型
第4章 继承
第5章 运算符和类型强制转换
第6章 委托和事件
第7章 内存管理和指针
第8章 字符串和正则表达式
第9章 集合
第10章 泛型
第11章 反射
第12章 错误和异常
第13章 线程
第Ⅱ部分 .NET环境
第14章 Visual Studio 2005
第15章 程序集
第16章 .NET的安全性
第17章 本地化
第18章 部署
第Ⅲ部分 数
第19章 .NET数据访问
第20章 .NET编程和
第21章 处理XML
第22章 使用Active Directory
第Ⅳ部分 Windows应用程序
第23章 Windows窗体
第24章 查看.NET数据
第25章 使用GDI+绘图
第Ⅴ部分 Web应用程序
第26章 ASP.NET页面
第27章 ASP.NET开发
第Ⅵ部分 通信
第28章 Web服务
第29章 .NET Remoting
第30章 Enterprise Services
第31章 消息队列
第32章 分布式编程的未来产品
第Ⅶ部分 互操作性
第33章 COM的互操作性
第Ⅷ部分 Windows基本服务
第34章 文件和注册表操作
第35章 访问Internet
第36章 Windows服务
先读为快
前言
对于开发人员来说,把C#语言及其相关环境.NET Framework描述为多年来最重要的新技术一点都不夸张。.NET提供了一种新环境。在这个环境中,可以开发出运行在Windows上的几乎所有应用程序,而C#是专门用于.NET的新编程语言。例如,使用C#可以编写出动态Web页面、XML Web服务、分布式应用程序的组件、数据库访问组件、传统的Windows桌面应用程序,甚或可以联机/脱机运行的新型智能客户应用程序。本书介绍.NET Framework 2.0,即.NET Framework的第3版。如果读者使用1.0或1.1版本编码,本书的一些章节就不适用。本书将标注出只适用于.NET Framework 2.0的新增内容。
不要被.NET这个名称所愚弄,这个名称仅强调Microsoft相信分布式应用程序是未来的趋势,即处理过程分布在客户机和服务器上,但C#不仅仅是编写Internet或与网络相关的应用程序的一种语言,它还提供了一种编写Windows平台上几乎任何类型的软件或组件的方式。另外,C#和.NET都对编写程序的方式进行了革新,更易于实现在Windows上编程。
这是一个相当重要的声明。毕竟,我们都知道计算机技术的发展速度非常快,每年Microsoft都会推出新软件、新的编程工具或Windows的新版本,并宣称这些对开发人员都非常有用,.NET和C#也不例外。
.NET和C#的重要性
为了理解.NET的重要性,考虑一下近10年来出现的许多Windows技术的本质会有一定的帮助。尽管所有的Windows操作系统在表面上看来完全不同,但从Windows 3.1(1992年)到Windows Server 2003,在内核上都有相同的Windows API。在我们转而使用Windows的新版本时,API中增加了非常多的新功能,但这是一个演化和扩展API的过程,并非替换它。
开发Windows软件所使用的许多技术和架构也是这样。例如,COM(Component Object Model,组件对象模型)是作为OLE(Object Linking and Embedding,对象链接和嵌入)开发出来的,那时,它在很大程度上仅是把不同类型的办公文档链接在一起,所以利用它可以把一个小Excel电子表格放在Word文档中。之后,它逐步演化为COM、DCOM(Distributed COM,分布式组件对象模型)和最终的COM+。COM+是一种复杂的技术,它是几乎所有组件通信方式的基础,实现了事务处理、消息传输服务和对象池。
Microsoft选择这条道路的原因非常明显:它关注向后的兼容性。在过去的这些年中,第三方厂商编写了相当多的Windows软件,如果Microsoft每次都引入一项不遵循现有编码规则的新技术,Windows就不会获得今天的成功。
向后兼容性是Windows技术的极其重要的特性,也是Windows平台的一个长处。但它有一个很大的缺点:每次某项技术进行演化,增加了新功能后,都会比它以前更复杂。
很明显,对此必须进行改进。Microsoft不可能一直扩展这些开发工具和语言,使它们越来越复杂,既要保证能跟上最新硬件的发展步伐,又要与20世纪90年代初开始流行的Windows产品向后兼容。如果要得到一种简单而专业化的语言、环境和开发工具,让开发人员轻松地编写优秀的软件,就需要一种新的开端。
这就是C#和.NET的作用。粗略地说,.NET是一种在Windows平台上编程的新架构—— 一种新API。C#是一种全新的语言,它可以利用.NET Framework及其开发环境中的所有新特性,以及在最近20年来出现的面向对象的编程方法。
在继续介绍前,必须先说明,向后兼容性并没有在这个演化进程中失去。现有的程序仍可以使用,.NET也兼容现有的软件。软件组件在Windows上的通信,现在几乎都是使用COM实现的。因此,.NET能够提供现有COM组件的包装器(wrapper),以便.NET组件与之通信。
我们不需要学习了C#才能给.NET编写代码,因为Microsoft已经扩展了C++,提供了一种新语言J#,还对Visual Baisc进行了很多改进,把它转变成为功能更强大的Visual Baisc.NET,并允许把用这些语言编写的代码用于.NET环境。但这些语言都因有多年演化的痕迹,所以不能完全用现在的技术来编写。
本书将介绍C#编程技术,同时提供.NET体系结构工作原理的必要背景知识。我们不仅会介绍C#语言的基础,还会给出使用各种相关技术的应用程序示例,包括数据库访问、动态的Web页面、先进的图形技术和目录访问等。惟一的要求是用户至少熟悉一门在Windows上使用的高级语言,例如C++、Visual Baisc或J++。
.NET的优点
前面阐述了.NET的优点,但并没有说它会使开发人员的工作更易完成。本节将简要讨论.NET的改进特性。
● 面向对象的编程:.NET Framework和C#从一开始就完全是基于面向对象的。
● 优秀的设计:一个基类库,它是以一种非常直观的方式设计出来的。
● 语言的无关性:在.NET中,Visual Baisc.NET、C#、J#和Managed C++等语言都可以编译为通用的中间语言(Intermediate Language)。这说明,语言可以用以前没有的方式交互操作。
● 对动态Web页面的更好支持:ASP具有很大的灵活性,但效率不是很高,这是因为它使用了解释性的脚本语言,且缺乏面向对象的设计,从而导致ASP代码比较凌乱。.NET使用一种新技术ASP.NET,它为Web页面提供了一种集成式的支持。使用ASP.NET,可以编译页面中的代码,这些代码还可以使用.NET高级语言来编写,例如C#、J#或Visual Baisc 2005。
● 高效的数据访问:一组.NET组件,总称为ADO.NET,提供了对关系数据库和各种数据源的高效访问。这些组件也可以访问文件系统和目录。.NET内置了XML支持,可以处理从非Windows平台导入或导出的数据。
● 代码共享:.NET引入了程序集的概念,替代了传统的DLL,可以完美无暇地修补代码在应用程序之间的共享方式。程序集是解决版本冲突的正式系统,程序集的不同版本可以同时存在。
● 增强的安全性:每个程序集还可以包含内置的安全信息,这些信息可以准确地指出谁或哪种类型的用户或进程可以调用什么类的哪些方法。这样就可以非常准确地控制程序集的使用方式。
● 对安装没有任何影响:有两种类型的程序集,分别是共享程序集和私有程序集。共享程序集是可用于所有软件的公共库,私有程序集只用于某个软件。私有程序集是完全自包含的,所以安装过程非常简单,没有注册表项,只需把相应的文件放在文件系统的相应文件夹中即可。
● Web服务的支持:.NET集成了对开发Web服务的完全支持,用户可以开发出任何类型的应用程序。
● Visual Studio 2005:.NET附带了一个开发环境Visual Studio 2005,它可以很好地利用C++、C#、J#、Visual Baisc 2005和ASP.NET进行编码。Visual Studio 2005集成了Visual Studio .NET 2002/2003和Visual Studio 6环境中的各种语言专用的所有最佳功能。
● C#:是使用.NET的一种面向对象的新语言。
第1章将详细讨论.NET体系结构的优点。
.NET Framework 2.0中的新增特性
.NET Framework的第1版(1.0版)在2002年发布,赢得了许多人的喝彩。.NET Framework的最新版本2.0在2005年发布,它被认为是对该架构进行了较大的改进。
Microsoft每次发布新的架构时,总是试图确保对已开发出的代码进行尽可能少的修改。到目前为止, Microsoft在这方面做得很成功。
注意:
一定要建立一个临时的服务器,来测试应用程序到.NET Framework 2.0的升级,而不是直接升级当前运行的应用程序。
下面将详细描述.NET Framework 2.0中的一些新变化,以及.NET Framework 2.0的开发环境——Visual Studio 2005的新增内容。
SQL Server集成
经过漫长的等待,SQL Server的最新版本终于发布了。这个版本是SQL Server 2005,在许多方面都比较独特。对.NET开发人员来说,最重要的是SQL Server 2005现在包含了CLR。Microsoft为开发人员开发的.NET产品,能把.NET Framework 2.0、Visual Studio 2005和SQL Server 2005关联在一起,所以,这三个产品现在是一起发布的。这是相当重要的,因为以前建立的大多数应用程序都使用这三个产品,它们需要一块儿升级,以无缝的方式交互操作。
因为SQL Server 2005现在包含了CLR,所以现在不需要使用T-SQL编程语言建立应用程序的数据库功能,而可以用任意.NET兼容语言,如C#,建立各种对象,如存储过程、触发器,甚至数据类型。
SQL Server Express是SQL Server中替代MSDE的2005版本。这个版本没有MSDE那样严格的限制。
64位支持
目前的大多数编程都在32位的机器上进行。在应用程序的开发过程中,计算机从16位升级到32位是一个质的飞跃。越来越多的企业开始迁移到Intel (Itanium芯片)和AMD (x64芯片)等公司的最新最大的64位服务器上,.NET Framework 2.0现在就支持这种64位大迁移。
Microsoft努力确保在.NET的32位环境中开发的所有代码都可以在64位环境下运行。也就是说,用SQL Server 2005或ASP.NET开发的所有代码迁移到64位服务器上后,其运行不受影响。Microsoft也对CLR做了许多改进,使.NET的64位版本能正常工作。这些改进包括垃圾回收(处理更多的数据)、JIT编译过程、异常处理等。
迁移到64位后,会增加一些强大的功能。最重要也是最明显的原因是64位服务器有更大的寻址空间。迁移到64位还可以有更大的基本数据类型。例如,2^32的整数值是4,294,967,296,而2^64的整数值是18,446,744,073,709,551,616。应用程序将更便于计算U.S.债务或其他很大的数字。
Microsoft和IBM等公司给客户展示了64位的魅力。一个主要领域就是数据库和虚拟数据存储功能,这是迁移到64位的一个最有意义的理由。
Visual Studio 2005可以在64位计算机上安装和运行。这个IDE有32位和64位编译器。其后果之一是,64位的.NET Framework只能用于Windows Server 2003 SP1或更高版本,以及将来的其他64位Microsoft操作系统。
在Visual Studio 2005中建立应用程序时,可以修改应用程序的建立属性,使之专门为64位计算机编译程序。要找到这个设置,需要打开应用程序的属性窗口,单击Properties页面上的Build选项卡。在Build页面上单击Advanced按钮,打开Advanced Compiler Setting对话框。在这个对话框中,可以修改底部的目标CPU。这样,就可以使所建立的应用程序用于Intel 64位计算机或AMD 64位计算机,如图0-1所示。