《Introducing Visual Basic 2005》中看到的一些VB2005的新特性

下载并注册了VB2005 Beta 2,得到了一个MS的E-Learning帐号。于是乎趁着闲暇看了里面的一本书《Introducing Visual Basic 2005》。依靠我CET4水平的英文总算是看完了,发现2005的一些新特性。不敢独享,找了些个我觉得有趣的Post上来,大家可以看看。由于本人对ADO.NET和ASP.NET不是很熟悉,所以这两部分没有写。IL的部分估计有“装配脑袋”大哥一个人就可以搞定了,不敢班门弄斧,于是主要写了关于IDE和Form的改善。写的仓促,大家凑和着看。

·          Edit-And-Continue
VB2005可以像VB6那样实行Edit-And-Continue功能。这个功能在调试环境中至关重要,但是很遗憾在Visual Studio .NET 2002和2003里面没有提供。不过现在Edit-And-Continue功能又回来了。用户可以在调试过程中根据调试结果立即修改代码,继续执行程序而无需停止调试。

·          My对象
当我们使用VB6编程的时候,通过COM组件和Windows API来开发。现在我们使用.NET的时候,可以通过.NET提供的巨大的基础类库来操纵底层的操作系统。了解基础类库,知道他们的作用以及何时、如何使用他们对于开发者至关重要。如果你不能了解他,那么你就不得不重新开发一些基础类库已经存在的功能模块。但是事实上,学习如此之大的类库非常困难,因为他实在是太大了。
现在使用My对象,可以让你在巨大的基础类库里面方便的找到你所需要的功能模块。
My.Application
运行中的程序信息。包括运行路径、版本和使用的公共语言运行时(CLR)的版本。并且提供环境变量,可以轻松的编写日志文件。
My.Computer
运行机器的硬件资源和系统底层信息。
My.Forms
目前工程的所有窗体实例对象集合。(有点回归VB6的感觉)
My.User
目前系统用户,包括用户名、域名等等信息。
My.WebService
允许你轻松的进入WebService或加入自己的WebService。

·          运算符重载
VB终于支持运算符重载了。写法和在C++里面很相似,只是参数必须是当前类对象的实例才行。
·          新的关键字
Ø         Global关键字:返回顶级命名空间对象。如果你在程序里面定义了Util.System命名空间,那么你就不能引用System.String类了。因为系统默认在Utli.System命名空间里面寻找System.String类,这显然是找不到的。Utli.String命名空间覆盖了顶级命名空间System。
现在使用Global关键字,就可以指定顶级命名空间了。我们就可以通过Global.System.String进行访问了。
Ø         Using关键字:.NET的垃圾回收(CG)可以自动回收未使用的资源,但是如果你使用了非托管资源,比如文件句柄的时候,就会出现一些未回收的问题。为了避免这些问题的发生,我们只能在使用完毕的时候手动调用Dispose方法释放资源。
现在如果我们使用Using和End Using关键字,这些非托管资源在End Using的时候就会自动释放。
Ø         Continue关键字:不用多说了吧,现在VB终于有Continue了。里面有Continue While、Continue For什么的。

·          Docking Guides和IDE Customizations Export and Import
工具窗口停靠向导功能。用户经常会将自己的IDE界面进行修改,将工具窗口放到自己认为最顺手的地方。但是在2002和2003里面,我们经常发现自己很难将窗口停靠在自己需要的位置上。在2005里面,IDE增加了Docking Guides功能,用户可以非常方面而且准确的停靠自己的工具窗口了。
同时,我们自己设定好的IDE格局也可以方便的导入导出。这样就可以很容易的恢复我们自己习惯的IDE格局了。

·          无需保存的工程
VB2005里面建立新的工程并没有让你指定路径,这个工程被保存在一个临时目录里面,如果需要,你可以通过保存按钮存储这个工程。MS的说法是,既然MS Word允许用新建一个文档并写些内容然后打印,不保存就关闭,那么.NET也要这么做。即用户建立一个工程,写点代码运行一下,然后关闭。这个操作可能只是为了测试或者试验这个代码的效果,并不要保存这个工程。
不过你仍旧可以通过Option里面的项目选择建立Project的时候就保存的选项。

