Visual Basic .NET

维基百科,自由的百科全书
跳转至: 导航搜索
Visual Basic .NET
编程范型 结构化指令式面向对象宣告式
发行时间 2001
設計者 微软
實作者 微软
最新发行时间 2012(11.0.0.0) / 2012年8月15日;23個月前 (2012-August-15)
型態系統 静态强类型同时为安全和不安全,[1] 标明类型系統
主要實作產品 Microsoft Visual StudioMicrosoft Visual Studio Express.NET Framework SDKMono
衍生副語言 Microsoft Visual Basic
啟發語言 .NET Framework
Platform 通用語言運行庫
作業系統 主要在Microsoft Windows
同时可支持Android, BSD, iOS, Linux, Mac OS X, SolarisUnix
許可證 专有软件商业软件/免费软件
常用文件扩展名 .vb and .vbs
網站 msdn.microsoft.com/vbasic

Visual Basic.NET是基于微软.NET Framework之上的面向对象的中间解释性语言,可以看作是Visual Basic.Net Framework平台上的升级版本,需要在.Net Framework平台上才能执行,增强了对面向对象的支持。但由于改动太大,导致VB.net对VB的向后兼容性不好,在业界引起不小的争议。

大多的VB.Net程序员使用Visual Studio .Net作为集成开发环境(IDEintegrated development environment)。SharpDevelop是另一种可用的开源的集成开发环境。

發佈歷史[编辑]

Visual Basic .NET[编辑]

Visual Basic .NET(VB 7.0)是隨Visual C#和ASP.NET一起在2002年發佈的最初始的VB.NET版本。C#被大力宣傳為微軟對付JAVA的王牌,受到媒體極力關注。然而VB.NET(有時被稱為VB7)影響面不廣,這導致VB社區之外很少人關注它。那些試用過此版VB.NET的人在層層幕布下發現一個強大卻艱深的語言,而且還有不少缺點,例如它的執行階段元件(Run-Time)比VB6大了十倍,記憶體使用量也大大增加。

Visual Basic .NET 2003[编辑]

Visual Basic .NET 2003(VB 7.1)是和.NET Framework 1.1一起发布的。新功能包括对.NET Compact Framework的支持和更好的VB升迁向导。并改进了运行状况,IDE稳定性(尤其是后台编译器),以及运行时RunTime稳定性。另外,VB.NET 2003还有一个学院版Visual Studio .NET 2003 Academic Edition(VS03AE),它是分发给各国某些学者免费使用的版本。

Visual Basic 2005[编辑]

Visual Basic 2005(VB 8.0)是VB.Net的重大转变,微软决意在其软件名称中去掉了.NET部份。在VB2005中,微软增加了许多新功能,以引用VB对于初学者来说的一些优点:

  • Edit and Continue - 也许是从VB那里丢掉的最大的功能,允许代码的编辑和执行立即的执行恢复。
  • Design-time expression evaluation
  • My伪命名空间,提供了访问.NET Framework特定域的不需大量编码的简单方式;还能动态产生类(显然的是My.Forms);提供了改进的VB到VB.NET转换向导;Using语法,简化了需要部署pattern to free resources的对象的使用;My编码,可隐藏由VB.NET IDE写的模板代码;数据源绑定,简化了数据库C/S开发。上述功能(尤其是My)增强了VB.Net成为快速开发应用平台的可能,并与C#进一步区别开来。Visual Basic 2005通过增加新功能而填补了和其它所谓更强大的.NET语言的差距。
  • 增加了.NET 2.0语言功能包括:泛型(generics)和Partial类(在一个文件里定义一个类的某部份然后再添加更多的定义,这个方法在整合用户编码和系统自动生成编码时尤其有用)。
  • XML注释,可以被NDoc等工具处理而自动生成文档
  • 操作符重载
  • 支持在其它语言中已经广泛使用的unsigned integer数据类型。
  • 支持在许多C衍生编程语言已提供的复合操作符如:"+=", "-="
  • IsNot专利:If Not X Is Y表达式被转换成If X IsNot Y。当微软为IsNot申请专利时招致了恶名(尤其来自Real公司)。
  • Visual Basic 2005 Express:作为VS产品线上的一部份,VB2005 Express是专为业余爱好者和新手定制的免费的VS Express系列的一员。Express版本目的定位在帮助人们学习一种语言,所以他们有和标准版一致的用户界面,只是少了一些高级功能。另外,VS Express版包括了VB6.0转换器,提供了从VB老版本升级的可行方法。

