[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支援方面的兩個改進之處:
- 極其容易地安裝配置過程。
- 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應用程式,那麼這三篇文章顯然將是不可多得的寶貴學習資料。