搜索引擎优化高级编程——PHP版

搜索引擎优化高级编程——PHP版"

作者:
ISBN:9787302179511
定价:¥48
字数:千字
页数:
出版时间:2008.07.01
开本:
版次:1-2
装帧:
出版社:清华大学出版社
简介

搜索引擎优化(SEO)不只是营销部门的工作。它必须经过Web站点开发人员的深思熟虑,贯穿了从最初的Web站点设想开始的整个开发过程。通过改变Web站点的体系结构和修改其表现技术,能够极大地提升搜索引擎的排名和流量水平。

  这本独特的手册专门为PHP开发人员或涉足技术的营销人员编写,为创建和维护针对搜索引擎进行优化的Web站点提供了各种技术,包括如何通过简化站点的索引及如何通过协调专业技术和服务来提升自己的站点。本书将指导您理解Web站点体系结构在搜索引擎优化中的角色,并学习相关的各种主题,从而帮助您开发出搜索引擎排名靠前的站点。最后,本书通过创建一个简单的电子商务商店和优化的WordPress博客来教会您如何运用这些知识。

本书主要内容

l 影响搜索引擎排名的各种因素

l 使用PHP、Apache和mod_rewrite创建富含关键词的URL

使用HTTP报头来正确指示Web文档的状态

l 创建优化的内容和有效地处理重复的内容

l 避免成为黑帽(black hat)SEO技术的牺牲品

l 地域定向(geo-targeting)和伪装(cloaking)技术

l 使访问者和搜索引擎可以高效地使用站点地图

l 创建搜索引擎友好的WordPress博客

l 创建搜索引擎友好的电子商务商店

本书读者对象

  本书针对需要将搜索引擎优化原理运用于Web应用开发的PHP开发人员,以及希望更好地理解营销中涉及的搜索引擎技术的市场营销员。

  搜索引擎优化在传统意义上是营销团队的工作。但在本书里,我们将从另外一个角度看待搜索引擎优化,让编程人员也参与到搜索引擎优化的队伍中来。

  这本手册专门为PHP开发人员或涉及技术的营销人员编写,涵盖了从Web站点的最初设想、技术规划、可视化设计到贯穿开发的整个过程。本书深入讨论了各种可用于提升站点知名度的技术和服务,并提供大量有用的信息以帮助您创建并维护搜索引擎友好的Web站点和避免一些常见的错误。

  

前言

前    言

  Visual Basic 2005和.NET Framework结合,提供了非常强大的开发环境。开发人员利用这些工具,可以相当方便、快捷地构建功能强大的应用程序。

  然而,随着功能的强大,复杂性也随之增加。目前有许多讨论Visual Basic语言的书籍,如果要构建相对简单的应用程序,通常有这些书就足够了。然而,讨论有关更复杂Visual Basic应用程序开发中会面临的复杂问题,讨论Visual Basic应用程序的设计、建模、用户界面设计或测试的书籍却很少。

  而且,大多数书中都没有讨论某些重要的高级主题(这些高级主题不适合普及型图书)。它们通常没有花时间深入讨论线程、反射、高级内存管理和打印,而这些对于构建真正的高级应用程序是十分必要的。

  本书填补了这些书籍在Visual Basic开发方面留下的空白。它讨论了开始Visual Basic开发之前必需的设计活动,还讨论了开发之后发生的过程(例如部署、更新管理和测试),这些过程对于成功的Visual Basic项目而言不可或缺,但它们又不是语言本身的一部分。最后,讨论了现实应用程序中非常有用而其他书籍却很少关注的高级主题。

