本周ASP.NET英文技术文章推荐[03/23 - 04/05]:C#、Visual Studio、MVC、死锁、Web 2.0 API、jQuery、IIS7、FileUpload
摘要
本期共有9篇文章:
- 提高C#和Visual Studio 2008生产力的10个技巧
- ASP.NET MVC Action过滤器:缓存和压缩
- 程序停止工作及其解决方法:第一部分:死锁
- 调用Digg、Flickr、Facebook、YouTube、Twitter、Live Services、Google和其他Web 2.0 API的C#及VB.NET类库
- 使用jQuery调用ASP.NET的JSON Web Service
- ASP.NET MVC框架:第二部分:测试
- IIS7的新模块:日志报表、数据库管理等
- 给ASP.NET 2.0 FileUpload控件添加过滤功能
- OnLoad?Page_Load?还是Load事件?
[1] 10 Tips to Boost Your Productivity with C# and Visual Studio 2008 (提高C#和Visual Studio 2008生产力的10个技巧)
此类文章相对来说比较泛滥,而且均冠以“10大”之类的标题。不过偶尔看一下,可能还是会有所帮助,毕竟不要花费太多时间:
- Learn Key Bindings
- Generate XML Comments with GhostDoc
- Auto-Implement Properties
- Refactor
- Add Commands to Visual Studio 2008
- Speed up Compilation with Project Configuration
- Let Visual Studio Generate Unit Test Code
- Use Interface-Driven-Design
- Make a Mockery of Dependencies
- 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 (程序停止工作及其解决方法:第一部分:死锁)
文章本身没有太多的详细介绍,不过最后给出的一系列链接倒是非常的不错,绝对是系统了解死锁相关问题的好资源:
- Deadlock (critical sections)
- Deadlock (executive resources)
- Deadlock (mixed objects)
- Deadlock (LPC)
- Deadlock monitor
- No More Hangs- Advanced Techniques To Avoid And Detect Deadlocks In .NET Apps
- Detecting Deadlocks in Multithreaded Win32 Applications
- 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事件,那么三者之间有什么区别呢?应该如何挑选呢?
本文就从性能、编程风格、代码一致性、是否面向对象等各个方面对上述三种方法进行了比较……
This posting is provided "AS IS" with no warranties, and confers no rights.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
2007-04-05 这两天微软发布的一些有意思的玩意
2006-04-05 在ASP.NET Atlas中创建自定义的Transformer