Visual Studio 2008將是一個非常激動人心的版本,包含了成堆的強大的功能。其中一個新特性就是更加完善的支持對JavaScript的調試及IntelliSense功能。Visual Studio 2008其實是開發JavaScript程序最優秀的IDE,對JavaScript的代碼誘導能力最強,而且還可以進行斷點跟蹤調試調試。在本文中,將展示的這兩方面的特性,希望為JavaScript的編輯及調試帶來新開發方式,但愿讀者能尋找到一款更好的JavaScript開發工具。
JavaScript 智能感知(Intellisense)功能
Java、C#等各種高級語言的開發工具琳瑯滿目,爭放異彩。但作為AJAX的主角的JavaScript語言,配套的開發工具總保持著不相稱的沉寂。缺乏良好開發工具的支持,編寫JavaScript程序,特別是超過500行以上的JavaScript程序變得極富挑戰性——沒有代碼誘導功能,沒有實時錯誤檢查,沒有斷點跟蹤調試……開發JavaScript代碼有時就像在黑暗的隧道里靠觸覺摸索著前行。在代碼中不小心增加了一個多余的“(”或“{”,整段代碼可能馬上像一堵猝然倒塌的城墻,在IE中報出的錯誤往往似是而非,甚至和真實原因往往相差十萬八千里,讓人如墮云里霧里。好事者引用柳傳志的話,概括編寫JavaScript程序的感受:戰戰兢兢,如履薄冰。
(1) 無處不在的Intellisense功能
開發人員對Visual Studio 2008中一個殷切期盼的特性是,Visual Studio 2008對客戶端JavaScript Intellisense的支持,當然這個特性在免費的Visual Web Developer Express版本中也能正常的工作。
Visual Studio 2008的JavaScript IntelliSense功能類似其他IDE中的Auto-completion,也就是能夠自動補全,不過和VI和Emacs中的Auto-completion不一樣,IntelliSense比較Intelligent,根據編程語言的語法來談出備選填。
如果讀者以前曾為手工鍵入JavaScript感到煩惱的話,那肯定會為Visual Studio 2008的這個特性感到驚喜。Visual Studio 2008 為所有的.aspx 文件、.htm 文件以及外部的.js 文件中都提供完整的JavaScript Intellisense自動完成功能。它不僅對普通的JavaScript代碼提供了Intellisense ,還對新的ASP.NET AJAX 客戶端JavaScript框架和用它編寫的JavaScript代碼提供了豐富的支持。
(2) 外部JS文件的Intellisense功能
Visual Studio 2008中的JavaScript Intellisense支持之酷處在于,它被設計成開箱即可用(Just work out of the box)的。這意味著,開發人員不需要對JavaScript文件運行別的工具來建立Intellisense提示,也不用以某種方式來修飾JavaScript。如果在外部JavaScript文件中建有一個標準的JavaScript函數或原型類型,那么Visual Studio 2008中使用它時,就應該自動得到Intellisense完成。
很明顯,當外部JS文件具在Intellisense功能時,開發人員就可以像使用內部的JavaScript語句塊一樣進行調用。如此一來,就可以自動調用外部JS文件中定義的JavaScript函數及變量。
例如,如下圖所示,在些在文件中引用了兩個.js文件
于是,在MyLibrary.js文件中即可以調用Util.js文件中定義的方法了。當然,也可以讓Visual Studio 2008讓Util.js具有Intellisense功能。只需在MyLibrary.js文件的最頂部加入注釋即可。
(3) JavaScript文檔注釋
Visual Studio 2008還允許開發人員可選擇性地在代碼/庫中添加文檔注釋,來進一步幫助Intellisense 引擎,以及允許開發人員提供文檔注釋,Visual Studio Intellisense引擎可以收集這些注釋,用作摘要注釋和類型描述/驗證檢查。
譬如,如果開發人員可以把如下的注釋添加到getMessage函數:
當在Default.aspx中進行編碼時,Visual Studio 2008會自動的顯示getMessage函數的相關信息。Visual Studio 會自動顯示摘要的細節,以及在健入參數值時提供行內的幫助。
除了以上的基本JavaScript注釋功能之外,ASP.NET AJAX也使用文檔摘要注釋的格式。兩者都可以:
給類、方法、參數添加摘要細節;本地化JavaScript中的文檔;當一個外部JavaScript 文件引用另一個外部JavaScript 文件后,在使用前一個外部JavaScript文件時,讓它的Javascript Intellisense認為,另外文件中的方法和類型在當前的范圍內。
ASP.NET AJAX 控件工具包現在也擁有了內置的MSBuild任務,可以將其加到web項目里,該任務可以在項目以“發布”模式編譯時,自動從JavaScript 文件中除去這些文檔注釋以及空格和其他不需要的內容。這提供了非常有用的功能,它允許在開發時維護調試/描述性的Javascript版本,然后允許做個切換就可生成為運行時高效下載而優化的版本。
新聞熱點
疑難解答
圖片精選