选择Visual Basic的理由

  有位Visual Basic编程人员曾这样开C#的玩笑:“Visual Basic .NET和C#之间的区别何在?3个月而已!”意思是说,Visual Basic .NET的语法很容易理解,用它构建应用程序比较快。同样,C#编程人员也有关于Visual Basic的玩笑,意思是C#更强大。

  实际上,Visual Basic不一定比C#更容易使用,C#也不一定比Visual Basic强大多少,除了有些格式不同之外,两种语言的基本形式很相似。优秀的C#编程人员产生小型应用程序的速度与Visual Basic开发人员一样快;优秀的Visual Basic编程人员也可以和C#开发人员一样有效地产生对象层次结构和图形代码。

  然而,构建成功的应用程序不仅仅是写出大量的代码,许多开发人员忽略了这一点。代码在今天、明天乃至在应用程序的整个生命期中都必须工作正常。

  比编程语言更重要的是开发人员使用语言的方式。有很多使用C语言、FORTRAN语言乃至汇编语言写的代码,其结构良好、文档齐全,训练有素的任何人都能在修改代码时使向代码中增加模糊bug的机会最小。笔者也见过一个有56 000行Visual Basic代码的项目,其设计欠佳,文档不全,甚至从事此项目多年的开发人员做一个简单的修改也要花一周甚至更长的时间,而且有大约50%的机会添加新bug,这些bug可能要再用一到两周的时间来修复。

  因此,这能说明您的语言选择得不好吗?并不完全是这样。首先,开发环境在现代应用程序开发中发挥着非常重要的作用。Visual Studio为编程、调试和重构代码提供了无与伦比的工具。IntelliSense使得很容易记住某个例程需要什么参数。自动完成让使用更长、更有描述性的变量变得更方便。设计时的语法检查会在输入代码时突出显示可疑代码。XML注释和特性让您创建比以往更加自文档化的类、方法和事件。使用Visual Studio语言写出有效、可靠、可维护的代码比用其他许多缺少开发环境支持的语言要容易。

  虽然Visual Studio提供了所有这些工具,但是并不意味着您能正确使用它们,但Visual Basic使您在这方面稍具优势。Visual Basic始终是一种描述性语言。其关键字相当自文档化,并可以提供额外的上下文,让您明白发生了什么。子例程中包含几个嵌套循环的一段C#或C++代码,可能以一系列右括号结束。没有额外的信息帮您记住括号是什么的结束。您可以(应该)添加注释来说明,但语言本身不会要求您这样做,因此许多编程人员也没有这样做。

  相反,Visual Basic用适当的End Do、End If、End Sub及其他语句来结束一组代码,这些语句让人很容易明白它是什么类型的代码块的结束。虽然您仍然应该添加注释来说明结束的代码块的用途,但是Visual Basic本身也提供了一些基本注释。

  因为Visual Basic比其他Visual Studio语言更具有描述性,所以它也鼓励开发人员采用更有描述性的风格。每次写For循环,都可以看到关键字,这些关键字有助于确定循环的目的和范围。Visual Basic语言是透明的,因此开发人员更倾向于让自己的代码透明。

  (.NET Framework在这方面树立了典范,它提供了长的、描述性的变量、类、方法和事件名称。像SortedList这样的类名和像DrawRectangle这样的方法名很容易理解,因此采用类似的编写描述性名称的习惯很容易。)

  没有哪种编程语言能够要求您写出优秀的代码。但是Visual Studio提供了强大的工具,它们可以减少写优秀代码的障碍。这些工具使构造自描述性代码变得非常简单,因此没有理由去写充满晦涩、不一致缩写的密集型、不透明代码。Visual Basic用自描述性方式完成自己的工作,对保持代码透明方面提供了一些额外的帮助。如果您愿意,可以使用C#,但是笔者更喜欢充分利用每个可用的有利条件。

本书读者对象

  本书适用于高级Visual Basic编程人员。本书假设读者已经有Visual Basic 2005的经验,对该语言很熟悉。本书不讨论任何语言基本原理,也不包含任何进修资料。如果您觉得需要更好地体会Visual Basic,请参阅笔者编写的《Visual Basic 2005编程参考手册》一书。

  在本书中会尽可能地讨论高级主题,然而,在有些案例中,会将类似的代码归纳起来为更高级的主题提供背景。但本书各部分的目的是讨论高级主题,这些高级主题要么比较复杂,要么在其他地方难以找到,或者既复杂又难以找到。

  注意,不是所有高级主题都很复杂或难以理解。例如,下面这句话概括了全书最重要的概念之一:

  实际上,这句话非常重要,即使您从本书中没有学到其他什么方法,能记住这句话也就物有所值了。然而,一旦您真正理解了这种思想(本书稍后特别是在第14章会讨论到它),就会明白它其实非常显而易见。当然,这是一个高级概念,笔者从未看到其他书明确提到过这一概念,许多开发人员也是经过多年调试他人的代码之后才明白这一点的。

本书的结构

  本书所有章节可分为4个部分。

