| 此条目可能需要进行清理,以符合维基百科的质量标准。(2006年8月13日) 请尽量协助改善这篇条目,详细信息请参见讨论页。 |
Visual Basic.NET是基于微软.NET Framework之上的面向对象的中间解释性语言,可以看作是Visual Basic在.Net Framework平台上的升级版本,增强了对面向对象的支持。但由于改动太大,导致VB.net对VB的向后兼容性不好,在业界引起不小的争议。
大多的VB.Net程序员使用Visual Studio .Net作为IDE(integrated development environment). SharpDevelop是另一种可用的开源的IDE。VB.Net需要在.Net Framework平台上才能执行。
目录 |
Visual Basic .NET(VB 7.0)是随vc#和ASP.NET一起在2002年发布的最初始的VB.net版本。C#被大力宣传为微软对付JAVA的王牌,受到媒体极力关注。然而VB.NET(有时被称为VB7)影响面不广,这导致VB社区之外很少人关注它。那些试用过此版VB.NET的人在层层幕布下发现一个强大却艰深的语言,而且还有不少弱点,比如它比VB6来有一个大了十倍的运行时(RunTime),内存footprint也大大增加。
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(VB 8.0)是VB.Net的重大转变,微软决意在其软件名称中去掉了.NET部份。在VB2005中,微软增加了许多新功能,以引用VB对于初学者来说的一些优点:
Visual Basic 2008(VB 9.0)于2007年11月9日与Microsoft .NET Framework 3.5一起发布
在VB2008中,微软增加许多功能,包括:
Visual Basic 10,也称为VBx,提供支持Dynamic Language Runtime (DLR)。VB 10同时是Silverlight 2.0计划的一部分。
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),以全面利用新语言的优点。在有关句法、应用调试、部署和术语等方面的变化,有大量的文档可以参考。
两个例子都弹出"Hello World"并带OK按钮的信息框,它们显示了VB和VB.Net在句法上的相似。
VB:
Private Sub Command1_Click() MsgBox "Hello, World" End Sub
VB.NET:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click MessageBox.Show("Hello, World") End Sub
注意,VB.NET中的所有过程调用都必须加圆括号,而VB6中只有调用函数或者VB6中使用Call来调用过程时才需要加圆括号,另外,Command1和Button1并非必须,只是VB和VB.NET系统自动默认的控件名。
两个例子都卸载活动窗口,它们显示了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再提供维护与支持的回应,当月月底出现了反对者的请愿[1]。
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有自带.NET Framework,其它版本需要另外安装,这对用户和程序员都不方便。且.NET Framework 3.5版仅支持Windows XP、Vista以后的Windows版本。
针对开发者的不满,微软主要做了如下努力:使新的开发更容易启动,而把已开发的VB6代码升级到VB.NET[2]。例子主要包括:完成VB6中的常见任务如打印预览;集成VB6和VB.NET解决方案(dubbed VB Fusion),从VB6 代码转换到 VB.NET。
目前和C#相比,针对VB.NET开发的开源工具发展得比较慢。MONO开发平台提供了一个VB.NET特性库(VB.NET-specific libraries)并以推出了一个编译器,还有一个Windows Forms GUI 库在开发中。
|
查 • 论 • 编 • 历
|
|
|---|---|
| 桌面软件 | Windows (Windows 历史) · Office · Internet Explorer · Dynamics · Visual Studio · Money · Encarta · Home! · Microsoft Student · Expression |
| 服务器软件 | Windows Server · SQL Server · IIS · PWS · Exchange Server · BizTalk Server · Commerce Server · ISA Server · Systems Management Server |
| 技术 | 活动目录 · DirectX · .NET · Windows Media · PlaysForSure |
| 网络 | Windows Live · Bing(必应) · Office Live · MSNBC · ninemsn · MSN · Hotmail · Live Messenger · Spaces · Groups · Live ID · Ignition · CodePlex · SQL Server Data Services · Windows Azure |
| 游戏 | 微软游戏工作室 · Zone · XNA · Xbox · Xbox 360 (Elite) · Xbox Live (Arcade · Marketplace) · Games for Windows (Live) · Live Anywhere · 帝国时代 · 微软模拟列车 · 微软模拟飞行 |
| 硬件 | Surface · Zune · MSN TV · 微软自然键盘 · IntelliType · IntelliPoint · LifeCam · LifeChat · SideWinder · 超级移动电脑 · Fingerprint · Audio System |
| 教育与认证 | 微软认证 ·微软开发者网络 ·微软合作伙伴认证 ·微软教育联盟计划 ·微软签约授权 ·微软出版社 ·微软最有价值专家 ·微软创新联盟 |
| 许可证 | 客户端访问许可 · 共享源代码 |
| 董事会成员 | 巴尔默 · 凯什 · 杜伯伦 · 盖茨 · 吉尔玛特 · 哈斯廷斯 · 马夸特 · 诺斯基 · 庞克 · 雪利 |
|
查 • 论 • 编 • 历
|
|||||
|---|---|---|---|---|---|
| 架构 | 基类库 · 共同语言运行期元件 · 代码访问安全性 · 组件 · 元数据 · COM互通性 | ||||
| 共同语言基础架构 | 共同语言基础架构(CLI) · 共同型别系统 · 共同中介语言 · 虚拟运行系统 | ||||
| CLI 支持语言 |
|
||||
| 应用平台 | WPF · WCF · WF (WWF) | ||||
| 元件 | ADO.NET (Entity Framework · Data Services) · ASP.NET (AJAX · MVC · Dynamic Data) · Remoting · LINQ · Windows CardSpace · Windows Forms · XAML · ClickOnce · Dynamic Language Runtime · Parallel FX Library (PLINQ · TPL) | ||||
| 其他平台实现 | Mono · Compact Framework · Micro Framework · Portable.NET · Silverlight · SSCLI | ||||
| 比较 | C#与Java · C#与Visual Basic .NET · Java与.NET平台 | ||||
| 即将推出 | "Acropolis" · "Jasper" | ||||
| 1 这些语言都被包含在Visual Studio. 2 被多数用户使用,且非教学或研究型的语言。 |
|||||
stock | retire | vm
Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History