日期:2010-04-14  浏览次数:20469 次

我很早以前就想找一个能够像VS中C#一样可以有很强的IntelliSense开发工具来写脚本JS,但是到现在还没有能够真正找到一理想的工具。很早以前听说VS2007能够给我带来一点震撼,但是又有人说那只是对ASP.NET AJAX有IntelliSense,又有点失落感。今天看到ScottGu的一篇博客发现VS2007能够提供几乎和C#一样的IntelliSense,让我激动万分,也由于很久没有写博客了顺便把自己的一些体验和大家分享一番。

由于我不是MSDN杂志的订阅者,而我很讨厌VPC虚拟机(内存有点不够用,呵呵,所以还没能用上Visual Studio 2007 code name "Orcas" Beta1版,用于体验的还是March CTP的,或许在后面的版本中将会有所不同。当我们在<script></script>标记中随便敲入一个字符时,就会给我们像C#一样的体验,这样不但能提高开发效率,也能大大降低我们的错误。还有一个快捷键能够将默认的IntelliSense给显示出来,此快捷键为ctr+j,有机会可以试试。请看下图:

从上图所看到的是VS2007中对普通函数的支持,同时他也对我们在HTML标记中定义的id属性值的支持,就犹如服务端控件的ID属性值一样。在ASP.NET AJAX的支持更是强大,它能按命名空间,类等来提示,也就是说和C#中的IntelliSense有的一拼,从下面的两张图中可以看出他的伟大,命名空间,类,属性,方法,枚举等无一放过。

我想只是这样的提示,当我们有很多方法或属性时还是不知道当时设计的时候是怎样个想法或者说那么多的方法我怎么知道他是用来做什么的呢?不用着急,待我慢慢道来,微软早就考虑到这一点,JS也支持XML注释,当然当我们发布时编译器会把我们注释文档给过滤了,不然脚本太大可是会降低我们应用程序的性能。JS的注释和C#差不多,都用"///"来注释,用"<summary></summary>"来表示摘要,用"<param name=""></param>"来表示参数等,这里就不多说了,唯独不同的是注释的位置。在C#中我们把注释写在方法或类等的上方,而JS是写在方法或类等的下方,这可能回和C#区别开而不会让程序出现错误提示(只是猜想没有根据,呵呵)。根据我的观察,当我们注释时就会激活TypeLibBuilder.exe来收集这些注释,并保存在内存(猜的)中就像字典一样,当我们应用时来收集并显示出来。

在VS2005的HTML或ASPX等页面中的<script></script>标签中写代码时就会提示一些基本的JS关键字和一些对象方法,在VS2007中得到更好的支持。当然我们制作一个程序时会有很多个JS文件,引用多个JS文件而各个JS文件中又会相互调用,怎样在JS文件中对另一个JS文件中方法等的IntelliSense呢?让我们一起来享受一下。

为了能够在对另一个JS文件实现IntelliSense当然要引入某个文件的信息,这样才能够对另一个文件的方法等进行提示。我们只是应用另一个文件的一些普通方法

以下为引用的内容:
///<reference path="JScript1.js">

当我们用ASP.NET AJAX等时,我们就会涉及到"程序集"(这个概念我也不是很清楚,等以后会慢慢揭开这个模糊的概念的,我们先不要管他)。当我们要对某一个程序及进行相关操作时,将path改成name,可以加入程序集assembly以表示引用当前程序集的某个文件。如果将assembly省略则表示对System.Web.Extensions进行引用

以下为引用的内容:
///<reference name="MicrosoftAjax.debug.js">

OK,写到这里也差不多了,或许还有很多新的体验等着我们去享受,从上面的一些例子中我们就可以看出VS2007对JS的支持有多强。有了这个东东,我想在不久的将来js牛人会越来越多,AJAX的脚本开发将会更简单更高效,让我们等待VS2007,拥抱那美好的明天,呵呵!