第I部分:设计

  本书这一部分包含的几章讨论了编程开始之前的活动。介绍了开发和设计方法,以及一些有用的设计技巧。许多编程人员跳过了这些阶段,后来当发现他们的最初设想不适用于应用程序时,就会为此付出巨大的代价。

  第1章“语言选择”讨论了选择开发语言时应该考虑的一些问题。本书假定您使用Visual Basic,但本章也讨论了该语言的一些不足。您可能会坚持使用Visual Basic,但也应该知道该语言的一些弱点,以及如何应对它们。如果知道哪里可能会出问题,处理它就会更容易。在一些极端案例中,您可以将一些更棘手的模块转移到用其他语言编写的库中,然后使用Visual Basic代码调用这些库。

  第2章“生命周期方法论”讨论了不同的生命周期方法,例如瀑布、迭代原型和阶段性交付模型。这一章解释了为什么Visual Basic是特别好的迭代地构建应用程序的工具。绝大多数开发人员都习惯使用某种特定的方法,并且从不会改变。即使您确定您会使用迭代原型构建应用程序,也值得花时间了解其他方法的最好特征,以便从所有这些特征中发现最好的想法。

  第3章“敏捷方法论”讲解了不同的开发策略,例如敏捷开发方法(如极限编程(XP))、测试驱动的开发和契约式设计(DBC)等。本章还讲述了对Microsoft的Web站点上关于使用Visual Studio进行敏捷开发的信息的引用。

  第4章“面向对象的设计”讨论了面向对象设计中的一些问题。介绍了统一建模语言(UML),以及设计面向对象系统的一些技巧。讨论了Visual Studio Team Suite和Visual Studio Team Architect支持UML的方法,讲述了开发人员使用的其他UML工具。同时还介绍了一种可以通过从不同角度(例如从用户界面、文档和数据的角度)审视设计来彻底理解应用程序的方法。最后讨论了从面向对象的思想(例如封装、多态性、松散耦合和面向组件设计)中获得最大好处的方法。

  第5章“用户界面设计”讲解了一些重要的用户界面概念。讨论了7 +/-2规则,讲述了使用容器(例如制表符条和滚动控制)来显示大量数据的方法。讨论了SDI和MDI应用程序的优缺点,研究了菜单、工具栏和键盘快捷方式,探讨了为特定用户和特定场所定制用户界面的方法。

  第6章“数据存储器设计”讨论了不同数据的存储和恢复策略。探讨了一些选项,例如关系数据库、XML、纯文本文件、系统注册表(System Registry)、数据编译、资源文件和INI文件。讨论了程序串行化和反串行化其数据的方法。注意,本章并没有深入讨论关系数据库设计。例如,本章没有详细讨论标准化和索引,而是建议参考其他书籍来获得更多信息。

  第7章“设计模式”介绍了Visual Basic中的设计模式和反模式。讲解了设计模式和反模式的定义,介绍了一些最有用的模式。要了解其他详细情况,本章建议读者参考其他书籍,例如Mark Grand和Brad Merrill所著的Visual Basic Design Patterns(Indianapolis: Wiley,2005)。

第II部分:元开发

  本书这一部分包含的几章讨论了应用程序开发人员使用的编码工具。其中包括给开发人员提供设计时支持的插件、可放在表单上的自定义控件和组件,以及让用户在运行时执行脚本的技术。一个好的元开发工具库可以让后续开发变得简单且少出错。

  第8章“代码片断、宏和插件”讨论了如何为Visual Basic 2005开发环境写插件。这一章简要介绍了代码段,讨论了适合使用代码段而不适合使用插件的时机。

  第9章“脚本”讲解了程序允许终端用户编写和执行脚本的方法。讨论了让用户执行SQL语句、VBA代码和VB.NET脚本的方法。还讨论了程序如何提供对象模型以便用户用VB .NET脚本控制它,以及开发人员如何使用相同的脚本技术,在编译应用程序之后再给它赋予新功能。

  第10章“自定义控件与组件”讲解了构建自定义控件的方法。讨论了构建自定义控件的3种主要方法:UserControl、编写子类和从头开始建立。本章还讲述了构建一种特别有用的自定义控件(称为扩展程序提供者)的方法,列举了一些非常有用的数据有效性验证扩展程序提供者的示例。

  第11章“属性支持”讨论了建立自定义控件使用的自定义属性编辑器的方法。讲解了使用类型转换器允许编辑器(例如,设计时的Properties窗口和运行时的PropertyGrid控件)编辑对象复杂属性的方法。

  第12章“特性和XML注释”讨论了可以用来“装饰”代码的有用特性。这些特性使后来使用代码的其他开发人员(或您自己)可以看到附加信息,这样他们就可以更方便地正确使用代码。

