構建ASP.NET網站十大必備工具(1)

來源:互聯網
上載者:User
最近使用ASP.NET為公司構建了一個簡單的公用網站(該網站的地址:http://superexpert.com/)。在這個過程中,我們使用了數量很多的免費工具,如果把構建ASP.NET網站的必備工具總結一下,將會是一件十分有趣的事情。這些工具既支援ASP.NET Web Forms又支援ASP.NET MVC。

效能工具

讀了兩本關於網站的前端效能的書(這兩本優秀的圖書分別是:《High Performance Web Sites》 和 《Even Faster Web Sites》,作者是Steve Souders)以後,我對網站的前端效能十分敏感。根據Steve Souders的效能黃金法則:

“首先應該對前端效能進行最佳化,終端使用者的回應時間有80%或更多花費在這方面了。”你可以使用下面這些工具來減少ASP.NET應用程式使用的映像的尺寸,以及JavaScript檔案,CSS檔案的體積。

1,Sprite and Image Optimization Framework

在A List Apart的一篇文章中(這篇文章的題目是:CSS sprites: Image Slicing’s Kiss of Death,具體可以參考:http://www.alistapart.com/articles/sprites),首次提到了CSS sprites。當你使用sprites的時候,你需要把一個網站使用的多個映像合并成為一個單一的映像。然後,在一個Web頁面中,使用CSS trickery來顯示特定的“子映像”。

sprites的主要優勢是,顯示一個Web頁面的時候,它可以有效地減少請求的次數。請求一個大映像比請求多個小映像快得多。一般來說,通過網線傳輸的資源(映像,JavaScript檔案,CSS檔案)越多,你的網站就越慢。

但是,大多數人都不願意使用sprites,因為使用sprites需要做很多的工作。你必須要合并所有的映像,然後編寫合適的CSS規則來顯示子 映像。微軟的 Sprite and Image Optimization Framework 可以讓我們省去這些繁瑣的工作。這個架構可以自動地為你合并映像。此外,這個架構還包含一個ASP.NET Web Forms control 和一個ASP.NET MVC helper,它們可以讓顯示子映像變得更加容易。你可以從CodePlex下載 Sprite and Image Optimization Framework。

:http://aspnet.codeplex.com/releases/view/50869

Sprite and Image Optimization Framework是 Morgan McClean 編寫的。在微軟,他的辦公室和我的辦公室緊挨著。Morgan是一個十分聰明的人,他是加拿大的實習生。當他構建這個架構的時候,我們一起討論了那個框 架。(據我所知,他還在繼續開發這個架構。)

Morgan給這個架構添加了一些進階的功能。例如,Sprite and Image Optimization Framework支援“image inlining”。當你使用“image inlining”的時候,真正的映像被儲存在CSS檔案中。這是一個“image inlining”的例子:

 
  1. .Home_StephenWalther_small-jpg  
  2. {  
  3.  
  4. width:75px;  
  5. height:100px;  
  6. background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABkCAIAAABB1lpeAAAAB  
  7. GdBTUEAALGOfPtRkwAAACBjSFJNAACHDwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKL  
  8. s+zNfREAAAAASUVORK5CYII=) no-repeat 0% 0%;  
  9.  

真正的映像(在這個例子中,是一個顯示在Superexpert.com網站首頁上的圖片)被儲存在這個CSS檔案中。如果你瀏覽一下 Superexpert.com網站,你會發現幾乎沒有幾個獨立的映像可以被下載。在下面這張中,所有帶紅框的映像都是使用CSS sprites的:

不幸的是,使用 Sprite and Image Optimization Framework 的時候,有一些“陷阱”需要注意一下。為了繞開這些“陷阱”,還有一些周邊的工作需要做。在我以後的文章中,我會詳細講述這些“陷阱”都是什麼,以及如何 繞開這些“陷阱”。

2,Microsoft Ajax Minifier

無論何時,你都應該通過“far future header”來合并,最小化(minify),壓縮和緩衝所有的JavaScript檔案和CSS檔案。Microsoft Ajax Minifier可以讓最小化JavaScript檔案和CSS檔案變得更加容易。

請不要把最小化和壓縮搞混了。這兩個工作你都需要做。根據Souders的觀點,在你壓縮了一個JavaScript檔案以後,你還可以通過最小化來減少20%(平均)的體積。

當你最小化一個JavaScript檔案,或者一個CSS檔案的時候,你可以使用各種技巧在壓縮那個檔案以前儘可能地減少那個檔案的尺寸。例如,你 可以通過用短的JavaScript變數名替換長的JavaScript變數名的方式,和移除非必需的空白和注釋的方式來最小化一個 JavaScript。你可以通過同樣的方式來最小化CSS檔案,例如,用短的color名(#fff)替換長的color名(#fffff)。

Microsoft Ajax Minifier是微軟的員工 Ron Logan 開發的。在內部,幾個大型的微軟網站都使用了這個工具。在ASP.NET團隊中,我們也使用這個工具。我認為Ron可以把這個工具發布到CodePlex 上,讓世界上的所有人都可以使用這個優秀的工具。你可以從ASP.NET Ajax網站下載這個工具:

:http://www.asp.net/ajaxlibrary/Download.ashx

這個工具的文檔可以參考:http://www.asp.net/ajaxlibrary/AjaxMinDocumentation.ashx

我為Microsoft Ajax Minifier建立了一個安裝程式。當建立那個安裝程式的時候,我還建立了一個Visual Studio產生任務,當你在Visual Studio中自動地進行產生的時候,它可以讓最小化JavaScript檔案和CSS檔案變得更加容易。你可以通過《Ajax Minifier Quick Start》來學習如何配製這個產生任務。 (關於《Ajax Minifier Quick Start》,具體可以參考:http://www.asp.net/ajaxlibrary/AjaxMinQuickStart.ashx)

3,ySlow

ySlow這個工具是Yahoo提供的,它是一個免費的Firefox擴充。它可以讓你測試你的網站的前端。

ySlow的:http://developer.yahoo.com/yslow/

這是“Superexpert.com”網站當前的測試結果:

“Superexpert.com”網站的總體得分是“B”(不是很完美,但是也不錯了)。ySlow這個工具並不是盡善盡美的。例如,雖然 Superexpert.com網站使用了支JavaScript庫(例如:jQuery)的Microsoft Ajax Content Delivery Network(關於Microsoft Ajax Content Delivery Network,具體可以參考:http://www.asp.net/ajaxlibrary/cdn.ashx),但是還是因為沒有使用Content Delivery Network而得到了“F”。

 (本文轉載自51cto,譯者周雪峰。 )

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.