金旭亮新作《ASP.NET程序设计教程》之《前言》

《ASP.NET程序设计教程》之《前言》

说明:

==================

《ASP.NET程序设计教程》是我应高等教育出版社之约而编写的高校计算机及相关专业用教材,目前书稿已经全部完成并交给出版社进行编辑,再经过几轮审校,预计2009年2月上市。

写作这本书籍历时一年半,期间还带领四个学生抽空完成了博文视点公司网站(http://www.broadview.com.cn)的改版工作。由于教材的特殊要求,我在讲清楚技术的前提下对语言精简又精简,最终在400多页的篇幅内介绍完了我想介绍的内容。还是很有成就感的。因为其他ASP.NET技术书籍如果要写我这么多的内容,没1000页下不来。

书稿中的内容都经过了实践的检验,我在ITCAST网站还为此讲授了3个系列20多节课的在线教学视频(请访问http://www.itcast.net/portal/teachers/bitfan了解详情)。

针对学生在ITCAST学习社区(http://www.itcast.net/community)或通过邮件所提的大量技术问题,以及我对ASP.NET技术难点的分析,我近期会在博客上陆续发布相关的技术文献资料(包括相关文章、示例代码及其他资源),并对已有的资源进行一个梳理,整理出一个索引页放在博客上置顶。以方便大家各取所需。

作为一名教师,能够为计算机技术的普及做点工作是我的份内之事,希望我的劳动能帮助更多的年轻学子更快更好地掌握技术,走上成材之路。

金旭亮

2008年9月25日

==================================

前 言

互联网是人类有史以来最伟大的几项发明之一,深刻地改变了人类社会的面貌,影响了人类文明的进程。

进入21世纪以来,基于互联网的信息系统开发其重要性日益突显,逐渐变成了软件开发的主战场。基于这个时代的大背景,Web程序设计成为每一个计算机技术及相关专业毕业生必须掌握的基本技能之一。

本书以微软平台的Web开发技术——ASP.NET为例,介绍Web开发所涉及到的各个技术领域,重点放在讲清楚Web站点设计与开发的基本原理和主要方法。

Web开发涉及到的知识与技术既深且广,并且有着鲜明的实践色彩。因此,许多相关的技术书籍往往拥有较长的篇幅,同时,为了方便读者自学,这些书中还附了大量的屏幕截图,这些因素导致不少ASP.NET技术书籍拥有近千页的厚度,可谓“鸿篇巨制”。尽管如此,这样的技术书籍往往也只能介绍整个Web开发技术领域中的一部分内容。

本书作为一本主要用于高校教学的计算机专业教材,篇幅受到较大限制,不可能事无巨细地对所有技术细节都深挖细掘,为此,对这些知识与技术采取了“去粗取精”,“删繁就简”的基本原则,重点是以尽可以直观的方式展现出整个Web开发的技术体系,帮助学生建立起一个知识的框架,这个框架开头也许仅是骨架,缺少一些技术的细节,但却能对下一步的深入学习提供一个“向导”的作用,避免学生在技术的海洋里迷失方向。

在大脑中先形成一个总体的技术框架,然后再选择某个技术子领域进行深入学习,将掌握与理解的内容补充到这个知识框架中,使其逐步地“血肉丰满”起来,这是学习软件技术的一个有效方法。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

本书期望能在建立一个总体的技术框架上对学生有所帮助。而教师的主要工作就是帮助学生建立起这个知识框架,为达此目的,教师应在课堂教学中展示书中略去的许多技术细节,直观展示各个示例项目的实际开发与操作步骤,剖析示例的技术要点,并组织学生共同学习和进行开发实践,让学生能在实践中逐步培养出真实的软件开发能力。

1 致学生——如何学习软件技术

当今时代是一个知识爆炸的时代,软件技术更是如此。以微软平台的技术为例,2002年以前是Win32的时代,众多的windows应用软件都必须直接或间接地调用数千个Windows系统函数,这些为数众多的函数难学难用,制约了软件开发效率的进一步提高。2002.NET Framework 1.0正式发布,整个Windows操作系统的功能开始以面向对象的形式提供给应用程序调用,宣告了Windows平台应用软件开发开始进入.NET时代。从2002年到2007年,五年左右的时间,.NET Framework的主版本号从1.0升到3.5。就应用软件开发的两大主要领域——桌面开发和Web开发而言,五年之间,桌面开发技术先是由传统的Win 32窗体过渡到基于.NET技术的Windows Form,很快又转变到基于WPF技术的新一代桌面应用程序开发模型。而Web开发更是变化迅速,先是ASP退出软件开发的主流,由ASP.NET取而代之,没多久,微软又在原有的ASP.NET基础之上加入了AJAX技术,而从.NET 3.0开始,新一代的RIARich internet Application)技术——Silverlight开始浮出水面,在本书写作之时,Silverlight 2.0已经是beta 2版本,其正式版很快将发布……

我们很难预想出未来还会出现哪些影响深远的技术,唯一可以肯定的是,技术进步的脚步不会停止,只会越来越加快。

面对着这种现实,传统的学习方法必须有所调整,才可以适应新时代的要求。让我们思索一下:在知识爆炸的时代,我们应该怎样学习软件技术?

(1)“务于精熟”与“观其大略”的两种学习策略

南宋人郑樵所著之《诸葛亮传》说:“初,亮在荆州,与元直及汝南孟公威、颖川石广元游学,三人务于精熟,而亮独观其大略。”

请注意诸葛亮与元直等三人的学习方法的重大差别。作为在校学生,不可能有足够多的时间对所有技术细节都“务于精熟”,只能先“观其大略”,然后,有目的地选择某个领域“务于精熟”。

因此,本书在介绍相关技术领域时,其着力点均放在帮助读者形成“全局观”上。只介绍有益于帮助读者形成全局观的必要的知识,避免出现“细节淹没主题”的情况。

(2)学会利用互联网

互联网是个知识的宝库,要解决某个具体的技术问题,再没有比利用搜索引擎更方便快捷的方式了,同学们一定要掌握利用互联网来搜索信息的基本技能,并将其应用于软件技术的学习之中。

然而,要注意不能完全依赖互联网来学习软件技术。这是因为:

1)通过互联网得到的知识往往正确与错误并存,这就要求学习者具备较强的鉴别与判断能力,但对于初学者而言,这种能力还并不完备。

2)通过互联网得到的知识往往是是零散的,而且信息量过于庞大,要由这些碎片“拼”出某个技术领域完整的知识框架,在许多情况下非常困难。

对软件技术的学习,应该是先有一个某个技术领域的全局观,然后再去深入钻研某个技术子领域,即“先见林后见木”。而要想形成全局观,阅读经典的技术书籍与综述文章,听相关领域专家的访谈或其讲授的各种课程,以及参加各种技术讲座,是一个有效的方法。在形成对技术的全局观上,通过互联网搜索来的鱼龙混杂的知识有可能是帮了倒忙。

因此,要对互联网有正确的认识,才能尽其利而避其弊,避免陷入“见木不见林”的学习困境。

(3)将软件开发实践与软件开发理论结合起来

软件技术有着很强的实践性,仅看书学习而不动手实践,正如同在陆地上学游泳,是不可能掌握好软件技术的。但另一方面,只实践而不注重理论,也是偏颇的。理论往往是现实的概括,是认识的深化,是“见林”重要手段,在理论的指导下学习技术和进行实践,往往会“事半而功倍”。

然而,计算机科学有许多理论是比较抽象难懂的,怎么学习它是一个值得深入探讨的问题。

笔者认为,对于软件科学理论学习要遵循“理性知识感性掌握”的基本原则。具体一点来说,就是“抽象的理性的知识要转化为具体的感性的形式后才能为人所掌握。比如不动手做一个小的编译器出来,就很难对相关编译理论有深入的理解。又如在项目中需要为某个实际问题建立模型,设计算法并评估解决方案时,才可能会体会到计算机算法理论的作用。

在归纳的基础上演绎,在感性的基础上抽象,是行之有效的学习方法。

脱离理论的历史渊源与现实背景去学习理论,以应付考试为目的对理论死记硬背和生搬硬套,不可能真正掌握理论。

因此,本书在设计教学内容时,全面应用了“理性知识感性展示”这一基本原则,尽量通过具体的可以运行的实例来展示相关技术与理论,通过剖析这些实例来点出技术与理论在实际开发中的具体应用过程。

为了减少篇幅,本书没有大段大段地展示出示例项目的全部代码,因此,读者最好是一边阅读一边打开计算机,找到相关的示例,先运行它,再阅读代码,对照书中的文字叙述了解示例项目的全貌。推荐同学们自己将示例代码重做一遍,或者尝试着修改代码,在这个过程中可以加深对于书中所述知识和技术的把握。

本书由于篇幅限制叙述比较精简,因此作者在示例项目的源码中增加了详尽的注释和说明文字,以尽量减少读者的自学难度。

2 致教师——关于本课程的教学方法

软件技术的教学,有其特殊性。