第III部分:开发

  本书这一部分包含的几章讨论了与应用程序开发工作的主体相关的主题。这几章着重讨论写代码的过程,以及一些更有效的写代码的方法,而没有详细讨论语言特征和语法问题。

  第13章“文档”讨论了让较复杂的项目变得文档齐全的方法。讨论了Visual Basic 2005支持的特殊XML文档注释,并通过高级示例说明了使用它们自动生成文档和帮助文件的方法。

  第14章“开发理念”讲解了高级编码的概念,这些概念可以让开发和维护复杂应用程序变得容易。本章介绍了一些思想,例如用于测试的高级设计、防护性和进攻性编程以及代码为人而写,不是为计算机而写等。这些思想在员工不断变化的大型项目中特别有用,因为它们为接手项目的新开发人员提供了上下文。

  第15章“编码标准”讲述了笔者提出的一套特别的编码标准,该标准可以使阅读代码变得容易。讲述了笔者提出的标准与Microsoft 及其他公司使用的标准之间的不同之处。这些标准为开发您决定采用的规则提供了起点。没有哪一套标准是完美的,但采用某个标准比不采用任何标准要好。

  第16章“防止bug”讲解了开发人员为了便于找到和修复bug而采取的步骤。这些方法在大型复杂应用程序中至关重要。本章讨论了Try Catch Finally块的缺点,讲述了处理它们的方法。同时还讨论了使用应用程序级事件来查找所有应用程序的错误的方法,以及允许程序记录和从错误中恢复的高级方法。

  第17章“测试”解释了高级调试和测试方法。讨论了黑盒、白盒和非常情况测试,讨论了回归、例程、模块和综合测试,讲述了评估项目质量的方法,讨论了免费的NUnit测试工具及它如何应用于测试驱动的方法,以及内置在Visual Studio 2005 Team System中的单元测试支持。

  第18章“部署”解释了Visual Basic 2005应用程序现有的开发策略。讨论了将新模块和脚本加载到以前编译的应用程序中来提供扩展性的方法,还讨论了使用串行化以允许向前和向后兼容的方法。

第IV部分:具体技术

  这一部分的几章讲解了具体的高级技术,这些技术在许多应用程序中都有用。前几章解决的是一般设计和开发问题,而这几章将讨论处理具体任务的方法,这些任务在许多开发项目中都会产生。

  第19章“闪屏”讲解了快速建立令人印象深刻的闪屏和About对话框的方法。讨论了创建成形表、旋转文本和到 Web 页面的链接等方法。虽然这可能是本书中最不高级(但最有趣)的一章,但是该主题也应该引起足够重视。闪屏和About对话框是一些最基本的方法,运用这些方法可以使用户和客户与应用程序互动,因此它们奠定了基础。好的闪屏显示了您对应用程序的热情,可以让用户知道您关心程序的细节问题。

  第20章“打印”讲解了用Visual Basic .NET打印的方法。讨论了使用标准的.NET打印技术封装页面上的文本及让文本围绕对象流动的方法。同时讨论了更自然的过程化打印方法,对于绝大多数开发人员而言这种方法更直观,它可以显示一些内容,例如逐页计数,而使用标准的.NET打印模型则难以显示这样的计数。

  第21章“线程”讲解了如何使用Visual Basic 2005提供的新增线程工具。随着计算机硬件速度逐渐稳定,多线程是提高应用程序性能最好的方法之一,但是它也有其自身的风险和前提。本章讨论了多线程应用程序的一些问题,例如对用户界面线程的访问权限和并发问题。

  第22章“反射”讨论了Visual Basic .NET最强大的特征之一:反射。讨论了程序如何使用反射来了解使用自己代码及其他程序集的模块、对象、属性和方法。讨论了程序使用反射加载模块的方法,这些模块是在编译应用程序后编写的。

  第23章“内存管理”讨论了内存管理问题。介绍了垃圾收集器,讨论了如何执行和调用Dispose方法,以及使用弱内存引用来改进内存管理的方法。