Visual Basic 2008[编辑]

Visual Basic 2008(VB 9.0)於2007年11月9日與Microsoft .NET Framework 3.5一起發布

在VB2008中,微軟增加許多功能,包括:

  • IIF函数
  • 匿名类型
  • 支持LINQ
  • Lambda表达式
  • XML数据结构
  • 类接口

Visual Basic 2010[编辑]

Visual Basic 10,也稱為VBx,於2010年4月發行,提供支持Dynamic Language Runtime(DLR)。VB 10同時是Silverlight 2.0計劃的一部分。

Visual Basic 2012[编辑]

Visual Basic 2012於2012年8月發行。

和VB的关系[编辑]

VB.net是否该被看作VB的新版本或者是另一个完全不同的语言尚在争议中。虽然并非显而易见,但只要某个方法被弃用,它就会可会被自动转换,这说明了该语言的句法并没有出现很多突破性的变化,只是增加了对新功能的支持,比如结构化意外处理机制和短循环表达式(structured exception handling and short circuited expressions)。有一种变化会让旧用户迷惑:Integer和Long数据类型在长度上分别倍增。16位的integer在VB.NET中被认为是Short,而Integer和Long分别是32位和64位。同样,Windows Forms GUI编辑器和VB Form编辑器在外观和功能上非常相似。

出现巨大变化的是语意,从运行于基于COM的deterministic, reference-counted的引擎之上的编程环境,转变为全面面向对象的基于.NET Framework的语言。.NET Framework包括了CLR(使用通用垃圾收集机制和JIT编译引擎的虚拟机)和大量的类库。VB开发者进入VB.NET要面对新增的大量类库的问题,虽然这在VS 2005的My功能中已有所阐述。

上述变化表明了许多在运行及维护相关优化事宜下面的假定,一些VB6函数和库不再存在而其它的仍然可用,但是比不上.NET语言中自带的可替换的函数和库高效。即使它们可被编译,但大多从VB6转换而来的应用将需要一定程度上的重构(refactoring),以全面利用新语言的优点。在有关句法、应用调试、部署和术语等方面的变化,有大量的文档可以参考。

比较样例[编辑]

卸载活动窗口[编辑]

两个例子都卸载活动窗口,它们显示了VB和VB.Net在句法上的不同。

VB:

 Private Sub cmdClose_Click()
  Unload Me
 End Sub

VB.NET:

 Private Sub cmdClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdClose.Click
  Me.Close()
 End Sub

争议[编辑]

许多资深的VB程序员抱怨VB.NET,因为VB.NET 2002丢掉了许多不再发行的VB6中使用的大量语言constructs和用户界面功能,并且对保留下来的东西也改变了语意。例如,在VB.NET参数默认是以值方式传递的,而不是以引用方式。VB.NET 2002被半嘲讽半认真地称为Visual Fred或VBDOTNOT。作为对2005-03-08微软拒绝为VB6再提供维护与支持的回应,当月月底出现了反对者的请愿[2]

VB.NET的支持者们认为新语言在很多方面比旧版本更为强大,比如它以相比早期版本更为自然、紧密和完全的方式地加入了现代面向对象的编程范式。反对者们有不同意见,虽然VB6对对象模型支持有缺点,但是二次开发升级到VB.NET的成本比升级后的收益要高得多。而开发软件发布因特网版本的独立程序员也对VB.NET的RunTime尺寸过大不满。