为了便于让学生掌握,建议可以采取以下两种教学方法:

1)先运行一个典型的实例,向学生展现出一个典型的应用场景,然后,通过剖析这个实例直观展现出某个领域技术的具体应用。进而在此基础上加以深化和拓展,向学生介绍这一技术领域的方方面面。这种方法的关键在于实例的设计,实例应集中于某个要介绍的技术领域,不能太大,太大则涉及的知识和技术过多,不利于讲授和学生理解。但随着课程的进展,学生掌握的知识越来越多,课程后期的实例不妨大些。此即“先具体后抽象”的教学方法。

2)先介绍应用场景,然后再介绍技术解决方案与基本原理,紧接着是实例,即“描述一个实践中存在的具体问题à介绍问题解决方案à展示具体实现方法”的“三步”教学方法。

本书提供了上百个大大小小的教学实例,可以帮助教师以上述任何一种教学方式组织教学。

只有通过开发实践才能真正掌握软件技术,因此,在课堂上讲清楚相关技术的前提下,应鼓励学生主动地进行开发实践。

本书大部分章节都有“练习与实践”部分,这一部分提供了许多与讲授内容密切相关的编程场景与实践课题,还包括一些搜集资料进行分析的题目,其目的是开拓学生视野,培养其应用知识的能力和探索能力。

本书提供了详尽的上机实验报告方便学生进行实践,同时,对于一些学有余力的学生,在部分实验中还自然地延伸出了更复杂的开发场景。考虑到在校教学多采用集体上机的形式,因此,在实验安排上有让学生通过局域网相互访问实验结果网站或网页的步骤,其目的是让学生相互激发学习兴趣,以取得更好的学习效果。

从培养学生的实际开发能力角度考虑,建议本课程的考核方式不采用闭卷考试,而采用让学生独立完成一个小的ASP.NET网站的方式进行考核。

从作者本人的教学实践来看,采用这种开放式的考核方式更易达到良好的教学效果。

3 本书主要内容

本书正文共分16章,大体上分为以下几部分:

l 互联网的基础知识(第1章)。

l 静态网页设计技术(第2~4章)。

l ASP.NET技术(第5~15章)。

l 技术发展趋势与未来技术展望(第16章)。

注意:学习本书要求学生掌握C#编程语言和面向对象的基础知识。因此,《C#面向对象程序设计》应作为本课程的先修课程。

考虑到部分院校可能在开设此课时未开设C#程序设计课程,为此,本书提供了一个C#面向对象编程的精简教程(包括相关的教学PPT),均放在本书的配套光盘中,可供教师选讲(讲完全部内容约需8~10个学时),此C#教程叙述比较详细,亦可供学生课外自学。

ITCAST教学网站上作者录制了4讲约8个学时左右的“C#编程语言与面向对象基础”在线视频教学课程,作者本人亦著有另外一本技术书籍——《.NET 2.0面向对象编程揭秘》,对C#编程语言和面向对象理论与技术进行了深入介绍,可供参考。

本书虽然在文字上尽量精简,但仍然尽量追求“以大白话讲述复杂的技术”,这是作者在技术写作上一贯追求的目标,希望能用通俗易懂的文字把事情给讲清楚,说明白。正文中只展示于理解技术最重要的示例代码,并将其中的关键之处用方框框出,让读者一目了解,以下是一个示例:

<form name="form1" method="post" action="ClickCounter1.aspx" id="form1">

同时,在示例代码中作者加有详细的中文注释,可以大大减少读者阅读并理解代码的困难。

有部分章节内容、习题和实验有一定的难度,这部分内容以“*”号标出。

对于通过书本自学实在有困难的读者,或者想以更高的效率学习和掌握Web开发技术的读者,建议配合选听作者在ITCAST所讲授的在线教学视频,这些课程以多媒体的方式展示,既讲授了理论,又实地分析了示例,同时还有全程的项目实际开发过程的实时演示,易于自学。

4 本书软件环境说明

本书所有程序在Windows XP SP2 /Vista/ Windows 2003 Server IIS 5.1~7.0.NET Framework 3.5下测试通过,数据库使用SQL Server 2005 SP2 Express版。

开发工具使用Visual Web Developer 2008 ExpressVisual C# 2008 Express,亦可使用Visual Studio 2008功能更全的其他版本。

5 本书示例网站与数据库的安装

本书提供了数十个大大小小的示例网站,其中包含上百个静态和动态示例网页,并在第15章介绍了一个较大的ASP.NET示例网站HappyBookShopHappyBookShop是一个网上电子书店网站,但对互联网上真实电子书店网站的功能做了大幅精减以便于教学。

