本书采用一种简洁明快的叙述方法,深入浅出地介绍了VisualStudio的ASP.NET和VB.NET。书中主要讲述VB.NET与ASP.NET的关系和Web编程的方法,重点介绍用VB.NET以及以特殊的方式使用ASP.NET框架,即使用后代码模块构建Web应用,其中用大量篇幅介绍了使用和开发WebForm的方法。内容涵盖了开发新型动态、易维护的Web站点的入门知识和所有的编程技巧,它将Web应用编程提升到一个全新的高度。本书信息量大、实用性强。只要具有Web编程的基础知识,或者阅读过有关VB.NET的初级教程的读者,读懂书中的代码将不成问题。本书适合于网络软件开发者阅读,也是大专院校信息专业学生极好的参考读物。前言在过去的20年里,各种软件编程的重点在客户机和服务器之间交替。从大型主机的批处理到单机应用、到客户机/服务器方式、再到现在的因特网,这个领域的发展根据硬件、软件和通信的模式来来回回地转移焦点。从电传机到终端,从大型机到微机,再到现代服务器;从台式机到便携机,再到手持设备;从物理层的直接连接到私有网络,再到因特网。程序员在如何提高界面的友好性以及设计在用户界面设备上处理数据的后端系统方面,花费了极大的精力。上个世纪80年代和90年代初,微型计算机的迅猛发展迫使开发商的注意力转移到后者,这就是为什么现在的计算机用户热衷于高分辨率、真彩显示、配有语音功能、处理器运算速度快、硬盘容量大、内存便宜以及功能强大、采用图型界面和交互式的操作系统。微机的迅速发展导致了数据的分散,而过去人们一直是在自己的计算机上处理单独的文件。有趣的是,数据的这种分散带来了网络能力的快速发展,因为企业需要工作人员能够共享数据,同时,又需要对信息进行集中式安全控制。为了满足这种需求,客户机/服务器方式的计算机系统产生了,它具有友好的图型用户界面和快速处理能力。遗憾的是,客户机/服务器方式的计算机正如最初设想一样,带来了许多的问题。庞大的客户机程序很难进行部署、安装、维护和升级。而企业所需要的是另一种不同的客户机应用,既能够从中央服务器中接收数据和应用代码,又能使用户和这些数据的交互就像在台式机上的应用一样方便。万维网和浏览器技术的出现似乎是对该问题的一个解答。在过去的几年里,我们看到了“瘦”客户机的复活,具有代表性的是浏览器或小的可执行程序,这些程序能够根据需求从中央服务器中获取数据,就像在计算机发展初期的大型机终端一样。虽然这种新型瘦客户机比大型机终端功能强大,但是仍然不能完全满足大量的商务应用,比如MicrosoftOffice、Quicken和成千上万的用户自行设计的客户机/服务器应用。然而,抛开这些不足,基于HTML的前端程序改变了整个世界。个人和企业对于与地域无关的信息的依赖日益增长,他们希望无论何时何地都能够访问任何服务器,而且,这种愿望正在实现。由于与位置无关,可以轻松地使用,因此,浏览器和其他远程客户机是无处不在的。遗憾的是,浏览器不能完全取代种类丰富的台式机应用,很多人感觉似乎回到了几十年前。在传递静态数据,如报告、文档和图像时,浏览器很好用,但是进入客户机/服务器系统、表单驱动、数据入口角色时还存在欠缺。在浏览Web页面时,如果应用程序突然需要用户输入数据,往往会打断那种平滑的、点击页面传送。作者相信.NET有能力改变这种状况。使用.NET结构,能够创建交互性更好、反映更灵敏的集中存储的软件;同时,.NET改善了这些工具并且简化了创建胖客户机的过程;最后,它连接了二者,通过使用集中存储和管理数据可以很容易地创建胖和瘦两种客户机,在二者之间搭起一座桥梁,这意味着,用户能够使用自己所熟悉的图形控件和操作方式,而且可以依据需求进行动态升级,从而集中管理应用程序。本书内容这是一本介绍性、探索性的书籍,而不是关于程序设计语言的详细说明。Microsoft的.NET框架设计得相当完美,同时也非常庞大和复杂。在编写本书的过程中,作者遇到的最大问题不是要涵盖哪些内容,而是要省略哪些内容,这是一个非常严重的问题。作者希望涵盖的内容太多,但是由于时间、篇幅以及在本书前面章节的编写过程中,.NET框架和VisualStudio发生了戏剧性的变化,另外本人对.NET框架所了解的知识的局限性,都限制了许多内容。编写本书的驱动力是.NET提供了一种设计Web应用的全新的模型和两种新语言。作者认为,VB.NET是一种新语言,它与以前所有版本VB语言的惟一联系就是采用相同的名称和一些相同的语法,除此之外,都发生了变化。同时,Web本身并没有改变,只是速度变快了。很多年以来,本书作者一直使用VB6的WebClasses来设计Web应用,或者在Web应用中使用传统ASP的VB-built部件。如果读者曾经做过这方面的工作,那么,水平就比一般VB程序员高,因为你对于Web的工作方式已经很了解。Microsoft在屏蔽Web如何工作方面做了巨大的努力而且相当成功。在本书中,作者运用了大量的笔墨来解释ASP.NET应用是如何做到这一点的。在某些方面,ASP.NET和VB.NET很像普通的VB语言,只是VB更适于创建那些大小适中、效率不怎么高的Web程序。读者看到了,使用.NET后,Web本身没有多少改变,它依然是面向页面的、无状态的通信机制。在使用VB.NET设计Web应用时,很容易忽略这一点。对于使用.NET的Web程序员来说,最大的危险就是成功地把复杂性隐藏在庞大的程序模型后面,但是复杂性并没有因此而消失,仅仅因为受到VisualStudio的过滤而被束缚,复杂性仍然隐藏在暗处,随时伺机出来咬一口。幸运的是,.NET不仅简化了以前复杂的工作,而且能够打开隐藏复杂性的壁橱,揪住它的耳朵,把它抓出来,使它曝光。在编写本书的过程中,作者使用.NET已经近一年时间,完全相信了.NET和类似的系统相比在程序设计方面有了相当大的改善。虽然,在设计本书中项目时,读者不是必须使用VisualStudio,但是如果没有的话,会感到很不方便。虽然VisualStudio将大多数Web技术融入了一个界面中,协助并简化了书写HTML代码和其他文件格式,要想成为一个完全的Web程序员,路还很长,建议读者认真阅读下面内容:VB.NET创建类结构、检索和操纵数据、处理事件的语言;超文本标记语言(HTML)设计用户界面的格式或布局语言。层叠样式表(CSS)指明应用到页面对象中的可见样式的健壮的、可扩展的、层次方法。JavaScript/JScript/ECMAScript用于在客户机浏览器中操纵页面对象的程序设计语言。JScript是ECMAScript的Microsoft专用版本,JavaScript的名字最初是从Netscape中引进而来的。说明:不要混淆客户机端的JScript和Microsoft的新JScript.NET语言。JScript和JScript.NET的关系就像VB和VB.NET的关系,语法相似但是语言不同。扩展标记语言(XML)通用标记语言,在VisualStudio和.NET中作为一种保存和操纵从数据库中获取的数据的方法得到广泛使用,是指定应用配置信息的格式语言,是保持数据和对象的持续性的方法,是在组件之间或层之间传递消息、对象和数据的数据容器。扩展样式表语言(XSL/XSLT)只可用来把XML文档从一种状态转换到另一种状态的XML语言。状态可以从XML到XML,从XML到HTML,从XML到文本或者从XML到任何其他形式。XMLSchema(XSD)只可用来把XML文档从一种状态转换到另一种状态的XML语言。状态可以从XML到XML,从XML到HTML,从XML到文本或者从XML到PDF文档或其他任何形式。文档对象模型(DOM)对文档的树形结构中创建的对象进行操纵的模型。文档类型可以是XML或HTML。例如,使用.NET的XML的命名空间类来操纵存储在XML文档中的对象,使用JavaScript来操纵存储在HTML页面中的对象。动态HTML(DHTML)操纵在浏览器中创建的对象并响应由那些对象引发或由用户初始化而产生的事件的技术。具有DHTML功能的浏览器像IE和Netscape,能够指定位置、内容和显示页面中每一个对象的特征。换句话说,DHTML提供了另一种静态HTML的显示,使它如同一个单机Windows应用一样反应迅速。在Microsoft以前的Web编程系统中,VB程序员(VB6的WebClasses和VisualInterDev的ASP)仍然需要?嘈碒TML源代码。虽然这个版本的VisualStudio在废除对HTML的掌握方面进行了勇敢的尝试,但不是很成功,因此本书有一个简短的HTML教程,读者需要了解这方面的有关知识以便创建VB.NETWeb应用。本书适用于哪些读者本书适用于至少熟悉VB.NET的初级Web程序员。要阅读本书,不要求你是有经验的VB程序员,但也不能是这个领域中的新手。由于没有时间和篇幅来详细解释VB.NET本身,本书主要讲述VB.NET与ASP.NET的关系和Web编程。如果读者接受过VB.NET编程的培训课程,参与过一些VB.NET项目,或者哪怕是阅读过有关VB.NET初级教程等方面的书籍,那么,读懂本书中的代码将不成问题。如果没有上述经历,在阅读本书之前,建议考虑先学习《VisualBasic.NET从入门到精通》一书,作者是EvangelosPetroutsos(Sybex,2002)。除了VB.NET外,读者不必精通因特网、企业内部网、浏览器、HTML、JavaScript、VBScript、XML、XSLT、DOM或者其他任何知识。本书将是一本使用VB.NET和ASP.NET进行Web编程的最基本知识的介绍,另外本书对使用VB.NET创建健壮、灵活的Web应用时所用到的其他Web技术略微做了介绍。为什么要写这本书之所以要编写这样一本书,是因为作者被程序设计的过程吸引了。本书作者曾经写过两本其他有关Web编程的书籍:一本是关于用VisualBasic6进行WebClass编程方面的《VisualBasicDevelopersGuidetoASPandIIS》(Sybex,1999),另一本是《M