使用本书的方法

  使用本书有两种明显的方法。首先,可以一页一页地看。按本书最自然的顺序阅读:设计、元开发、开发和具体技术。

  其次,可以直接阅读感兴趣的主题。如果要构建一些自定义控件以进行文本框中数据的有效性验证,可以阅读第10章“自定义控件与组件”。

  在开发过程中如果能记住本书中描述的多种方法,会很有帮助。从您已经写出的代码上很难再产生出好的编程实践,因此,在需要它们之前,您应该阅读相关章节。最起码要将整本书都浏览一遍,这样您就会知道讨论了什么主题。从而,当您准备进入新的开发阶段时,就会知道哪一章包含了需要您仔细研究的重要信息。

使用本书的条件

  要阅读本书并理解其中的示例,不需要特别的东西。甚至不需要Visual Basic,其中许多技术也适用于其他语言。

  要使用Visual Basic .NET并运行本书的Web页面上的示例,只需一台可以运行Visual Basic .NET的计算机就行了。这意味着要有一台相当现代、内存较大、速度较快的计算机。 请参阅Visual Basic .NET文档了解Microsoft的确切要求和建议。

  要构建Visual Basic .NET程序,需要一个Visual Basic .NET的副本。本书显示的示例都在Windows XP环境下使用Visual Basic 2005编写而成并经过了测试,但在较老的操作系统或Visual Basic .NET的较早版本中,绝大部分示例稍做修改或不做修改也可以运行。有些程序可能无法在Vista 操作系统中运行。访问本书的Web站点www.vb-helper.com/ one_on_one.htm,可以找到更新的与Vista兼容的示例。

  很多Visual Basic 2005版本Visual Basic .NET 2003及与Visual Basic .NET的较早版本都兼容,因此可以创建不少能在Visual Basic .NET较早版本中运行的示例。但是,不能加载从本书Web站点下载的示例程序。您需要将代码的重要部分复制、粘贴到Visual Basic .NET版本中,并做一些修改。如有疑问,请发电子邮件到RodStephens@vb-helper.com,笔者将尽力为您提供指导。

  要使用Visual Basic的.NET之前的版本(例如Visual Basic 6)来运行示例会遇到许多麻烦。Visual Basic 6 与Visual Basic .NET之间的差别很大,许多Visual Basic .NET概念不能转换到Visual Basic 6中。如果有一些C#的经验,将程序转换到C#中可能会容易些。

p2p.wrox.com

  要与作者探讨或进行同行讨论,请加入p2p.wrox.com的P2P论坛。该论坛是一个基于Web的系统,您可以发布与Wrox书籍及其相关技术有关的帖子,可以与其他读者及技术用户进行交流。该论坛具有订阅功能。有新的帖子时,它可以将您选择的感兴趣的主题用电子邮件发送给您。这个论坛上有Wrox的作者、编辑、其他行业专家及您的读者朋友。

  在http://p2p.wrox.com上您会发现许多不同的论坛,在您阅读本书时,甚至是在您开发自己的应用程序时它们都可以为您提供帮助。要加入论坛,请按下面步骤操作:

  (1) 登录 p2p.wrox.com,单击Register链接按钮。

  (2) 阅读使用条款,单击Agree按钮。

  (3) 填写好加入论坛所需的信息以及您希望提供的所有可选信息,单击Submit按钮。

  (4) 您会接收到一条电子邮件信息,这条信息提供了确认账户、完成加入过程的方法。

  提示:

  不用加入P2P,您也可以阅读论坛上的消息。但是要发帖子,则必须加入。

  加入之后,就可以发新帖子,回复其他用户的帖子。在Web上,任何时候您都可以阅读论坛上的消息。如果您想让特定论坛上的新消息通过电子邮件发送给您,请单击论坛列表中论坛名上的Subscribe to this Forum图标。

  要了解如何使用Wrox P2P的更多信息,请阅读P2P FAQ(常见问题)中相关问题的回答。里面有关于论坛软件如何运行的问题,以及许多针对P2P和Wrox书籍的常见问题。要阅读FAQ,请单击任意P2P页面上的FAQ链接。

本书的Web站点

  在本书的Web站点www.vb-helper.com/one_on_one.htm上,您可以:

● 下载本书中的示例

● 下载其他Visual Basic编程示例

● 查看更新和修订

● 连接到本书的Wrox讨论群

● 阅读其他读者的评论和建议

  本书是在Windows XP环境下用Visual Basic 2005所写。本书的Web站点包含了所有示例的修改,以便这些示例能够在Vista操作系统中运行。

  如果您有自己的修正或评论,请发送给笔者,电子邮件地址为RodStephens @vb-helper .com,笔者将尽力使Web站点保持最新。

  只要订阅笔者在www.vb-helper.com/newsletter.html上的3个新闻列表之一,就可以收到有关Visual Basic编程的每周提示、技巧和示例。笔者在这些新闻列表中会发布所有更新,因此,如果您订阅了,就会知道何时有更新。

  

  

  

  

  

  

  

  

  

  

目录

目    录

第Ⅰ部分  设    计

第1章  语言选择 3

1.1  语言嗜好 3

1.2  缺点 4

     1.2.1  解释,而不是编译 4

     1.2.2  语言特性 5

     1.2.3  多重继承 7

     1.2.4  平台依赖 7

     1.2.5  从Visual Basic 6升级 8

     1.2.6  GUI构建 8

     1.2.7  不够简洁 8

     1.2.8  功能和灵活性 9

1.3  优点 9

     1.3.1  自文档 9

     1.3.2  原型制作与简单应用程序 10

     1.3.3  IDE 10

     1.3.4  语言相关性 11

     1.3.5  垃圾收集 11

     1.3.6  大人才池 12

1.4  小结 12

第2章  生命周期方法论 15

2.1  生命周期阶段 15

     2.1.1  想法表述与细化 15

     2.1.2  小组构建 17

     2.1.3  需求收集 19

     2.1.4  可行性分析 20

     2.1.5  高层次的设计 22

     2.1.6  较低层次的设计 23

     2.1.7  实现 24

     2.1.8  测试 25

     2.1.9  开发 29

     2.1.10  支持 30

2.2  生命周期模型 31

     2.2.1  一次性应用程序 32

     2.2.2  Waterfall 32

     2.2.3  原型 37

     2.2.4  混合与匹配 43

2.3  小结 43

第3章  敏捷方法论 45

3.1  敏捷编程 45

     3.1.1  Crystal Clear 47

     3.1.2  极限编程 48

     3.1.3  敏捷与传统生命周期 56

     3.1.4  敏捷优势与弱点 57

3.2  契约式设计 58

3.3  用于敏捷开发的

     Microsoft工具 62

3.4  小结 63

第4章  面向对象的设计 65

4.1  Bug Hunter示例 65

4.2  构建对象模型 66

     4.2.1  挑选候选类 66

     4.2.2  将候选类转换成类 67

     4.2.3  添加内部类 70

     4.2.4  添加数据库类 70

     4.2.5  学习不同的设计观点 71

     4.2.6  改进类 71

4.3  UML 74

     4.3.1  用例图 75

     4.3.2  类图 77

     4.3.3  顺序图 80

     4.3.4  活动图 81

     4.3.5  状态图 82

     4.3.6  组件图 83

     4.3.7  部署图 84

     4.3.8  UML小结 85

4.4  UML工具 86

4.5  小结 88

第5章  用户界面设计 89

5.1  UI设计原则 89

     5.1.1  赋予用户控制权 90

     5.1.2  关注任务 90

5.1.3  提出忠告,而不是

采取行动 91

     5.1.4  帮助用户做正确的事 92

5.2  用户 92

     5.2.1  了解用户的工作 92

     5.2.2  尊重用户 93

     5.2.3  了解用户的环境 93

     5.2.4  了解用户类型 94

5.3  表单 95

     5.3.1  MDI与SDI 96

     5.3.2  重新调整表单大小 96

     5.3.3  编辑器 98

     5.3.4  属性表单 98

