- ASP.NET本質(zhì)論
- 郝冠軍
- 2025字
- 2018-12-31 19:25:09
前言
本書(shū)的起源
經(jīng)常有人問(wèn)起:應(yīng)該如何學(xué)習(xí)ASP.NET開(kāi)發(fā)?為什么開(kāi)始的時(shí)候感覺(jué)很容易,但是,遇到問(wèn)題的時(shí)候卻感到無(wú)從下手?太多的人開(kāi)始學(xué)習(xí)的時(shí)候,對(duì)ASP.NET有著深深的誤解,包括我自己。
很多人選擇ASP.NET的理由是因?yàn)樗?jiǎn)單:中文開(kāi)發(fā)環(huán)境、簡(jiǎn)體中文的文檔、簡(jiǎn)單的拖放式開(kāi)發(fā)、類(lèi)似于WinForm的開(kāi)發(fā)體驗(yàn)等。Visual Studio和.NET Framework為我們提供了一個(gè)極其方便的開(kāi)發(fā)環(huán)境,很多人因此進(jìn)入了ASP.NET開(kāi)發(fā)之門(mén),甚至有相當(dāng)多的ASP.NET程序員都沒(méi)有了解過(guò)HTTP協(xié)議的內(nèi)容,或者HTML的語(yǔ)法,也同樣在完成著開(kāi)發(fā)任務(wù)。
這究竟是ASP.NET技術(shù)的成功,還是失敗?
在ASP.NET中,組件技術(shù)被用到極致,整個(gè)ASP.NET就是一個(gè)高級(jí)組件,內(nèi)部又可以分為控件組件、狀態(tài)管理組件、用戶(hù)管理組件等。組件技術(shù)的使用將ASP.NET程序員分為兩大類(lèi):開(kāi)發(fā)組件的程序員和使用組件的程序員。
開(kāi)發(fā)組件的程序員需要掌握ASP.NET的運(yùn)行機(jī)制,熟悉ASP.NET處理HTTP請(qǐng)求的整個(gè)過(guò)程,對(duì)通過(guò).NET技術(shù)來(lái)解決Web請(qǐng)求處理的方法有著深刻的理解,這一切對(duì)程序員有著很高的要求。而使用組件的程序員只需要使用開(kāi)發(fā)完成的組件,將組件通過(guò)工具箱拖放到窗體上,然后,通過(guò)屬性窗口設(shè)置組件的屬性,再加上一些機(jī)械的處理,就可以快速開(kāi)發(fā)出應(yīng)用程序。甚至完全不需要知道組件的背后在發(fā)生著什么。在許多ASP.NET技術(shù)演示中,好像一次魔術(shù)表演,就神奇地完成了開(kāi)發(fā)任務(wù)。開(kāi)發(fā)中的這種分工提高了開(kāi)發(fā)的效率。
那么,我們希望成為哪一種程序員呢?
成為使用組件的程序員比較容易,成為開(kāi)發(fā)組件的程序員很難。高內(nèi)聚、低耦合的組件也造成了很陡峭的技術(shù)壁壘,需要辛苦地攀登。那么,在這個(gè)組件開(kāi)發(fā)的時(shí)代,我們還需要學(xué)習(xí)組件的知識(shí)嗎?答案是:需要!一定需要!即使我們不開(kāi)發(fā)組件,也不能不理解組件!組件的使用千變?nèi)f化,但是萬(wàn)變不離其宗。如果你希望成為自由馳騁在ASP.NET領(lǐng)域的騎手,那就跟隨我進(jìn)行一次穿越ASP.NET的開(kāi)心之旅吧!
面向的讀者
本書(shū)面向的讀者是準(zhǔn)備深入學(xué)習(xí)ASP.NET的學(xué)生和有1~2年ASP.NET工作經(jīng)驗(yàn),但是希望進(jìn)一步提高開(kāi)發(fā)技能,深入掌握ASP.NET高級(jí)編程的程序員。通過(guò)系統(tǒng)地學(xué)習(xí)ASP.NET的處理機(jī)制,為成為一個(gè)高級(jí)的ASP.NET軟件開(kāi)發(fā)人員打下堅(jiān)實(shí)的基礎(chǔ)。
特色
本書(shū)不從C#講起,也不講解控件的屬性及使用,沒(méi)有設(shè)計(jì)模式的分析,甚至沒(méi)有任何數(shù)據(jù)庫(kù)的內(nèi)容。所以,不要希望通過(guò)本書(shū)來(lái)學(xué)習(xí)一個(gè)ASP.NET的購(gòu)物網(wǎng)站如何完成。
在本書(shū)中,有ASP.NET與HTTP關(guān)系的詳細(xì)分析,有事件處理機(jī)制在ASP.NET中的應(yīng)用,有多線(xiàn)程程序在ASP.NET中的應(yīng)用與分析,有控件與流的關(guān)系,有控件與HTML之間關(guān)系的詳細(xì)分析,有各種狀態(tài)管理機(jī)制實(shí)現(xiàn)的內(nèi)幕。總起來(lái)說(shuō),這里只有ASP.NET的內(nèi)在運(yùn)行機(jī)制的分析。本書(shū)對(duì)ASP.NET的組件機(jī)制進(jìn)行了詳細(xì)的分析,希望能夠幫助你理解 ASP.NET應(yīng)用程序?yàn)槭裁催@樣寫(xiě)的問(wèn)題。從前,你可能會(huì)使用各種控件,可能還掌握各種開(kāi)發(fā)技巧。通過(guò)本書(shū)你可以創(chuàng)建自己的組件,發(fā)現(xiàn)未知的技巧!看了此書(shū)之后,希望你說(shuō):原來(lái)如此!
如何閱讀本書(shū)
本書(shū)從HTTP請(qǐng)求開(kāi)始,將會(huì)帶領(lǐng)你穿越整個(gè)ASP.NET的處理過(guò)程,以請(qǐng)求的處理過(guò)程為主線(xiàn),對(duì)每一步處理所涉及的技術(shù)進(jìn)行深入的剖析,結(jié)合開(kāi)發(fā)中常見(jiàn)的問(wèn)題,分析問(wèn)題的原因并給出解決方案。包括最新的MVC技術(shù)。書(shū)中的每一章也獨(dú)立成篇,你可以根據(jù)自己的需要來(lái)選擇閱讀。
從第1章~第4章是ASP.NET的核心部分,重點(diǎn)討論了ASP.NET中對(duì)于請(qǐng)求的處理機(jī)制,ASP.NET中對(duì)象與HTTP之間的映射關(guān)系,應(yīng)用程序處理管道的處理過(guò)程,處理程序的處理機(jī)制,以及多線(xiàn)程技術(shù)在ASP.NET中的應(yīng)用。
從第5章~第8章是經(jīng)典的WebForm部分,重點(diǎn)討論了控件的原理與頁(yè)面的生成機(jī)制。詳細(xì)討論了流與控件的關(guān)系,控件與HTML的關(guān)系,數(shù)據(jù)綁定控件與模板的關(guān)系,以及ASP.NET中各種狀態(tài)管理技術(shù)。
第9章分析了開(kāi)發(fā)ASP.NET程序的另外一種選擇ASP.NET MVC的處理過(guò)程,分析了ASP.NET MVC應(yīng)用程序與經(jīng)典的ASP.NET程序之間的關(guān)系,以及MVC內(nèi)部的處理過(guò)程。并對(duì)關(guān)鍵的處理過(guò)程進(jìn)行了詳細(xì)的討論。
ASP.NET應(yīng)用程序不是一個(gè)獨(dú)立的應(yīng)用程序,需要寄宿于Web服務(wù)器之上。第10章討論了ASP.NET與IIS服務(wù)器之間的關(guān)系,并針對(duì)不同的IIS版本分別分析了其處理過(guò)程。
最后一章針對(duì)ASP.NET應(yīng)用程序中的用戶(hù)問(wèn)題進(jìn)行了分析,剖析了在ASP.NET中處理用戶(hù)問(wèn)題的各種方案,對(duì)處理不同環(huán)節(jié)中的用戶(hù)及其轉(zhuǎn)換關(guān)系進(jìn)行了詳細(xì)的分析。
致謝
首先要感謝的是華章公司的楊福川編輯,沒(méi)有他的鼓勵(lì)和幫助,就不會(huì)有這本書(shū)的誕生。
特別要感謝博客園的幫助和支持,作為專(zhuān)業(yè)的.NET技術(shù)網(wǎng)站,博客園這個(gè)燦若繁星的技術(shù)寶庫(kù)為我提供了成長(zhǎng)的土壤,本書(shū)中的許多問(wèn)題和案例來(lái)源于博客園。
感謝眾多的朋友們?cè)谖彝瓿杀緯?shū)的過(guò)程中給予我的支持和鼓勵(lì),你們的幫助是我完成本書(shū)的強(qiáng)大動(dòng)力。
本書(shū)的支持
很榮幸出版社給了我這樣一個(gè)機(jī)會(huì)與大家分享這些知識(shí)。但是由于作者本人水平所限,雖然進(jìn)行了多次修改,仍然很難盡如人意,已近完稿,心中更加忐忑不安,只是希望能夠給大家在學(xué)習(xí)ASP.NET的過(guò)程中帶來(lái)一些幫助。如果大家在讀完某些章節(jié)之后,對(duì)以前希望了解又無(wú)從查詢(xún)的問(wèn)題感覺(jué)豁然開(kāi)朗,我就聊以自慰了。
書(shū)中的示例都有相應(yīng)的源碼,可以在我的博客下載,也可以在華章公司的官方網(wǎng)站(www.hzbook.com)上下載。
聯(lián)系作者
電子郵件:haoguanjun@gmail.com
博客:http://haogj.cnblogs.com
對(duì)本書(shū)的任何問(wèn)題請(qǐng)通過(guò)電子郵件聯(lián)系,我會(huì)盡快處理和答復(fù),并在博客上發(fā)布與更新。
作者
2011年1月
- OpenDaylight Cookbook
- Getting Started with React
- MySQL 8從入門(mén)到精通(視頻教學(xué)版)
- Mastering Kotlin
- C程序設(shè)計(jì)實(shí)踐教程
- 前端HTML+CSS修煉之道(視頻同步+直播)
- RSpec Essentials
- 區(qū)塊鏈技術(shù)與應(yīng)用
- Instant PHP Web Scraping
- Java EE 8 and Angular
- Python物理建模初學(xué)者指南(第2版)
- DevOps 精要:業(yè)務(wù)視角
- Pandas 1.x Cookbook
- WCF編程(第2版)
- 微服務(wù)設(shè)計(jì)