本書是美國亞馬遜網站同類書長期銷售冠軍,并受到微軟ASP.NET小組項目經理RobHoward的大力推薦,中文版由中科院專家湯濤老師翻譯,經典、權威是本書最好的詮釋。本書共分10部分,31章,囊括了在.NET框架下架建ASP.NET應用程序的各個層面。每一章也都不是泛泛而談理論,而是圍繞實際樣例代碼來組織,讓讀者馬上可以上手,并且加深理解。書中還包含了兩個完整的、立即就可以用得上的ASP.NET應用程序,一個就業(yè)站點和一個網上商店,用于演示實際應用中ASP.NET的大部分通用特性。隨書光盤包含了本書所有的源代碼,以及一些控件和技術文章。本書的語言有些失于平淡,但所述全是程序員最關心的問題,“實用”是技術類書籍的惟一衡量標準,而本書更是將這個詞演繹到了極致。獻給謹以此書獻給RuthWalther!致謝我要感謝微軟公司的RobHoward和ScottGuthrie抽時間會見我,并解答一些關于ASP.NET的問題。我一直對于Rob和Scott在ASP.NET社區(qū)中付出巨大的努力感到驚訝。也要感謝微軟公司的ShawnNandi。我還要對TimShakarian將本書所有的VB.NET代碼翻譯成C#代碼的工作表達我的感激之情??匆幌卤緯邪臉永a數(shù)量之多,這并不是一件簡單的工作!還要感謝CharlesCarroll為本書的初版改進提供了很多有價值的建議。最后,我想感謝NeilRowe在我編寫本書時給予的支持和鼓勵。我們想得到你的反饋!作為本書的讀者,您是我們最重要的批評家和評論員。我們重視您的意見并且想知道我們做什么是正確的,做什么更好,您希望看到我們在什么領域的出版物,以及您想告訴我們的意見。您可以Email或直接寫信給我,告訴我本書哪些內容是您喜歡的,哪些是不喜歡的,以及我們可以做些什么來進一步提高我們書籍的質量。請注意,有關本書內容的相關技術問題我沒法幫助您,而且由于我收到了海量的信件,因此不能一一回復每封信。在您給我寫信時,請注明本書的書名和作者,以及您的姓名,電話或Email地址。本書的作者、編輯和我都會仔細閱讀您的評論。Email:cusomer@samspublishing.comMail:MichaelStephensAssociatePublisherSamsPublishing201West103rdStreetIndianapolis,IN46290USA讀者服務要更詳細了解本書或Sams出版社的其他書籍,請訪問我們的網站www.samspublishing.com。在檢索框中敲入您要找的書的ISBN(不包括連字符號)或者是書名,就能找到您想要的書。簡介最新版的活動服務器頁面(ActiveServerPages,ASP),即ASP.NET1.1是微軟用于構建動態(tài)和數(shù)據(jù)驅動Web站點的技術。ASP.NET是構建可擴展的,交互的Web站點最流行的語言之一。好些Internet上訪問量最大的Web站點都是使用ASP.NET開發(fā)的。其中突出的例子有HomeShoppingNetwork網站,MSN和微軟自己的網站。ASP.NET與前版ASP相比截然不同。如果你用ASP早期版本開發(fā)過應用,而且還沒有接觸過ASP.NET的新特性,那么就一定要作好被ASP.NET震驚的準備了。下面列出一些ASP.NET的重要的新特性:ASP.NET使用以公共語言運行庫(CommonLanguageRuntime,CLR)語言編寫的編譯后代碼,諸如VisualBasic和C#。與前版ASP不同,這次不再使用象VBScript這樣的解釋執(zhí)行的腳本語言。ASP.NET頁面是基于服務器端控件構建的。Web服務器控件允許你使用直觀的對象模型來表現(xiàn)和編程,而不再是使用超文本標記語言(HypertextMarkupLanguage,HTML)元素。ASP.NET包括所謂Web服務的新技術。你可以用Web服務跨越Internet訪問屬性、方法以及傳遞數(shù)據(jù)庫的數(shù)據(jù)。ASP.NET是微軟.NET框架的一部分。你可以通過在代碼中訪問幾百個.NET類,實現(xiàn)執(zhí)行諸如動態(tài)創(chuàng)建圖片和將數(shù)組保存到文件這樣令人驚奇的多種功能。ASP.NET包含頁面和數(shù)據(jù)緩存機制,可以讓你輕松而又顯著地提高Web站點地性能。誰應該讀本書?《ASP.NET揭密》是為那些需要創(chuàng)建Web站點的專業(yè)開發(fā)人員準備的。本書是使用ASP.NET構建Web站點的綜合性參考書。本書附帶的光盤同時包括幾百個VB.NET和C#樣例代碼,你可以在構建Web站點時立即使用這些例子。如果你是用ASP制作Web站點的新手,那么本書可以教會你使用ASP.NET建立Web站點所需要了解的所有內容。如果你是經驗豐富的ASP程序員,通過本書你可以學到ASP.NET的新特性。最后,如果你對ASP.NET1.0很熟悉,通過本書你也可以學習ASP.NET1.1的新特性。本書附帶的光盤中包括名為“從ASP.NET1.0向1.1遷移”的白皮書,該白皮書專注于ASP.NET1.0與ASP.NET1.1的差異。本書最后一部分包括兩個完整的樣例程序:一個就業(yè)站點和一個網上商店。這些程序的完整代碼也包括在本書附帶的光盤中。在閱讀本書之前你需要把握哪些內容?本書附帶光盤包括你在開發(fā)ASP.NET應用程序所需的所有知識。光盤包括微軟.NET框架SDK1.1版,其中既有VisualBasic語言又有C#語言。你可以直接雙擊光盤中Framework目錄下名為Setup.exe的文件來安裝.NET框架SDK。當然這個SDK也可以從www.ASP.netWeb站點下載。光盤還包括ASP.NETWebMatrix。ASP.NETWebMatrix是由微軟ASP.NET組的成員開發(fā)的,用于構建ASP.NET應用程序的開發(fā)環(huán)境。你可以直接雙擊光盤中WebMatrix目錄下名為webmatrix.msi的文件來安裝WebMatrix。最新版的WebMatrix也可以從www.ASP.netWeb站點下載。開發(fā)ASP.NET應用程序的唯一附加條件就是你要有合適的操作系統(tǒng)。對于開發(fā)ASP.NET應用程序來說,你需要有Windows2000(專業(yè)版或服務器版),WindowsXP(家庭版或專業(yè)版),或是Windows2003(標準版,企業(yè)版,數(shù)據(jù)中心版或Web版)。你可以基于WindowsXP家庭版和Windows2000專業(yè)版使用WebMatrix自帶的Web服務器開發(fā)ASP.NET應用程序,但是不能用這兩個操作系統(tǒng)來運行真正的Web站點。本書中數(shù)據(jù)庫相關的章節(jié)已經假定你具有MicrosoftSQLServer,MSDE或MicrosoftAccess的基礎。本書最后兩章中的兩個樣例程序,即就業(yè)站點和網上商店,要求你的計算機中必須安裝MicrosoftSQLServer或MSDE。你可以從www.ASP.netWeb站點下載MSDE。本書附帶的光盤包括名為“從ASP.NET1.0向1.1遷移”的白皮書,該白皮書專注于ASP.NET1.0與ASP.NET1.1的差異。在閱讀本書之前你需要了解哪些內容?本書假定你了解HTML,而且具有諸如VisualBasic,Java或VBScript等編程語言的經驗。本書中幾乎所有的代碼都是以VisualBasic編寫的。但是,如果你只熟悉VBScript,那么你在理解這些代碼例子就會遇到一些小問題。本書附帶光盤包含所有例子的VB.NET和C#代碼。如果要完全把握數(shù)據(jù)庫相關章節(jié),你需要有一些數(shù)據(jù)庫的工作經驗,諸如MicrosoftSQLServer,Oracle或MicrisoftAccess等。本書是如何組織的?雖然我推薦你在閱讀本書時從頭到尾一章一章地讀,但是我也意識到并不是所有人都有時間這么做。如果必要,你完全可以把本書當成參考書,只在需要時翻閱某一章。因此,了解一下整本書的組織可能會有些幫助。第I部分:使用ASP.NETWeb表單—這部分包含的章節(jié)為你提供了使用表單和驗證控件構建ASP.NET頁面的詳細內容。這部分也涵蓋了所有用于構建交互HTML表單的控件。第II部分:高級ASP.NET頁面開發(fā)—這些章討論了如何使用用戶控件創(chuàng)建你自己的控件,如何使用移動控件創(chuàng)建可以在移動電話和個人數(shù)字助手(PersonalDigitalAsssistants,PDAs)上使用的Web頁面,如何將頁面的代碼與設計內容分離,以及如何在ASP.NET頁面中使用第三方控件。第III部分:使用ADO.NET—這部分包含的章節(jié)為你提供了詳細了解ADO.NET的內容。你將學習如何執(zhí)行基本數(shù)據(jù)庫任務,諸如把表單數(shù)據(jù)保存到數(shù)據(jù)庫。你也將學習如何使用專門用于數(shù)據(jù)庫的Web控件,比如DataList和DataGrid控件。第IV部分:使用ASP.NET應用程序—這些章節(jié)討論了ASP.NET應用程序的特性。比如你將學習如何通過Web.config文件配置ASP.NET應用程序,如何使用應用程序和會話狀態(tài)。第V部分:ASP.NET應用程序的安全控制—這些章節(jié)為你提供了ASP.NET內置的安全特征的概覽。比如,你將學習如何使用基于表單的安全控制,可應用于站點中需要密碼保護的頁面。你也將學協(xié)如何使用.NET類來實現(xiàn)加密。第VI部分:構建ASP.NETWeb服務—這部分中的章節(jié)闡述了如何使用包含在當前這個ASP發(fā)布版中的令人興奮的技術。在這些章節(jié)中,你將學習到如何創(chuàng)建Web服務,以及如何將Web服務集成到Web站點中。第VII部分:深入.NET框架—這些章節(jié)討論了可以在頁面上使用的很多有用的.NET類。比如,你將學習到如何動態(tài)生成圖片,使用集合和正則表達式,以及從ASP.NET頁面發(fā)送Email等。第VIII部分:構建自定義ASP.NET控件—這些章節(jié)討論了如何使用自定控件擴展ASP.NET框架的功能。你將學習到如何創(chuàng)建你自己的ASP.NET控件。第IX部分:ASP.NET樣例程序—本書的最后部分包含兩個完整的樣例程序。你將學習到如何創(chuàng)建一個就業(yè)站點和一個網上商店。本書使用的代碼命名約定變量命名和代碼約定的議題是最難處理的。程序員傾向于使用其個人的命名約定,而不喜歡別人規(guī)定他們應該如何編寫代碼。然而,當代碼需要為團體內多人閱讀時(想象一下代碼檢查的情況),擁有一個通用的約定是很有價值的。擁有通用的約定也便于你日后再閱讀自己的代碼。最流行的變量命名約定是所謂的匈牙利表示法(HungarianNotation)。最初由微軟的CharlesSimonyi提出,并且在微軟內部使用了許多年。按照這個約定,你要在所有變量命名時都以標準的3個或4個字母前綴來表示變量的數(shù)據(jù)類型。比如,用于表示顧客年齡的整型變量就應該命名為intCustomerAge。微軟并不推薦在.NET框架和ASP.NET情況下使用這個約定。微軟如此推薦的動機是他們希望你使用諸如微軟VisualStudio這樣的高級編輯器編寫代碼。VisualStudio會自動為你提供有關變量類型的信息。然而,本書我假定你不是使用VisualStudio來編寫ASP.NET頁面。實際上,開發(fā)人員廣泛使用各種編輯器,如WebMatrix,TextPad,UltraEdit和Notepad來編寫代碼。既然我沒有假定你使用VisualStudio,那么變量的命名約定就是必要的了。此外,以我的經驗,許多公司都要求他們的程序員遵循一個嚴格的命名約定,這些約定通常都是HungarianNotation的一些變種。本書中我使用命名約定也是HungarianNotation的一個變種。我已經為基本數(shù)據(jù)類型變量,ASP.NETWeb控件,ADO.NET類和事件處理子程序創(chuàng)建了一套前綴和命名約定。這些約定在下表中列出。在此并不是為.NET框架中的每個類逐個提供一個標準前綴。要是這樣的話足足需要超過3400個前綴!而是為應用于ASP.NET中的大部分通用類型提供標準前綴。事件處理子程序事件處理子程序是由產生事件的控件ID,后面跟上需要處理的事件的類型。比如名為btnSubmit_Click的子程序就是處理名為btnSubmit的Button控件的Click事件。當產生事件的控件沒有分配ID時,就使用控件的類型來代替這個ID。比如,名為Button_Click的子程序就是處理不帶ID的Button控件的Click事件。本書使用的約定本書使用了如下印刷上的約定:代碼行,命令,語句,變量和任何需要你鍵入的或是屏幕上顯示的文本都以mono字體顯示。粗體的mono字體則常用于表示用戶的輸入。語法描述中的占位符是以斜體的mono字體表示。使用時以實際文件名,參數(shù)或其表示的任何元素替換占位符。在定義技術術語時用斜體突出顯示。圖標【譯者注:需要在此插入原書第10頁倒數(shù)第7行的左?吠急輟坑τ靡恍寫脛氨硎鏡鼻按胄惺巧弦恍寫氳難有?。有蕩呕袑扂码太长超过了页脣咝单行的长度时会使用该图陛zH綣憧吹揭恍寫肭壩姓庋耐急曄?,加H〉鼻靶惺巧弦恍寫氳囊徊糠幀?本書也包含“注意”,“技巧”和“警告”以便幫助你更快地定位重要或有用的信息。“注意”包含為有經驗的ASP用戶升級到ASP.NET所需的內容。這些“注意”標記為“經典ASP注釋”。關于作者StephenWaltherStephenWalther是一位著名ASP.NET專家和講師,他的公司SupertASPWorkshops(超級ASP專家工作室)(www.ASPWorkshops.com)為美國許多公司和組織提供過培訓,其中包括NASA,Verizon,Metlife和國家科學基金等。他是微軟發(fā)布的“最佳實踐”應用程序ASP.NETCommunityStarterkit的主要開發(fā)人員。Stephen曾經是CityAuction(www.cityauction.com)的首席技術執(zhí)行官。該網站是Internet上最好的個人到個人的(PersontoPerson,P-to-P)拍賣網站之一,并且是Snap!和Citysearch的獨家拍賣提供商。Stephen也曾是Collegescape網站的首席技術官(CTO),該網站是在線大學應用程序的最主要的供應商。