5.4  设计原则 100

     5.4.1  不同阶段中的原型 100

     5.4.2  提升表单流程 100

     5.4.3  组合相关条目 103

     5.4.4  支持调整大小 104

     5.4.5  支持不同的字体大小 105

     5.4.6  优化菜单 109

     5.4.7  明智地使用空间 110

     5.4.8  设计优秀标题 111

     5.4.9  保留状态 112

     5.4.10  撤销与重做 112

     5.4.11  适应不同的技能水平 116

     5.4.12  提供适当的反馈 118

5.5  一致性 120

5.6  小结 120

第6章  数据存储器设计 121

6.1  关系数据库 121

6.2  关系数据库产品 126

6.3  编译到代码中的数据 127

6.4  资源文件 132

6.5  卫星程序集 134

6.6  系统注册表 135

6.7  INI文件 140

6.8  XML 143

6.9  其他文本文件格式 146

6.10  对象数据库 147

6.11  小结 148

第7章  设计模式 149

7.1  创建模式 150

     7.1.1  克隆 150

     7.1.2  工厂 154

7.2  关系模式 156

     7.2.1  Adapter 157

     7.2.2  Facade 157

     7.2.3  Interface 158

7.3  行为模式 158

     7.3.1  抽象基类 159

     7.3.2  Chain of Responsibility 162

     7.3.3  Chain of Events 164

     7.3.4  Command 166

     7.3.5  Delegation 168

     7.3.6  模型、视图和控制器 171

     7.3.7  Property Procedure 179

     7.3.8  快照 180

     7.3.9  Strategy 184

7.4  更多信息 186

7.5  小结 187

第Ⅱ部分  元  开  发

第8章  代码片断、宏和插件 191

8.1  代码片断 191

     8.1.1  使用代码片断 192

     8.1.2  建立代码片断 194

     8.1.3  安装代码片断 196

     8.1.4  共享代码片断 197

8.2  宏 197

     8.2.1  记录宏 198

     8.2.2  编辑宏 199

     8.2.3  修改宏 200

     8.2.4  使用样本宏 203

     8.2.5  定制Visual Studio 204

     8.2.6  共享宏 206

8.3  插件 206

     8.3.1  创建插件 207

     8.3.2  加入插件代码 211

     8.3.3  创建更好的插件 214

     8.3.4  学习其他对象 215

8.4  小结 220

第9章  脚本 221

9.1  脚本安全 221

9.2  执行SQL语句 225

     9.2.1  执行查询 225

     9.2.2  生成查询 227

     9.2.3  运行命令 231

9.3  执行Visual Basic 代码 235

     9.3.1  运行代码 235

     9.3.2  公开对象模型 238

     9.3.3  简化脚本 241

9.4  表达式求值 243

9.5  小结 245

第10章  自定义控件与组件 247

10.1  建立派生控件 247

10.2  设置工具箱位图 253

10.3  测试控件 254

10.4  建立UserControl 255

10.5  从头开始建立控件 259

10.6  建立组件 265

     10.6.1  建立扩展程序提供程序 271

     10.6.2  一个简单的示例 272

     10.6.3  更为实用的一个示例 274

10.7  小结 278

第11章  属性支持 279

11.1  自定义综述 280

11.2  显示并编辑LineWidth 285

     11.2.1  LineWidthEditor 285

     11.2.2  LineWidthListBox 287

11.3  显示并编辑LineColor 289

11.4  显示并编辑PolyPolyline 290

     11.4.1  PolyPolylineConverter 290

     11.4.2  PolyPolylineEditor 291

11.5  显示智能标记 294

11.6  显示属性表 301

11.7  显示对象属性 304

11.8  小结 310

第12章  特性和XML注释 311

12.1  特性(attribute) 312

     12.1.1  辅助Properties窗口 313

     12.1.2  辅助窗体设计器 321

     12.1.3  辅助代码编辑器 322

     12.1.4  Helping Serialization 325

12.2  XML注释 329

     12.2.1  自动生成文档 330

     12.2.2  设计时支持 331

     12.2.3  推荐使用的标记 332

12.3  建议 336

12.4  小结 338

第Ⅲ部分  开    发

第13章  文档 343

13.1  编写文档的时机 343

13.2  文档类型 345

     13.2.1  用户文档 345

     13.2.2  开发人员文档 350

13.3  XML文档 354

     13.3.1  自定义XML标记 355

     13.3.2  使用XML文档 356

     13.3.3  XmlDocToText 程序 357

     13.3.4  XmlDocToHtml程序 362

