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