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)

2008年1月1日 星期二

Codename:NY2008

今天是2008的第一天,先祝各位 2008 新年快樂。

不曉得您去年是怎麼過的,去年的我是集合了忙碌(或你硬要說是充實也行)、混亂、大量的時間透支、以及背負著許多人情、課程、稿件中度過。
老實說,對於揮別過去的一年,我們都很有經驗,只是隨著時間一年一年的過去,在工作之餘,有時候也不免會回想這一切是否在我們理所當然的犧牲了與家人相處的時間與個人的健康之後才換來的...

回頭看2007,對於Web開發人員來說,過去一年實在精采,AJAX、Web2.0、Silverlight...等技術陸續而來。我再隨便信手拈來,WPF、WCF、MVC、LINQ、Astoria、Dynamic Data、Dynamic Language...哇~還真是熱鬧。
不知道你會不會和我一樣,心裡難點有點小抱怨,MS是搞什麼飛機,這些term為什麼不乾脆一次出現算了,是怎樣,整我嗎??

隨著2007的結束,可以先預告的是,2008將會有相當多嶄新的轉變,VS2008 RTM的版本相信各位已經拿到且開始試用了,ASP.NET 3.5 Extensions CTP有不少朋友已經安裝起來了,我測試過了其中幾個我最有興趣的部分,在接下來的幾周當中,我會陸續和大家分享一下心得。

對於我來說,ASP.NET 3.5 Extensions遠比VS2008和.NET 3.5來的有意義的多。

各位,不知道2007到2008的這一刻,你的心情如何? 在跨年晚會的載歌載舞上,的確一年比一年熱鬧許多。但是當跨年活動結束之後,我們依舊要開始面對在生活上的每一個難題,IT產業在台灣未來的走向、開發人員在台灣的發展、資訊技術的突飛猛進、物價的持續上漲...

不過,雖然難題不會改變,但是換一個心情再出發也不錯。

Keep Walking,2008我們繼續一起努力。