乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      .net軟件開發(fā) :ASP.NET底層架構(gòu)探索之進入ASP.NET

       昵稱31500 2007-07-18

      .net軟件開發(fā) :ASP.NET底層架構(gòu)探索之進入ASP.NET

      來源:http://www./ArticleView/2007-1-15/Article_View_887.Htm

      ASP.NET是一個非常強大的構(gòu)建Web應(yīng)用的平臺,它提供了極大的靈活性和能力以致于可以用它來構(gòu)建所有類型的Web應(yīng)用。絕大多數(shù)的人只熟悉高層的框架如WebForms和WebServices-這些都在ASP.NET層次結(jié)構(gòu)在最高層。在這篇文章中我將會討論ASP.NET的底層機制并解釋請求(request)是怎么從Web服務(wù)器傳送到ASP.NET運行時然后如何通過ASP.NET管道來處理請求。


        對我而言了解平臺的內(nèi)幕通常會帶來滿足感和舒適感,深入了解也能幫助我寫出更好的應(yīng)用。知道可以使用哪些工具以及他們是怎樣作為整個復雜框架的一部分來互相配合的可以更容易地找出最好的解決方案,更重要的是可以在出現(xiàn)問題時更好的解決它們。這篇文章的目標是從系統(tǒng)級別了解ASP.NET并幫助理解請求(request)是如何在ASP.NET的處理管道中流轉(zhuǎn)的。同樣,我們會了解核心引擎和Web請求如何在那里結(jié)束。這些信息大部分并不是你在日常工作時必須了解的,但是它對于理解ASP.NET架構(gòu)如何把請求路由到你的代碼(通常是非常高層的)中是非常有益的。

        不管怎么樣,ASP.NET從更低的層次上提供了更多的靈活性。HTTP運行時和請求管道在構(gòu)建WebForms和WebServices上提供了同樣的能力-它們事實上都是建立在。NET托管代碼上的。而且所有這些同樣的功能對你也是可用的,你可用決定你是否需要建立一個比WebForms稍低一點層次的定制的平臺。

        WebForms顯然是最簡單的構(gòu)建絕大多數(shù)Web接口的方法,不過如果你是在建立自定義的內(nèi)容處理器(handler),或者有在處理輸入輸出內(nèi)容上有特殊的要求,或者你需要為另外的應(yīng)用建立一個定制的應(yīng)用程序服務(wù)接口,使用這些更低級的處理器(handler)或者模塊(module)能提供更好的性能并能對實際請求處理提供更多的控制。在WebForms和WebServices這些高層實現(xiàn)提供它們那些能力的同時,它們也對請求增加了一些額外負擔,這些都是在更底層可以避免的。

        ASP.NET是什么

        讓我們以一個簡單的定義開始:什么是ASP.NET?我喜歡這樣定義ASP.NET:

        ASP.NET是一個復雜的使用托管代碼來從頭到尾處理Web請求的引擎。

        它并不只是WebForms和WebServies…

        ASP.NET是一個請求處理引擎。它接收一個發(fā)送過來的請求,把它傳給內(nèi)部的管道直到終點,作為一個開發(fā)人員的你可以在這里附加一些代碼來處理請求。這個引擎是和HTTP/Web服務(wù)器完全分隔的。事實上,HTTP運行時是一個組件,使你可以擺脫IIS或者任何其他的服務(wù)器程序,將你自己的程序寄宿在內(nèi)。例如,你可以將ASP.NET運行時寄宿在一個Windows form程序中(查看http://www./presentations/aspnetruntime/aspnetruntime.asp可以得到更加詳細的信息)

        運行時提供了一個復雜但同時非常優(yōu)雅的在管道中路由請求的機制。其中有很多相關(guān)的對象,大多數(shù)都是可擴展的(通過繼承或者事件接口),在幾乎所有的處理流程上都是如此。所以這個框架具有高度可擴展性。通過這個機制,掛接到非常底層的接口(比如緩存,認證和授權(quán))都變得可能了。你甚至可以在預處理或者處理后過濾內(nèi)容,也可以簡單的將符合特殊標記的請求直接路由你的代碼或者另一個URL上。存在著許多不同的方法來完成同一件事,但是所有這些方法都是可以簡單直接地實現(xiàn)的,同時還提供了靈活性,可以得到最好的性能和開發(fā)的簡單性。

        整個ASP.NET引擎是完全建立在托管代碼上的,所有的擴展功能也是通過托管代碼擴展來提供的

        整個ASP.NET引擎是完全建立在托管代碼上的,所有的擴展功能也是通過托管代碼擴展來提供的。這是對。NET框架具有構(gòu)建復雜而且高效的框架的能力的最好的證明。ASP.NET最令人印象深刻的地方是深思熟慮的設(shè)計,使得框架非常的容易使用,又能提供掛接到請求處理的幾乎所有部分的能力。

        通過ASP.NET你可以從事從前屬于ISAPI擴展和IIS過濾器領(lǐng)域的任務(wù)-有一些限制,但是比起ASP來說是好多了。ISAPI是一個底層的Win32風格的API,有著非常粗劣的接口而且難以用來開發(fā)復雜的程序。因為ISAPI非常底層,所以它非常的快,但是對于應(yīng)用級的開發(fā)者來說是十分難以管理的。所以,ISAPI通常用來提供橋接的接口,來對其他應(yīng)用或者平臺進行轉(zhuǎn)交。但是這并不意味者ISAPI將消亡。事實上,ASP.NET在微軟的平臺上就是通過ISAPI擴展來和IIS進行交互的,這個擴展寄宿著。NET運行時和ASP.NET運行時。ISAPI提供了核心的接口,ASP.NET使用非托管的ISAPI代碼通過這個接口來從Web服務(wù)器獲取請求,并發(fā)送響應(yīng)回客戶端。ISAPI提供的內(nèi)容可以通過通用對象(例如HttpRequest和HttpResponse)來獲取,這些對象通過一個定義良好并有很好訪問性的接口來暴露非托管數(shù)據(jù)。
       

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多