为顺利地运行本书的所有示例,读者需搭建好ASP.NET开发环境和安装好本书范例数据库,其具体步骤如下:

1)在计算机上安装IIS,确保IIS工作正常。

2)从本书配套光盘中安装Visual Web Developer 2008Visual C# 2008中文速成版。

3)从本书配套光盘中安装SQL Server 2005 SP2高级服务版。

4)在SQL Server中附加数据库。

本书提供了两个范例数据库:HappyBookShopClients

l HappyBookShop是本书示例网站——HappyBookShop用到的数据库,其中存储了一些图书和评论信息。

l Clients是一个简单的示例数据库,其中存储了一些虚拟的客户信息。本书有不少示例的数据取自此数据库。

从本书配套光盘中将这两个范例数据库复制到本地硬盘上,在资源管理器中去掉数据库文件的“只读”属性,然后,使用SQL Server Management Studio ExpressionSSME)将数据库附加到本地SQL Server服务器上。

完成上述步骤以后,即可使用Visual Web Developer 2008(或完整版本的Visual Studio 2008)顺利运行本书的所有示例(包括HappyBookShop示例网站)。

如果需要将HappyBookShop示例网站部署到IIS上,需要完成更多的工作。本书配套光盘中附了一个在Windows XP SP2下安装HappyBookShop示例网站的教学视频,可供参考。

补充说明一点:并不需要在一开始时就安装好所有的软件(比如本书到第9章才开始介绍数据库,在此之前SQL Server就可以不装)。读者可随着学习进度逐步地安装相关软件。

6 本书的配套资源与在线教学支持

本书配有一张DVD光盘,包含本书所有示例源码、相关软件和实验所用之基本素材。

为方便教学,本书配套光盘中附上了全书章节完整的PPT电子教案。

为鼓励学生亲自动手实践,上机实验的最终项目源码,还有每章后习题的参考答案只向教师提供,教师可与高等教育出版社联系从其网站上下载这部分教学辅助资料。

另外,作者与国内致力于IT在线教育的ITCAST网站合作,共同制作了.NET技术系列的相关教学视频,在本书写作时,已录制完成了五个系列约30节课的视频,涵盖了本教材的所有内容,同时ITCAST网站会提供完备的学习辅导服务。

5个系列是:

1“七天学会.NET绘图”系列:手把手带领学习者从零开始完成一个.NET绘图实例(包括桌面版和Web版)程序的开发,帮助学习者在较短的时间内了解.NET技术的概貌。

2C#编程语言与面向对象理论基础”系列:用不到10个小时的教学时间指导学生掌握面向对象技术最重要与最基础的概念,这是学习本书必备的知识与技术基础。

3“静态网页设计技术”系列:详细讲解HTML/XHTMLCSSJavaScript,对应本教材第2到第4章。

4ASP.NET技术基础”系列:对应本教材第5至第8章。

5ASP.NET数据存取与服务集成技术” 系列:对应本教材第915章。

随着技术的不断进步,作者会不断完善已有的课程,并补充新的课程系列,介绍最新的技术进展。

可以访问以下网址了解本课在线教学视频的详细情况:

http://www.itcast.net

对于选择本书作为教材的任课教师,可以与ITCAST网站联系,免费学习与本书密切相关的相关系列线上课程。教学班上的学生,也可以与ITCAST网站联系集体减免学习费用。

对于自学者,由于本书略去了许多屏幕截图和对具体操作步骤的详细介绍,因此,最佳的学习方式是上ITCAST选听作者所讲授的在线课程,其中可以看到完整的技术要点剖析、相关原理详细讲解和现场操作演示。

纸质教材配合线上多媒体课程,再加上博客和论坛等互动手段,共同构成了一个全方位的软件技术学习与教学方式。作者希望在计算机教育领域的这一尝试有助于帮助广大教师得到更好的教学效果,同时也能减少学生学习软件技术的难度,提高学习效率,并能学以致用培养出真实的开发能力。

7 作者联系方式

可以通过以下方式与作者联系:

北京理工大学计算机学院 金旭亮

邮编:100081

电子邮件: [email protected]

作者在互联网上拥有两个个人博客,读者可以通过这两个博客与作者进行沟通与交流。

l 新浪博客:http://blog.sina.com.cn/bitfan

l CSDN博客:http://blog.csdn.net/bitfan

由于本人才疏学浅,本书疏漏之处在所难免,欢迎广大教师和学生提出宝贵建议。

金旭亮

20089月于北京理工大学

你可能感兴趣的:(asp.net)