本周ASP.NET英文技术文章推荐[10/28 – 11/3]

时间:2021-01-01 20:29:41

[1]PHP on IIS7 w/FastCGI(IIS7中的PHP和FastCGI模块)

最新版本的IIS 7.0即将随着Windows Vista一同发布,在极大增强了其主要支持的ASP.NET功能之外,IIS 7.0也对同样流行的PHP提供了一些令人激动的特性。Bill Staples的这篇文章就介绍了IIS 7.0对PHP支持方面的两个改进之处:

  1. 极其容易地安装配置过程。
  2. Microsoft和Zend协作开发的结果——Windows平台上PHP执行效率的巨大提高。

虽然在Windows上运行PHP似乎有些不伦不类,但至少在这里我们看到了Microsoft对待竞争者态度的转变。

 

[2]Using IronPython for Dynamic Expressions.(使用IronPython 处理动态表达式)

作为一门非常流行的动态语言,Python在解决某类问题时显得异常的方便。IronPython则是Python在.NET Framework上的实现,虽初出茅庐,但已经显示出了他的强大力量。本文不是介绍IronPython的使用方法,而是介绍如何在C#这个.NET最流行的语言中使用IronPython的动态特性,来处理“动态”的表达式。所谓“动态”的表达式,是指类似“a + b - c”这类的以字符串形式提供的运算表达式。

这篇文章给出的一个简单的示例程序如下:

using System;
using System.Collections.Generic;
using System.Text;
using IronPython.Hosting;

namespace PythonDemo
{
  class Program
  {
    delegate int MyExpressionDelegate(int a, int b);
    static void Main(string[] args)
    {
      PythonEngine pe = new PythonEngine();
      MyExpressionDelegate expression = 
        pe.CreateLambda<MyExpressionDelegate>("a + b");
      int a = 10;
      int b = 5;
      int c = expression(a, b);
      Console.WriteLine(c);
    }
  }
}

 

[3]Building Applications Using Castle RC2: Part I(使用Castle RC2创建应用程序 第一部分)

关心.NET企业应用Web开发的朋友应该都或多或少地了解或使用过一些Castle这个开源的框架。TerryLee大哥Blog中的Castle分类中也有一些非常精彩的介绍。在11月1号发布的RC2版本中,我们欣喜地看到Castle已经逐渐地走向了成熟。Ayende Rahien的这篇文章由浅入深,图文并茂,一步步地带领我们走入Castle RC2的世界。虽然文章篇幅不小,但却非常易于理解。绝对是Castle入门的首选。

 

[4]What should I use, NHiberante or Active Record?!(NHiberante还是Active Record,应该选择哪个?)

同样是Ayende Rahien的一篇非常有意思的文章,其中简要地分析了NHiberante和Active Record各自的优势和弊端,最终给出了5条指导性、且相当客观的意见。当然,NHiberante和Active Record其实半斤八两,如何选择也是个仁者见仁、智者见智的事情。不过了解一下别人的想法总归没有什么坏处,闭门造车绝对不是一个好主意。

 

[5]Introduction to GhostDoc(GhostDoc介绍)

在前一期的《本周ASP.NET英文技术文章推荐[10/21 – 10/27]》中,我曾经介绍了一个非常有意思的“智能”生成C#代码注释的工具。Roland Weigelt的这篇文章详细介绍了这个工具的使用方法,以及其“智能”生成注释的原理,非常值得一读。GhostDoc将分析并根据不同的词性生成合乎逻辑的“智能”注释,下面是几个很酷的自动生成的注释:

/// <summary>
/// Appends the HTML text.
/// </summary>
/// <param name="htmlProvider">The HTML provider.</param>
public void AppendHtmlText( IHtmlProvider htmlProvider )

/// <summary>
/// Adds the specified item.
/// </summary>
/// <param name="item">The item.</param> 
public void Add( string item )

/// <summary>
/// Determines the size of the page buffer.
/// </summary>
/// <param name="initialPageBufferSize">Initial size of the page buffer.</param> 
/// <returns></returns> 
public int DeterminePageBufferSize( int initialPageBufferSize )

 

[6]UpdatePanel: having fun with errors(UpdatePanel:轻松处理更新异常)

Atlas从CTP到Beta 1版本的很大一个改变就是移除了ScriptManager中的<ErrorTemplate>标签,然而这并不代表Atlas将放弃对一部更新过程中异常处理的支持。相反,Atlas采用了一种更加灵活的方式来处理这个异常,这篇文章就对Beta 1版本中新的异常处理机制进行了探讨,并通过示例程序演示了在实际应用中的使用方法。

 

[7]Asynchronous Web Services in ASP.NET 2.0(在ASP.NET 2.0中异步调用Web Service)

通过网络访问远程资源往往会造成线程不必要的阻塞,程序中调用Web Service也不能例外。因此,采用异步调用的方式将让我们能够暂时“回收”处于阻塞状态下的线程,以另作他用,增强了程序的负载性能。本文即通过示例程序介绍了在ASP.NET 2.0中异步调用Web Service的方法,或许会有所帮助。

 

[8]Compilation and Deployment in ASP.NET 2.0(ASP.NET 2.0程序的编译和部署)

Rick Strahl的这篇长文详细讨论了ASP.NET 2.0程序的编译和部署的具体实现原理以及与ASP.NET 1.1的不同之处。清晰透彻,入木三分,耐心读下去,你一定会有相当大的收获的!

 

[9]Auto-Culture detection related issues in ASP.NET(ASP.NET中自动Culture检测的相关问题)

我们都知道,.NET中的System.Globalization.CultureInfo类可以帮助我们取得当前用户的语言区域信息,然而这个东西却不总是那么好用的。同样是Rick Strahl,在这篇文章以及《Strongly typed resources in ASP.NET》、《Accessing Localized values in ASP.NET markup and JavaScript》中详细讨论了CultureInfo相关的问题以及解决方案。如果你正在开发支持全球化的ASP.NET应用程序,那么这三篇文章显然将是不可多得的宝贵学习资料。