ASP.NET對Dynamic Language Runtime(DLR)的支援
在ASP.NET的下一個版本當中,將可能開始支援Dynamic Language(動態語言),微軟針對DLR支援最早出現的場合是Silverlight, 接著是ASP.NET Futures release,如果讀者有安裝VS 2005+ASP.NET Futures,則會看到在新增網站專案當中,出現了底下畫面:
eval指令,將會執行TextBox1中的運算式,再把結果傳入textBox2。
當您選擇了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)
留言