摘要
本期共有11篇文章(畢竟是兩周的內容,上周沒來得及):
- Ajax和SilverLight應用程式的搜尋引擎最佳化
- 最完整的Ajax類庫、架構和工具包列表
- 5月31號列表:ASP.NET、ASP.NET AJAX、Visual Studio和.NET
- 在ASP.NET下載檔案時直接彈出“另存新檔”對話方塊
- Script#:過去、現在和將來……
- 使用JavaScript為GridView行添加淡入淡出效果
- 建立SqlParameter的最佳實務
- ASP.NET AJAX用戶端架構事件:為自訂類暴露事件
- BlogEngine.NET 1.0發布
- 如何在IIS7 Beta 3上安裝FastCGI和PHP
- __doPostBack和瀏覽器的“回退”按鈕
[1] SEO for Ajax and Silverlight Applications (Ajax和SilverLight應用程式的搜尋引擎最佳化)
搜尋引擎對於當代網站的重要性不言而喻,因此各個網站在搜尋引擎最佳化(SEO)方面都下了很大的功夫。去年我也特意寫過一篇關於部落格園網站搜尋引擎最佳化的建議文章(《針對部落格園Blog的SEO(Search Engine Optimization – 搜尋引擎最佳化)》)。不過很遺憾的是,Ajax和SilverLight(包括Flash)應用程式在搜尋引擎最佳化方面卻存在著很大的先天不足。
大牛Nikhil在這篇文章中分析了這個問題,並給出了一些解決方案。雖然稱不上完美,不過仍舊值得我們每個人蔘考。
[2] A complete list of Ajax Libraries, Frameworks and Toolkits (最完整的Ajax類庫、架構和工具包列表)
Ajax的風頭旺了好長一段時間(雖然現在風頭似乎已經被SilverLight等其他RIA架構取代),因此各個類庫、架構和工具包自然層出不窮。這篇文章就非常全面地列出了當今市面上的各種Ajax類庫、架構和工具包。並提供了更加詳細比較總結的頁面(http://joeon.net/AJAX_Frameworks_List.htm)。
有這方面需要的朋友不妨參考一下。
[3] May 31st Links: ASP.NET, ASP.NET AJAX, Visual Studio and .NET (5月31號列表:ASP.NET、ASP.NET AJAX、Visual Studio和.NET)
“善于歸納總結”的Scott大叔充分地發揮了這方面的特長,在這篇文章中給出了一些最近有關ASP.NET、ASP.NET AJAX、Visual Studio和.NET的好文章,每個文章都加了一兩句的評語。(似乎有點類似於我的《ASP.NET英文技術文章推薦》哦,讓我自戀一把,嘿嘿)
這篇文章的ASP.NET和ASP.NET AJAX部分包含如下的推薦文章,大概看了一下,還都算不錯。其中很多我都曾經在從前的《ASP.NET英文技術文章推薦》中推薦過:
- SubSonic Documentation and Project Site
- Examining ASP.NET 2.0's Membership, Roles and Profile System
- Rolling Your Own Website Administration Tool (Part 1) and Part2
- Official ASP.NET Provider Support from Oracle
- Asynchronous Page in ASP.NET 2.0
- What ASP.NET Developers Should Know About JavaScript
- ASP.NET AJAX UpdatePanel Tips and Tricks
- Write a Simple Control to Refresh UpdatePanels from Client Side
值得一提的是,最後一篇文章來自於部落格園的Jeffrey Zhao,看來小夥子的能力已經有目共睹了,前途一片光明。
[4] Downloading a File with a Save As Dialog in ASP.NET (在ASP.NET下載檔案時直接彈出“另存新檔”對話方塊)
這個主題不知道已經被多少人問過多少遍了,無論是ASP.NET,還是PHP還是什麼別的CGI,似乎這也算做一個“永恒”的話題了。
其實解決方案很簡單(無論哪個CGI平台都是如此),只是一個header而已:
Response.ContentType = "image/jpeg";
Response.AppendHeader("Content-Disposition","attachment; filename=SailBig.jpg");
Response.TransmitFile( Server.MapPath("~/images/sailbig.jpg") );
Response.End();
[5] Script#: Past, Present, Future... (Script#:過去、現在和將來……)
Script#是大牛Nikhil的一個比較有創意的東西,相信對ASP.NET AJAX(Atlas)比較熟悉的朋友對此都不會陌生。旨在用伺服器端代碼書寫用戶端應用程式組件,然後由編譯器產生“煩人”的JavaScript——創意和Google的GWT如出一轍。不過微軟公司一直沒有官方的支援,讓這個非常有意思的東西也一直停留在“雷聲大雨點小”的階段。大牛Nikhil即使再厲害,以個人之力對抗Google……後果還是可想而知的。
在這篇文章中,大牛回顧了過去,介紹了現在,展望了未來。看來他對Script#還是非常看重的。作為開發人員/使用者的我們,這自然是個好訊息。讓我們拭目以待吧……
[6] GridView Row Fading Effect Using JavaScript (使用JavaScript為GridView行添加淡入淡出效果)
啥也不說了,看看圖吧。使用者體驗方面確實做得很不錯!
[7] Creating SqlParameters Best Practices (建立SqlParameter的最佳實務)
短小精悍的一篇文章,介紹了一些建立SqlParameter數組的方法,並給出了作者最喜歡的一種:
SqlParameter[] sqlParams = new SqlParameter[] {
new SqlParameter("@username", strUserName) ,
new SqlParameter("@password", strPassword)
};
也可以在建立時加上一些邏輯:
SqlParameter[] sqlParams = new SqlParameter[] {
new SqlParameter("@Required", required),
questionCode == null ? new SqlParameter("@Code", DBNull.Value) : new SqlParameter("@Code", questionCode)
};
看上去還是挺優雅的。
[8] Microsoft Ajax events - part 2: exposing events from custom classes (ASP.NET AJAX用戶端架構事件:為自訂類暴露事件)
ASP.NET AJAX用戶端架構為JavaScript提供了很多豐富的物件導向擴充功能,包括對事件的支援等。本文就介紹了在ASP.NET AJAX用戶端類中暴露字定義事件的方法——其實非常簡單,只要如下一段代碼就夠了:
add_tick: function(handler) {
this.get_events().addHandler("tick", handler);
},
remove_tick: function(handler) {
this.get_events().removeHandler("tick", handler);
},
_tick: function() {
var handler = this.get_events().getHandler("tick");
if (handler) handler(this, Sys.EventArgs.Empty);
// [...]
}
[9] Official BlogEngine.NET 1.0 Release (BlogEngine.NET 1.0發布)
BlogEngine.NET是一個完全基於ASP.NET 2.0的、C#編寫的簡單的開源Blog系統。其官方網站為http://www.dotnetblogengine.net/。目前剛剛發布了1.0正式版本,主要功能雖然稱不上強大,但是足夠用了,包括:
- A nice variety of cool widgets
- A very sweet commenting system
- Great syndication support (RSS, Atom, and Feedburner)
- Support for Metaweblog API
- Trackbacks / Pingbacks
- A nice blog search
- Referrer stats
- Easy theme creation.
事實上,這並不是我推薦間的主要原因,因為純粹從使用者角度來看,比BlogEngine.NET強大的Blog系統多的是。之所以推薦,就是因為它的原始碼——整潔明晰,架構優雅,堪稱學習ASP.NET 2.0的完美教材。與ASP.NET 2.0的那些Starter Kit相比,更是完美得太多!
[10] How to install FastCGI and PHP on IIS7 Beta 3 (如何在IIS7 Beta 3上安裝FastCGI和PHP)
這是一個視頻Blog(不知道應該叫什麼名……播客?),其中總結了在IIS7 Beta 3上安裝FastCGI和PHP的方法。作者還給出了視頻中的要點。有需要的朋友不妨參考一下,看看IIS 7的強大功能……
[11] __doPostBack and the Back Button(__doPostBack和瀏覽器的“回退”按鈕)
看到這個標題的朋友相比立即就能夠猜出其中的內容吧。作者深入分析了半天(分析過程真的很不錯,很不錯),最後給出了這樣的結論:
Not sure how to address this directly. I wouldn't say this is a bug in ASP.NET, and I'd be even hard pressed to call this a browser bug - browsers do write submitted POST values back into the variables of a page when you click the back button and that certainly has to work.