13.4  小结 369

第14章  开发理念 371

14.1  为人设计程序 371

14.2  掌握用户 373

14.3  让程序查找错误 374

14.4  让程序先运行起来 375

14.5  三思而后行 376

14.6  一步一个脚印 377

14.7  使用面向对象原则 378

14.8  利用Visual Studio 379

14.9  担心最弱的一个环节 380

14.10  保存一切 382

14.11  避免使用最新的产品 383

14.12  使用敏捷方法的

       部分技术 384

14.13  小结 384

第15章  编码标准 387

15.1  名称 388

     15.1.1  匈牙利表示法 388

     15.1.2  组件名称 389

     15.1.3  常量名称 391

     15.1.4  例程的变量名称 391

     15.1.5  其他名称 391

     15.1.6  Boolean名称 392

     15.1.7  缩写 393

     15.1.8  转义名称 393

     15.1.9  类名称 394

     15.1.10  属性名称 394

     15.1.11  方法名称 395

     15.1.12  事件名称 395

15.2  声明变量 397

15.3  重载以及可选参数 399

15.4  ParamArray 403

15.5  If Then和Select Case 404

15.6  代码块结尾 406

15.7  退出点 407

15.8  Exit For、Exit Do以及

      Continue 408

15.9  End 408

15.10  小结 409

第16章  防止bug 411

16.1  捕获bug 411

     16.1.1  等待bug 412

     16.1.2  全局错误处理 413

     16.1.3  猎获bug 417

16.2  Try Catch块 420

16.3  对bug的响应 422

16.4  小结 426

第17章  测试 427

17.1  测试哲学 427

     17.1.1  尽早和经常测试 428

     17.1.2  测试一切 428

     17.1.3  永远保存测试 429

     17.1.4  不敌视指出bug

            的同事 429

17.2  测试种类 430

     17.2.1  子单元测试 430

     17.2.2  单元测试 431

     17.2.3  集成测试 431

     17.2.4  系统测试 432

     17.2.5  回归测试 432

17.3  测试技术 433

     17.3.1  穷尽测试 433

     17.3.2  黑盒测试 433

     17.3.3  白盒测试 434

     17.3.4  随机测试 434

17.4  测试机制 434

     17.4.1  在应用程序内测试 435

     17.4.2  在应用程序外测试 437

     17.4.3  一个测试示例 438

17.5  测试工具 440

17.6  Visual Studio测试工具 442

17.7  GUI测试 443

17.8  小结 447

  

第18章  部署 449

18.1  部署模型 449

     18.1.1  用户类型 449

     18.1.2  主要和次要版本 450

     18.1.3  敏捷发布 451

18.2  部署方法 452

     18.2.1  ClickOnce 452

     18.2.2  Windows Installer 457

     18.2.3  其他解决方案 460

     18.2.4  Xcopy 461

18.3  小结 461

第Ⅳ部分  具 体 技 术

第19章  闪屏 465

19.1  确定闪屏内容 466

19.2  显示闪屏 467

19.3  显示About对话框 469

19.4  提供反馈 470

19.5  控制条目位置 471

19.6  表单成形 472

19.7  填充文本 474

19.8  旋转文本 475

19.9  显示隐藏的屏幕 476

19.10  小结 478

第20章  打印 481

20.1  事件驱动的打印 481

20.2  打印表单 484

20.3  封装文本 488

20.4  使文本流动 492

20.5  过程化打印 498

20.6  小结 502

第21章  线程 505

21.1  线程的优缺点 505

     21.1.1  优点 506

     21.1.2  缺点 506

21.2  使用后台工作程序 511

21.3  UI线程 511

21.4  提供反馈 516

21.5  提供图形化反馈 519

21.6  分割任务 520

21.7  SyncLock 523

21.8  小结 526

第22章  反射 527

22.1  探索程序集 527

22.2  探索枚举 536

22.3  动态地加载类 539

22.4  动态地调用方法 543

22.5  发现资源 546

22.6  检索已知资源 548

22.7  小结 552

第23章  内存管理 553

23.1  垃圾收集 553

23.2  结束 554

23.3  处置资源 556

23.4  处置自定义类 557

23.5  预先分配对象 559

23.6  弱引用 562

23.7  改进垃圾收集 564

23.8  小结 566

  

  

  

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个