·          新的工程模版
2005加入了一些新的工程模版,比如我们在VB6里面见到过的Splash Form和About Dialog,还有Explorer Form什么的。但是个人感觉用处不大。

·          My Project窗口
2005将原来的Project Properties窗口修改成了现在My Project窗口,整合了原来的功能,增加了References、Resources和Assembly信息等功能。

·          XMLDoc注释
真是千呼万唤始出来啊,以前让VB程序员眼红的XMLDoc注释终于在2005里面加入了。现在我们可以通过三个单引号生成属于VB自己的XMLDoc注释了。激动中,勿扰……

·          语法错误帮助
以前编译器发现了语法错误,就是简单的画个蓝色波浪线,然后写一行毫无用处错误提示。现在语法错误在显示错误原因的同时,智能显示修正的建议。我只试过一些简单的错误比如拼写错误、括号不匹配等等,果然能够得到很准确的帮助和修改建议;但是复杂的错误能有这么智能的帮助么?怀疑。

·          设计时表达式计算
Immediate窗口加强了设计时表达式计算功能。在设计时期,如果你编译了当前解决方案中ClassLibrary Project的话,你在设计的时候(非执行或调试时),Immediate窗口中就可以实例化某个类对象,传入属性,然后运行它的一些方法并看到结果。

·          代码片
2005的新功能了,看着很花哨。就是在开发的过程中,将已经保存好的代码片断复制到Code中,需要填入特殊信息(变量或值)的地方将会突出显示。Beta 1的时候还有些问题,光标无法通过键盘移出这个代码片;但是Beta 2好像修正了这个错误,现在比较好用了。唯一不知道的是用户如何添加自己的代码片。

·          对象改名
就是在Code窗口右击鼠标,通过Rename进行变量对象改名操作,不同的是它可以将所有引用到这个对象的代码都改名。MS说这是为了方便用户在项目开始的时候,Form上面的控件命名不规范,项目中后期规范命名的时候简化操作用的。但是我感觉主要是为了修改别人的代码看着他的命名不爽所以进行改动用的。

·          新控件
Ø         Strip系列控件:
如今专业的应用程序允许用户更加全面的定制自己的程序界面,例如控件的位置、文字格式和菜单按钮的内容。Strip控件可以完成这样的要求。ToolStripContainer控件实际上是一个控件容器,它允许添加ToolStrip、MenuStrip和StatusStrp等控件,同时提供用户让这些Strip控件在ToolStripContainer里面改变自己的位置操作。就好像Office可以改变工具条的位置一样。
并且,Strip控件允许用户加入7种项目,包括按钮、下拉框、文本框和分割按钮等。而且通过ToolStrip建立的菜单终于允许加入前面的图标了。
Ø         FlowLayoutPanel和TableLayoutPanel:
不多说了,用过Java的应该不会陌生的。VB现在学习Java越来越彻底了。
Ø         ActiveDocumentHost控件:
我在VB2005 Beta 2里面并没有找到这个控件。MS说这个控件可以自动通过OLE资源启动相应的程序。比如Load一个Word文件,那么这个控件就可以自动启动MS Word并且以只读方式显示这个Word文件。

·          老控件的新特性
Ø         Margins和Padding
Margins属性设定控件间的距离,Padding属性设定控件和其父控件间的距离。方便我们画出好看的程序界面。
Ø         自动完成
现在的TextBox和ComboBox已经加入了自动完成的功能。你只需要选择AutoCompleteMode和AutoCompleteSource属性,就可打开自动完成功能,制定保存自动完成履历所存放的位置。看来又有一批第三方控件要死翘翘了。

·          范型
范型被讲述的太多了,我也是刚刚接触。个人感觉如果不了解范型,可以看看“装配脑袋”的Blog。不过感觉.NET的范型约束太多了,有点影响了范型的灵活性(虽然安全性提高了)。
posted @ 2005-05-18 13:10 妖居 阅读(...) 评论(...) 编辑 收藏