`

书评 -- Programming Microsoft ASP.NET 2.0 Application Advanced Topics

 
阅读更多
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>

.NET 2.0 在去年底(2005 )风光上市,就笔者来看,最大的新增在 Team System 架构,与丰富了 ASP.NET 的开发功能。而对广大的使用者来说,无疑是 ASP.NET 2.0 最让人兴奋。

Web 应用程序开发的新页章

ASP.NET 2.0 改良 1.x 版的设计,让 Web 应用程序的开发架构变得更有弹性,例如:

l 开发项目(project)以档案和目录为单位,不由项目文件启动。利用临时的 Web 服务执行测试,在开发环境免掉了 IIS(Internet Information Services)服务。

l 使用免费的 SQL Server Express 版本数据库伺服程序,搭配自动建立的数据库档案,以存放各种服务的中继数据。

l 透过各种设定管理的工具,简化 web.config machine.config 等设定档的管理。

l 经由各种档案独立且自动化的编译,让开发环境所提供的 IntelliSense功能更聪明,部署个别网页更为简单,不会因为一两个网页,坏了整个网站的编译。

l 提供数量倍增的控件(control)

l ...

种种设计,让开发者的环境需求较为轻便。而内建丰富的功能,让你我透过点选、拖曳就可以完成大部份的基础工作。

Web 应用程序在企业内越来越风行,随着信息教育普及,员工倚赖 IT 辅助日深,各种客制化小系统如雨后春笋遍布在企业内。虽然系统需求各异,但有许多共通的基本功能很重要,做起来却麻烦。例如使用者账号管理、登入、授权与加密,个人化网页,浏览路径导览,一致性的网页设计风格...等。ASP.NET 2.0 内建这些功能,并透过预设的 Provider,将实做这些功能所需之管理信息存放到自动建立的 SQL Express 数据库内。开发人员仅靠设定就可以替网站系统完成大部分的基础设施。

ASP.NET 2.0 除了提供很多新的内容,也改善了旧技术,例如 Web Part。新的 Web Part 技术在 ASP.NET 2.0 网页中,搭配预设的个人化功能,可以让使用者随意布置网站版面,而开发者却不需要花费什么功夫。但这与以往透过 Visual Studio 2003 搭配额外下载的 Web Part 模板,开发在 Windows 2003 SharePoint Services(WSS) 使用的 Web Part 并不相同。或许在下一版的 WSS 中,将会全面采用 ASP.NET 2.0 的架构。

快速拼装的快餐系统

FrontPage 出现后,全世界产生了几百万张丑网页曾在美国的大型研讨会听演讲者这么说,主讲人是希望藉此提醒基础知识的重要。笔者赞同深入技术的必要,但另一方面来说,FrontPage 让人们敢于尝试建立网页也功不可没,毕竟要跨出第一步最难。就曾经拜访过的企业,不知多少小网站是起自于 FrontPage,而后若该系统变得重要,再重新思考网站的定位,与进一步采用更专业地开发设计流程。而非技术人员用 FrontPage 愉悦地在网络上建立出自己的首页,更丰富了整个 Web 世界。

我相信 ASP.NET 2.0 所提供的各式服务,如 membershiprole managementprofileweb part personalizationsite map...等,再加上一大堆的控件,将会让企业内,部门级的网站系统开发更为相像。就像 Visual Basic 所造就的 Windows Form 充斥,或如上述,透过 FrontPage 来建立的初级网站林立。今后用 Visual Studio 所快速开发的 ASP.NET 网站也将随处可见,且都大同小异。

笔者在授课时,与学员的互动中可感受到,大家惊艳于 ASP.NET 2.0 大幅简化了基础功能的开发,但又惧怕日后需求变易时,难于驾驭。大堆头的功能越多,越容易拼装上阵。一旦用上了,要修改得精细合身却又不易。且下层绑定运作的机制必定复杂,非一时三刻可以搞懂。就好像骑脚踏车时,若有问题还可能自己维护。但汽车抛锚时,修理它会让你我却步。但,行远路时,你要开车还是骑脚踏车呢?

登堂入室

若你已玩过一阵 ASP.NET 2.0,在此介绍一本关于该技术的好书:Programming Microsoft ASP.NET 2.0 Application Advanced Topics。这不是入门书,它未曾介绍如何无中生有建立一个 ASP.NET 网站,或一步步说明如何使用 Visual Studio 2005 开发工具,乃至于 C# 语法解说...等等。简言之,满是字,很少图。

就作者 Dino Esposito 的规划,若你是刚入门者,可能他的另外一本书 Programming Microsoft ASP.NET 2.0 Core Reference 比较适合。但依笔者来看,还是到坊间找中文书比较便宜,原文书太贵了L

这本书着重解释基础机制的运作原理,例如:各种程序代码、定义、资源等不同档案的配置、动态编译、加载与释放,Handler Module 的设计,异步执行网页的方式,自行撰写控件等。

其功用比较像是工具书,让你在实做较为艰深的功能时可以参考专章。或是查阅一些细部的设定,例如透过第三章 ASP.NET Configuration 寻找繁多的 machine.config web.config 等设定之格式与意义。

第四章的Building Custom ASP.NET Providers 是要深入了解 ASP.NET 2.0 的一个重点,Provider Model[1] 应该是此版最值得研究的架构之一。其它的技术,如动态编译与加载、Handler ModuleWeb User Control Custom ASP.NET Control...等,在本书虽都有深入的探讨,但毕竟它们自 ASP.NET 1.0 始就已经存在,2.0 对这些部份算是小幅改良。

提供建置网站的程序基础架构时,如何能让开发者自由扩充是最难的项目。由于各企业多存在行之有年的数据结构与商业逻辑,如何让新建立的网站可以套用旧的资料,尽量保有以往对信息技术的投资。例如,旧的会员数据库已经存在,但如何让新撰写的 ASP.NET 2.0 网站可以使用到该数据库来认证会员身份,使用个人数据(profile)。抑或是网站导览的数据结构早已存在旧网站中,又如何让新的 SiteMapPath TreeViewMenu SiteMapDatSource 等控件与旧数据结合,好在以新技术撰写的网页中提供整合的网站导览。

ASP.NET 2.0 针对上述问题的解法是 Provider Model。模型最具威力的地方就是从繁琐的表征中,抽象出核心运作之原理,在提纲挈领描绘出骨干后,你可以将相同的经验类推到各种功能开发中。就笔者来看,Provider Design Pattern,对象导向分析、设计与撰写,组件化重用等方面,都做了绝佳的示范[2]

ASP.NET 2.0 这次新增的 membershipsite mapsprofile...等服务,都依照 Provider Model 的精神实做,也就是提供四个层次的架构:

l 与使用者互动的控件(UI)

l 标准的程序存取接口(API)

l 存取数据提供者(Provider)

l 实体中继数据结构

在每一层,ASP.NET 2.0 都提供了直接可用的对象。但你仍可依自己的需要,随意置换某个服务任一层的组件,而其它层的既有架构照旧使用。

除了上述内容之外,本书对于一些越来越热门的主题,例如 Ajax 和微软未来的 Atlas,或是为行动装置开发网页,作者都稍有着墨,但并未深入探讨。

阅读建议

再次强调,此书不是入门书。若你是 ASP.NET 2.0 的生手,但某些场合让你亲炙了许多 ASP.NET 2.0 炫丽的功能,例如很酷的控件、Master-Content 网页的设计,Theme Skin 的套用、整合自身与 Reporting Services 的报表...等,这些都在前述作者的另一本书内,本书并不适合你。

当你需要深入了解 ASP.NET 2.0 的基础原理,架构较为大型的网站,并希望重复使用自己曾经开发的模块或组件时,此书所讨论的主题:如 Handler Module、自订 Provider、自订控件等,就很值得你深究。

建议你先看完第一、四、七、十章,分别了解 ASP.NET 2.0 的档案配置与编译、提供各种服务的 Provider PatternWeb Part架构,以及 site navigation 等技术。因为相较于其它内容,这四章或许会比较快用到J。其它的章节稍做浏览,让你往后钻研进阶功能时,知道在哪可以找到资源。

本书的范例很多,且彼此独立,在翻阅各章内容时,可以同时执行一下范例程序,先了解功能为何,是否吸引你进一步深研该章节。不过,由于一些应用程序的基本设定可能与你的系统环境不合,因此,若不熟悉 ASP.NET 2.0 的设定与执行, SQL Server 数据库联机的方式,基本的 C# 语言,则可能很多范例执行起来会有问题L

相关阅读

ASP.NET 的中文书籍向来是许多作者的最爱,你可以驻足书店,寻找自己喜欢的风格。在此,笔者仅建议你逛逛以下的网站:

l MSDNhttp://msdn.microsoft.com/asp.net/。微软技术的大本营不可不去J,对于初学者而言,以下的内容蛮不错的: http://msdn.microsoft.com/asp.net/learning/learn/newtodevelopment/default.aspx MSDN 为本书作者 Dino Esposito 提供的网页如下:http://msdn.microsoft.com/asp.net/community/authors/dinoesposito/default.aspx

l http://www.gotdotnet.com/ 分门别类地整理相关技术,而官方的讨论区也有相当丰富的内容 http://forums.microsoft.com/MSDN/default.aspx?SiteID=1

l 当然,恒逸讲师群所努力充实的 .NET Magazine 网站也可让你获益良多:http://www.netmag.com.tw

@书名:Programming Microsoft ASP.NET 2.0 Application Advanced Topics

@Dino Esposito

@Microsoft Press

@售价:1650



[1]相關資料可參閱 MSDN 所提供的說明與原始碼範例, http://msdn.microsoft.com/asp.net/downloads/providers/ASP.NET 2.0 內建的各種服務,其預設的資料儲存區都是 SQL Server,在此網址有提供 C# 原始碼,實做各種 provider 存取放在 Access/Jet 資料庫內的中繼資料。或許使用哪種 DB 格式並不重要,但一窺各種 Provider C# 原始碼,卻是練功的好方法J

[2] 就筆者自己的感覺,它示範了 FactoryAdapterFaçade design pattern。同時,ODBCOLE DBADO.NET 似乎早已使用了這種設計方式,你可看到大家用的都是 driverprovideradapter 等字樣J。不過,將各種 Web 網站服務的開發架構標準化,雖不是新想法,但的確是值得鼓勵與學習的新技術。




分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics