摘 要:本文關(guān)鍵講述了ASP.NE的具體性能以及安全特征,分析了怎樣把相關(guān)的應(yīng)用程序更為合理的運作,同時還要確保它得以有效的拓展,進而能夠處理更多的情況。
關(guān)鍵詞:ASP.NET;性能優(yōu)化;安全性
引言
使用該開發(fā)網(wǎng)站,不管是寫的程序多優(yōu)秀,不管是站點里增加了多少優(yōu)秀的特點,假如在處理的時候僅僅的讓使用人停留很短暫的時間的話,他們也會對站點形成負面印象。其實,假如使用人長時間等待,其就會放棄該選擇,而去瀏覽別的。此時,怎樣提升其響應(yīng)速率,就成為了工作者要認真分析的工作。
1 關(guān)于性能
此處的性能是說體系落實活動的速率。針對網(wǎng)站的性能來說,其對于總體的點擊率有著非常關(guān)鍵的意義。假如性能不好的網(wǎng)站在很長的時間段都沒有發(fā)展,此時我們就會得知之前的客戶已經(jīng)不存在了。
1.1 通過編譯器提升程序的響應(yīng)速率
我們都知道,那些性能優(yōu)秀的代碼旨在可以少活動的時候就會盡量的少活動。
不論是編譯何程序,設(shè)備都將源代碼變?yōu)橹虚g用語。要在實際的氛圍中落實程序,一個JIT編譯器先接受MSIL輸出并把指令轉(zhuǎn)換為主機處理的本機指令,再以即時方式編譯代碼,以便應(yīng)用程序開始執(zhí)行。不過,該編譯器并非是將程序綜合全部的MSIL均設(shè)置在開始落實任務(wù)之前的時候變換代碼。其使用的這兩個措施均有著性能方面的優(yōu)點。第一,其能夠?qū)⒊杀痉謹偟胶芫玫臅r間中,因為落實較之于設(shè)備把全部內(nèi)容編譯要更快一些,此時就會感覺性能提升了。假如將很久的停留分散的話,此時使用人就不會留意,就不會產(chǎn)生負面情緒。其次,其不編制落實時期不用的措施。所以其所做的活動都是有意義的,此時也就可以使得性能提升了。
1.2 降低運行時期的活動量
對于底層來講,上述結(jié)構(gòu)為了降低活動量,開展了很多的基礎(chǔ)活動。雖說將該結(jié)構(gòu)用作黑盒很有意義,但是知道一些細節(jié)方方面面的內(nèi)容也是能帶給我們很多好處的。了解這些內(nèi)容就能夠在速率層次上獲取優(yōu)點。其獲取關(guān)鍵有如下的一些措施:
1.2.1 視圖狀態(tài)的優(yōu)化
視圖狀態(tài)會影響到性能。自動視圖是控件的一大功效,它可使控件在來回都是會后重填其屬性。不過,由于控件的該狀態(tài)是在隱蔽的字段里運行于服務(wù)器中的,因此其必然會影響性能。所以工作者明確在何種狀態(tài)下狀態(tài)具有意義。
在一定的層次上看,該狀態(tài)是一件非常有意義的事。它使得頁面以及控件可以維持聯(lián)系。所以,不需按照之前的模式來編制代碼,以防止在單擊按鈕時文本框中的文本消失, 或在回發(fā)后重新查詢數(shù)據(jù)庫和重新綁定DataGrid。不過,其也面對著非常多的缺陷,在其增速非常快的時候,一些空間會結(jié)合狀態(tài)進行反映。別的空間就會結(jié)合出現(xiàn)的信息總數(shù)來明確狀態(tài)內(nèi)容。一個糟糕的GridView 容易將瀏覽器和Web 服務(wù)器之間連接的有效帶寬減少50%以上。ASP.NET 2.0能夠提供比ASP.NET 1.x 更簡單的方法將視圖狀態(tài)保留在會話狀態(tài)中。
1.2.2 盡量減少服務(wù)器控件的使用
來自服務(wù)器處的空間不但可以形成視圖模式,其也要借助于別的運行用時來處理變量。因為其會使用服務(wù)器內(nèi)容,所以就算是它們很好用,不過該空間并非是開展活動的最為優(yōu)秀的選擇,在很多時候,一個非常簡單的代入就能夠做好該項活動。
1.2.3 盡量保持正常
不應(yīng)該過分的依靠異常。由于它會使得性能受到影響,因此,不能夠把其當成是一般的控制流程。
在ASP.NET運行時的托管環(huán)境中,用try和catch設(shè)置異常處理代碼只對性能有可以忽略不計的影響,不過程序在拋出異常的時候會面對一些損失。比如把try…catch句式變?yōu)閕f模式的,此時的異常降低,速率提升。
1.3 合理運行內(nèi)存
但凡有方法的話,就要將數(shù)據(jù)等緩存。在運用該機制的時候要明確兩項內(nèi)容榮。第一,不應(yīng)該將太多的信息緩存。第二,對緩存項的配置時間不應(yīng)該太短暫。
不應(yīng)該對所有的請求配置太多的內(nèi)存,由于此類回收期會更為迅速的開展活動。同時,不許讓多余的指針運行,由于其在后方會生成更多的活動。
2 安全性
ASP.NET提供了一個很健壯的安全系統(tǒng),我們可以輕松地利用這個安全系統(tǒng)消除在ASP中為Web應(yīng)用程序提供用戶級別的安全性而編寫的大量代碼。這就意味著你需要編寫較少的代碼可以實現(xiàn)標準化的安全。
2.1 ASP.NET 的配置體系和安全體系
NET 框架提供了一個豐富又靈活的配置系統(tǒng), 使得應(yīng)用程序開發(fā)及管理人員能夠在整個應(yīng)用程序、站點和計算機中定義和使用可擴展的配置數(shù)據(jù)。其中Machine.Config 為整個Web 服務(wù)器提供配置設(shè)置, 每一個ASP.NET Web 應(yīng)用程序根目錄以及各級子文件夾都可以有自己的名稱為Web. Config 的配置文件。配置文件都是基于XML 格式的文本文件, 通常用來保存一些常量或者安全設(shè)置、SQL 連接字符串和其他常規(guī)的配置數(shù)據(jù)等。每一個Web. Config 文件只在該文件夾和其子文件夾下起作用, 每個子文件夾的配置繼承父文件夾的的配置, 并覆蓋相同的選項。對于在Web. Config 中沒有進行設(shè)置的屬性, 其取值將繼承Machine. Config 中屬性的設(shè)置。如果配置文件被更改, ASP.NET 將檢測到新的配置并自動使它起作用, 無需重新啟動服務(wù)器。另外, ASP.NET 通過配置IIS 來保護各級Web. Config 配置文件, 拒絕瀏覽器直接URL 訪問。
2.2 ASP.NET身份驗證和授權(quán)策略
ASP.NET在應(yīng)用程序中為驗證用戶身份提供了三種方法:
(1)Windows身份驗證
Windows身份驗證提供了與傳統(tǒng)的Windows賬號似的集成。該模式的工作方式和正常的IIS身份驗證相同。在此類背景中,要禁止匿名訪問,以此來確保站點不會受到影響。同時還應(yīng)該變更文件,并指定ASP.NET應(yīng)該使用用戶被IIS質(zhì)詢時輸入的證書作為該應(yīng)用程序的證書。它是最快的身份驗證模式。
(2)Forms身份驗證
該措施許可開發(fā)者形成其獨特的登陸界面,而且結(jié)合相關(guān)文件進行驗證。與第一種措施不一樣的是,它規(guī)定對證書的出處單獨的訪問。要精簡驗證內(nèi)容,而且剔除外在內(nèi)容。此類活動僅可以在別的時間開展。
(3)Passport身份驗證
通過該措施我們可以將應(yīng)用程序以及Microsoft Passport聯(lián)系到一起。它的基礎(chǔ)活動措施是在檢查沒有開展身份驗證活動的請求的時候,ASP.NET把登錄證書從一個Passport登錄窗口發(fā)送到Passport服務(wù)。
它的速率非常慢。不過其也是有一定能的發(fā)展方向的。因為用戶只要記住一套證書就能登錄到受Passport保護的Web站點中。
3 結(jié)束語
針對網(wǎng)站來講,性能以及安全都是非常有意義的。ASP.NET 帶給我們很多全新的方法和編程措施,在當前時代中,必須把此類內(nèi)容更為合理的運用到開發(fā)活動中,進而提升總體的性能以及安全,此時才可以保證我們的網(wǎng)站更受人們的喜愛。
參考文獻
[1]Scott Worle.王文龍,劉湘寧,譯.ASP. NET技術(shù)內(nèi)幕[M].北京:人民郵電出版社,2002.
[2]K.scott AllenJames Avery.ASP.NET性能高級編程[M].清華大學出版社,2003.
[3]Patrick A.Lorenz. ASP. NET 2.0 Revealed[M].Wrox Press,2004.