本书以面向对象技术为主线,从跨语言的角度介绍C# 2.0与Visual Basic 2005的语言特性,深入剖析了CLR的内部运行机理;同时,详细介绍Visual Studio 2005的新特性,并展示出这些特性是如何应用于开发实践的,从而帮助读者用好这一开发工具;本书还深入剖析了一些较复杂的.NET技术,比如委托、异步调用、事件驱动、多线程等,可以帮助读者提升编程技能。\r\n 本书在写作上追求深入浅出,易于自学,理论联系实际,适合于拥有一定开发经验和计算机理论基础的程序员,或在校的计算机专业高年级学生及研究生阅读。
第1篇 认识.NET 2.0与Visual Studio 2005\r\n 第1章 .NET与面向对象技术\r\n 1.1 .NET Freamework简介\r\n 1.2 .NET编程原理\r\n 1.3 面向对象技术简介\r\n 第2章 Visual Studio 2005使用速成\r\n 2.1 安装与版本说明\r\n 2.2 熟悉Visual Studio 2005文档\r\n 2.3 Visual Studio 2005项目类型\r\n 2.4 解决方案资源管理器的使用\r\n 2.5 代码编辑器的使用\r\n 2.6 编译和运行程序\r\n 2.7 学会程序调试方法\r\n 2.8 .NET程序的部署\r\n 2.9 RAD编程方式简介\r\n第2篇 面向对象理论及应用\r\n 第3章 类与对象\r\n 3.1 类与对象的概念\r\n 3.2 类的编写\r\n 3.3 深入理解对象内存模型\r\n 3.4 基于.NET的组件化开发\r\n 第4章 继承、接口与多态\r\n 4.1 继承\r\n 4.2 抽象类和接口\r\n 4.3 多态\r\n 4.4 类的可视化设计\r\n 4.5 再探CLR对象模型\r\n 第5章 在编程中灵活应用对象\r\n ……\r\n第3章 使用Visual Studio 2005软件工程特性提升开发效率\r\n第4章 基于.NET Framework 2.0开发\r\n附录A C#2.0与Visual Studio 2005\r\n附录B MSIL基础教程\r\n附录C Visual Studio Team System:设计和运行测试的概述\r\n本书缩略语\r\n参考文献\r\n后记
金旭亮,计算机应用专业硕士,1993年本科毕业于广西大学,1999年考入北京理工大学计算机系,毕业后留校任教。主要研究领域为面向对象技术与软件工程,具有十多年的软件开发实践经验。高度关注中国计算机教育问题,在北京理工大学主讲软件开发系列课程,其所进行的教学改革探索实践引发了广泛的社会关注。计划撰写一系列的软件技术书籍,以促进软件技术成果的传播与普及。
已出版之主要著作:《网站建设教程》高等教育出版社2003《编程的奥秘——NET软件技术学习与实践》电子工业出版社2006。
自从1994年在一个电脑培训班里领会了计算机的神奇魅力,我就开始了与计算机朝夕相伴的日子,开始“疯狂地”学习软件技术和编程,到本书写作之时,已经过去了十多年。在软件技术之路上走了这么长的一段路,多多少少有些心得与体会想与读者分享。
2006年1月,我的第一本有关.NET技术的书——《编程的奥秘——.NET软件技术学习与实践》由电子工业出版社出版,书出版以来,受到了许多读者的肯定,他们有的可以在书店“站读”数小时,有的专门买来送给刚进大学的新生,有的细心地指出书中的疏漏……,有的读者还专门给我发来邮件,希望我能继续写一本进阶的教程。
读者对我作品的肯定,给了我很大的鼓舞,而读者指出的不足之处,也鞭策我更努力认真地写作。
与此同时,微软中国公司为配合其新产品Visual Studio 2005的推广(于2005年11月推出),与电子工业出版社合作,打算推出一系列Visual Studio 2005中文原创技术书籍,也盛情相邀我继续写作。
适逢其时,使我下决心开始了这本书的写作。
本书的写作目标
我写《编程的奥秘——.NET软件技术学习与实践》时选择的编程语言是Visual Basic.NET(Visual Basic的7.1版本),之所以选择Visual Basic.NET,主要考虑它是一本入门书,对于没有编程经验的读者而言,Visual Basic.NET比C# 更适合于入门。但本书所要介绍的内容比《编程的奥秘——.NET软件技术学习与实践》一书要深入得多,使用C#更适合于展示.NET Framework的技术特色,因此,本书选择C# 2.0作为主要编程语言。然而,Visual Basic.NET与C#同是微软公司所重点支持的.NET编程语言,Visual Basic 2005(Visual Basic的8.0版本)新增的许多特性(比如My命名空间)也非常引人注目,只介绍C#一种语言的特性,未免有不够全面之憾,而且,许多.NET程序员都期望能同时掌握C#与Visual Basic.NET两种编程语言。因此,本书在重点介绍C# 2.0的同时,也同步介绍了Visual Basic 2005,并在本书的附录增加了一个“C# 2.0与Visual Basic 2005语法对照表”,期望本书能帮助读者成为一名“双语人才”。
我希望这本书能达到以下的写作目标。
(1)从跨语言的角度介绍面向对象语言
本书的前半部分以介绍C#语言为主,然而,我并不想把本书变成一本C#语法大全,事实上,相关的语法细节在Visual Studio 2005随机文档中有详细的介绍,并不需要在书中重复这些语法细节。
我一直在北京理工大学讲授程序设计课程,先后讲授过Visual Basic、Java、C++等编程语言课,我发现国内许多计算机编程语言教材都深抠语法细节,往往让读者陷入到“只见语法,不见程序”的境况中,一本书学完,大脑中除了一些孤立的语法规则之外,什么也没留下。
因此,在写作本书时,我有意识地采用了这样的一种处理方式:淡化语法,同时介绍几种面向对象语言,以便展示出面向对象编程语言的共同特性。为此,在介绍C#语言特性的同时,读者同时还会看到一些Visual Basic.NET和Java的对应实现方案,为了清晰地表达一些概念,还设计了一些C++示例。
另外,本书假定读者已掌握了C语言,所以第2篇开篇就是“类和对象”,直入主题,深入剖析面向对象编程中最重要也最基础的概念,跳过了对C#结构化编程特性的介绍,这是有意而为之的。因为C#与C有着明显的渊源关系,各种语句的语法格式都与C非常相近,我想本书不需要再浪费篇幅去介绍这些读者早已掌握的编程基础知识了,只是在附录中提供了一个“C# 2.0与Visual Basic 2005语法对照表”,其中列出了C#的常用语法,并附有代码实例,有C语言基础的读者参考一下,不难用C#写出合乎语法规范的代码。
(2)通过实例展示面向对象编程的思维方法,引导读者通过实践掌握面向对象编程的基本技能
笔者认为:一个好的例子胜过长篇大论。为此精心设计了大量的代码示例,向读者展示面向对象编程的思维方法。
全书包含大大小小上百个示例项目,大的实例比如第8章介绍的“四则运算计算器”,代码有上千行。所有的实例都可以在Visual Studio 2005中编译运行。同时,还提供了许多真实的编程场景要求读者实践,这些实践的种类多种多样,有的要求读者修改本书的示例,有的要求读者自学相关的技术,有的提供真实的程序要求读者对其进行重构,有的要求读者上网去收集相关的资料……
强调“在开发实践中学习编程”是本书的一大特色。
(3)深入剖析技术要点和难点,讲深讲透
笔者由于长期从事教学工作,因而对哪些知识与技术初学者难于把握比较了解,在书中针对这些难点进行了深入剖析和介绍,努力展示技术体系的脉络,向读者点出要点和难点所在。
比如,类与对象这两个概念是面向对象编程的基础,但相当多的人对它们理解并不透彻。基础都不牢,如何构建编程大厦?为此,本书用了整整一章的篇幅从各个角度阐述其内涵。
再如委托,在.NET中应用极广,使用灵活,是许多初学者的难点。另一些更为复杂的编程技术,比如异步调用和多线程,就建立在委托的基础之上,委托没学好,就谈不上掌握这些高级编程技术。这些内容,在许多技术书籍中或者没有涉及,或者语焉不详,给学习者带来了许多困难,其结果是有相当多的人对这些比较复杂的技术“云山雾罩”,只知其然不知其所以然。
还有对象比较、序列化、对象克隆、反射等技术,都是初学者的“拦路虎”,不把这些“拦路虎”打趴下,就难于在面向对象的技术世界中自由驰骋。
本书对于这些比较难以逾越的“障碍”进行了详细的剖析,设计了大量的实例,既讲代码又讲理论更讲应用,帮助读者攻克这些难关,掌握这些技术,从而将自己的开发能力提升到一个新的阶段。
(4)在“软件理论”与“开发实践”中架起一座金桥
本书强调实践,在正文中提供了大量的要求读者动手实践的场景(以“试一试”和“实践与探索”字样标出)。
长期以来,“理论”与“实践”间的鸿沟,一直是我国高校计算机教育中存在的严重问题。本书虽以介绍偏重实践的编程技术为主,但中间也有意渗透了大量的计算机理论知识。具体来说,阅读本书可以帮助读者对《面向对象分析与设计》、《软件工程》、《数据结构与算法》与《操作系统原理》4门计算机专业骨干课程的理论有更深入的理解,让抽象的理论落脚于实践的坚实基础之上。
我想,读者在看完这本书后,再回过头去看《操作系统原理》等专业理论课的教科书,一定会有与初学这些课程时不一样的感受。
(5)强调对开发工具的灵活应用
有这么一种比较流行的观点:
只有初学者才会去关注工具的使用细节,高手只关注技术与理论本身。
这基本上是没错的,高手们之所以不关注具体的工具,是由于他们已拥有了较多的开发经验与理论基础,拿到一个新的开发工具,只需略作了解,即可运用自如。
然而,这并不等于说工具的掌握无足轻重。事实上,选择合适的开发工具,以及项目组成员对各种开发工具使用的熟练程度,对整个项目开发效率有着很大的影响。
笔者在写作过程中,对Visual Studio 2005所提供的特性进行了比较全面的了解,作为一名写了十几年代码的“老”程序员,也时常会对Visual Studio 2005的一些特性“击节赞叹”,以至于产生了一种强烈的写作冲动,一定要将这些特性介绍给读者!
本书介绍的Visual Studio 2005主要功能特性包括:
使用Intellisense;
类的可视化设计;
静态代码分析;
程序性能分析;
单元测试。
由于本书以介绍面向对象编程技术为主,因而对Visual Studio 2005中有关团队开发的特性未做介绍。然而,读者只要能切实掌握本书介绍的这些特性并应用于开发实践中,相信Visual Studio 2005这一强大的工具一定能帮助读者写出高质量的代码,获得更高的开发效率。
(6)以大白话讲述复杂的技术
“以大白话讲述复杂的技术”是我在《编程的奥秘——.NET软件技术学习与实践》一书中提出的观点,本书同样遵循了这一写作风格,在写作时尽量采用通俗易懂的语言,举了许多通俗的实例和比喻,努力让读者拥有一种顺畅和愉悦的阅读体验。
我不喜欢那种满纸术语、满页公式、一脸严肃的技术书籍,那总让我回想起令人痛苦的学生阶段——硬着头皮学枯燥无味的教科书,被考试压得透不过气来。
学习不应该变得如此枯燥,探索未知的世界应该是一件有趣的事。尤其是编程,更是一件好玩的事,一件很让人有成就感的事。
现在我写书了,我就要努力写出让读者愿意读也喜欢读的技术书。《编程的奥秘——.NET软件技术学习与实践》就是我的一个尝试,以大白话讲述复杂的技术,绝不故弄玄虚,为了便于知识的理解与传播,宁愿放弃一些对严谨性的要求(那很容易导致满纸术语、满页公式)。这个尝试,我将继续下去,但在本书的写作中,由于面对的读者群不一样,我努力做到同时兼顾科学严谨与通俗易懂,这是对我写作的巨大挑战,是否做到了这点,还得由读者进行评判。
另外,本书在正文中以醒目的黑体字向读者点出技术的关键点及其在实践中的应用场景,这是从国内外一些优秀书籍中学来的写作方法,希望读者能喜欢。
(7)“自助餐”式的内容组织方式
不同类型的读者阅读本书的目的并不相同。有的读者可能希望能通过本书迅速掌握C#语言特性并使用它来编程;而已掌握了C#语言的读者,可能希望能更多地了
无封面