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