摘要
本期共有11篇文章(毕竟是两周的内容,上周没来得及):
[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英文技术文章推荐》中推荐过:
值得一提的是,最后一篇文章来自于博客园的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正式版本,主要功能虽然称不上强大,但是足够用了,包括:
事实上,这并不是我推荐间的主要原因,因为纯粹从使用者角度来看,比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.