2008年1月11日 星期五

ASP.NET對Dynamic Language Runtime(DLR)的支援

在ASP.NET的下一個版本當中,將可能開始支援Dynamic Language(動態語言),微軟針對DLR支援最早出現的場合是Silverlight, 接著是ASP.NET Futures release,如果讀者有安裝VS 2005+ASP.NET Futures,則會看到在新增網站專案當中,出現了底下畫面:
當您選擇了Managed Jscript之後(它是 ASP.NET最新支援的兩種動態語言之一),您會發現建立出來的專案是完全相同的:



那這樣所謂的 "動態語言" 到底和傳統的C# 或是VB有何差別呢?

說『動態語言』似乎很高深,其實說穿了就是Script類型的語言,也就是執行方式是 "解譯式" 而 "非編譯" 式,這類語言的好處是,可以透過程式碼動態產生程式碼並且再加以執行,概念很簡單但是意義卻很重大。

舉一個簡單的例子,請參考上圖中的畫面,我在表單上放置兩個TextBox,和一個Button,並且撰寫底下的程式碼:
function Button1_Click(sender, e)
{
TextBox2.Text = eval(TextBox1.Text).toString();
}
請注意這段程式碼是Managed Jscript,因此副檔名為.jsx:

請注意我在第一個TextBox當中所輸入的是 "運算式(也可以是程式碼,而非單純的數值)" :
透過
TextBox2.Text = eval(TextBox1.Text).toString();

eval指令,將會執行TextBox1中的運算式,再把結果傳入textBox2。
從上面的範例你會發現,透過DLR,我們可以用程式碼來產生(並執行)程式碼,達成動態運算的效果。
以上範例程式碼請點選這裡下載 (執行前請務必先安裝ASP.NET 2.0+ASP.NET Futures Release)

沒有留言: