本周ASP.NET英文技术文章推荐[03/23 - 04/05]:C#、Visual Studio、MVC、死锁、Web 2.0 API、jQuery、IIS7、FileUpload

摘要

本期共有9篇文章:

  1. 提高C#和Visual Studio 2008生产力的10个技巧
  2. ASP.NET MVC Action过滤器:缓存和压缩
  3. 程序停止工作及其解决方法:第一部分:死锁
  4. 调用Digg、Flickr、Facebook、YouTube、Twitter、Live Services、Google和其他Web 2.0 API的C#及VB.NET类库
  5. 使用jQuery调用ASP.NET的JSON Web Service
  6. ASP.NET MVC框架:第二部分:测试
  7. IIS7的新模块:日志报表、数据库管理等
  8. 给ASP.NET 2.0 FileUpload控件添加过滤功能
  9. OnLoad?Page_Load?还是Load事件?

 

[1] 10 Tips to Boost Your Productivity with C# and Visual Studio 2008  (提高C#和Visual Studio 2008生产力的10个技巧)

此类文章相对来说比较泛滥,而且均冠以“10大”之类的标题。不过偶尔看一下,可能还是会有所帮助,毕竟不要花费太多时间:

  1. Learn Key Bindings
  2. Generate XML Comments with GhostDoc
  3. Auto-Implement Properties
  4. Refactor
  5. Add Commands to Visual Studio 2008
  6. Speed up Compilation with Project Configuration
  7. Let Visual Studio Generate Unit Test Code
  8. Use Interface-Driven-Design
  9. Make a Mockery of Dependencies
  10. Data Drive Unit Tests

其中第5条Add Commands to Visual Studio 2008中介绍的那个小工具非常不错,节省了不少时间。

 

[2] ASP.NET MVC Action Filter - Caching and Compression (ASP.NET MVC Action过滤器:缓存和压缩)

作者给出了ASP.NET MVC中的两个Action过滤器,让我们能够很方便地添加缓存和压缩支持。

其中的缓存过滤器只要这样为方法添加属性即可:

[CacheFilter(Duration = 60)]
public void Category(string name, int? page)

而压缩的使用方式也非常类似:

[CompressFilter]
public void Category(string name, int? page)

 

[3] Hangs and how to solve them - part 1 - Deadlocks (程序停止工作及其解决方法:第一部分:死锁)

文章本身没有太多的详细介绍,不过最后给出的一系列链接倒是非常的不错,绝对是系统了解死锁相关问题的好资源:

  1. Deadlock (critical sections)
  2. Deadlock (executive resources)
  3. Deadlock (mixed objects)
  4. Deadlock (LPC)
  5. Deadlock monitor
  6. No More Hangs- Advanced Techniques To Avoid And Detect Deadlocks In .NET Apps
  7. Detecting Deadlocks in Multithreaded Win32 Applications
  8. Under the Hood -- MSJ, January 1996

 

[4] C# and VB .NET Libraries to Digg, Flickr, Facebook, YouTube, Twitter, Live Services, Google and other Web 2.0 APIs (调用Digg、Flickr、Facebook、YouTube、Twitter、Live Services、Google和其他Web 2.0 API的C#及VB.NET类库)

很多Web 2.0都提供了专门的API供其他程序调用,自然也有一些类库对这些API进行了封装。本文就列出了这样几个流行的Web 2.0网站的调用类库,例如调用Flickr,只要使用如下语法即可:

PhotosSearchOptions options = new PhotosSearchOptions();
options.Tags = "blue,sky";
options.Extras |= PhotoSearchExtras.DateTaken | PhotoSearchExtras.OriginalFormat;
Photos photos = flickr.PhotosSearch(options);

 

[5] Using jQuery to Consume ASP.NET JSON Web Services (使用jQuery调用ASP.NET的JSON Web Service)

ASP.NET AJAX的客户端类库内建了对调用ASP.NET的JSON Web Service的支持,不过只要“模拟”出同样的请求,任何的JavaScript客户端类库都能够一样调用。

这篇文章就介绍了使用jQuery调用ASP.NET的JSON Web Service的方法,其实并没有任何技巧可言:

$(document).ready(function() {
  $.ajax({
    type: "POST",
    url: "RSSReader.asmx/GetRSSReader",
    beforeSend: function(xhr) {
      xhr.setRequestHeader("Content-type", 
                           "application/json; charset=utf-8");
    },
    dataType: "json",
    success: function(msg) {
      // Hide the fake progress indicator graphic.
      $('#RSSContent').removeClass('loading');
 
      // Insert the returned HTML into the <div>.
      $('#RSSContent').html(msg.d);
    }
  });

 

[6] ASP.NET MVC Framework – Part 2: Testing (ASP.NET MVC框架:第二部分:测试)

似乎MVC框架中对测试的关注程度非常高,最近好多文章都在介绍这个东西。这篇文章也是一步步地给出了通常的使用方法,从为什么要测试到如何测试。

下面就是对某个Controller进行测试的代码:

[TestMethod]  
public void AboutOverride()  
{  
   HomeControllerForTest controller = new HomeControllerForTest();  
  
   controller.About();  
  
   Assert.AreEqual("Index", controller.SelectedViewName,  
                              "Should have redirected to Index");  
}

 

[7] New Log Reporting, Database Management, and other cool admin modules for IIS 7 (IIS7的新模块:日志报表、数据库管理等)

Scott的一篇文章,其中介绍了花哨的IIS7中的另一些管理模块。例如这个日志报表:

不过实际上,我还是觉得从前的IIS 6界面比较顺眼,使用了IIS 7的时间也不短了,还是没有搞清楚某些功能在什么地方…………

 

[8] Adding Filter Action to FileUpload Control of ASP.NET 2.0 (给ASP.NET 2.0 FileUpload控件添加过滤功能)

所谓过滤功能,其实就是只允许上传某类扩展名的文件。不过实际上HTML中并没有此类内建的支持,因此若想实现此类功能,还是要靠客户端的JavaScript和服务器端自定义的验证逻辑配合。当然,个人感觉最好的方法还是使用专门的Flash上传控件。

 

[9] OnLoad vs. Page_Load vs. Load event (OnLoad?Page_Load?还是Load事件?)

若想在Page加载时执行某些自定义操作,既可以覆写页面的OnLoad方法,也可以在默认的Page_Load中直接添加,还可以监听页面的Load事件,那么三者之间有什么区别呢?应该如何挑选呢?

本文就从性能、编程风格、代码一致性、是否面向对象等各个方面对上述三种方法进行了比较……

posted on 2008-04-05 11:28  Dflying Chen  阅读(70900)  评论(23编辑  收藏  举报