相对编译成机器码的语言,编译成MSIL的语言包括VB.NET比较容易被反编译。

微软提供了VB到VB.NET的自动转换器,虽几经改进,但仍无法转换全部代码,几乎所有非小型程序都需要人工修改以完成编译。为了运行优化,大多程序需要大量工作去重构。

主要是进行演算的VB程序自然会更容易升迁,但是采用了以下功能,如数据库支持、图形、unmanaged operations,或者在安装启用明细方面都很麻烦。不幸的是,这些恰好是许多商业应用的核心。

另外,Win98及其以上的系统就自带了VB6的运行时(RunTime)库,而VB.NET需要安装大得多的.NET Framework。除了Windows Vista, Windows XP Media Center Edition, Windows XP Tablet PC Edition、Windows Server 2003、Windows Server 2008、Windows 7、Windows Server 2008 R2有自带.NET Framework,其它版本需要另外安装,这对用户和程序员都不方便。且.NET Framework 3.5版僅支援Windows XP、Vista以後的Windows版本。

针对开发者的不满,微软主要做了如下努力:使新的开发更容易启动,而把已开发的VB6代码升级到VB.NET[3]。例子主要包括:完成VB6中的常见任务如打印预览;整合VB6和VB.NET解决方案(dubbed VB Fusion),从VB6代码转换到VB.NET。

語法介紹[编辑]

Select Case[编辑]

VB.Net支持如下的Select语句。

        Dim J, K As Boolean
        Dim check1 As String = String.Empty
 
        J = True
        Select Case True
            Case J
                check1 = "a"
            Case K
                check1 = "b"
        End Select

跨平台和开源的开发[编辑]

目前和C#相比,针对VB.NET开发的开源工具发展得比较慢。MONO开发平台提供了一个VB.NET特性库(VB.NET-specific libraries)并以推出了一个编译器,还有一个Windows Forms GUI库在开发中。

沿革[编辑]

Visual Basic[编辑]

  • 1991年4月,Visual Basic 1.0 Windows版本发布
  • 1992年9月,Visual Basic 1.0 DOS版本发布。
  • 1992年11月,VB2.0发布。它对于上一个版本的界面和速度都有所改善。
  • 1993年夏天,VB3.0发布,分为标准版和专业版。其中包含一个数据引擎,可以直接读取Access数据库。
  • 1995年8月,VB4.0发布了32位版本和16位的版本。其中包含了对的支持。这是最后一个支持16位的版本。
  • 1997年2月,VB5.0发布。程序员可以用32位的版本导入由4.0版本创建的16位程序,并且能顺利编译。同时还包含了对用户自建控件的支持。
  • 1998年夏天,VB6.0发布。

Visual Basic .NET[编辑]

  • 2002年,Visual Basic.NET和.NET Framework发布。由于其使用了新的核心和特性,所以很多VB的程序员都要改写程序。
  • 2003年,Visual Basic.NET 2003和.NET Framework 1.1发布。
  • 2004年,微软发布了Visual Studio 2005的测试版本(代号Whidbey)。包含了.NET Framework2.0的测试版本。
  • 2005年,微软宣布将不会再对非.NET版本的VB进行支持。VB社群立即作出反应表示关心这个消息,一些老用户还递交了希望能够继续对VB进行技术支持的请愿书。微软目前还不愿意改变他们的决定。
  • 2005年11月7日,Visual Studio 2005正式发布。
  • 2007年11月19日,Visual Studio 2008與.NET Framework 3.5正式发布。

参考資料[编辑]

  1. ^ Option Strict can be used to switch between safe and unsafe type checking.
  2. ^ http://classicvb.org/petition/ petition
  3. ^ http://msdn.microsoft.com/VBRun/ VBRun website

外部链接[编辑]

官方網站[编辑]

教程[编辑]

其他[编辑]