写点什么

Visual Basic 10 介绍

  • 2007-05-07
  • 本文字数:1157 字

    阅读完需:约 4 分钟

随着 VB9 将在今年某个时候发布,微软也开始谈论起 VB10 了,即通常所说的 VBx 。VBx 的关键特性包括了大家希望的在 Lisp,Ruby 或者 Python 中存在的动态代码生成功能。这将开拓一个能使用 VB.NET 来开发 SilverLight 和 Office(目前要使用 VB.NET 开发 Office 程序都必须通过 VSTO 来实现,或者使用古老的 VBA 来访问 Office 的相关 API,译者注)应用程序的新时代。

VB9,存在于 Orcas Beta 1 当中,已经具备我们能谈论好几年的 LINQ 特性了。使用 VB9 编译的函数库也能够像其他.NET 兼容的 DLL 那样被 SilverLight 使用。

VB10 利用了一个称为 Dynamic Language Runtime(简称作 DLR)的 SilverLight 特性。DLR 是一个基于 Common Language Runtime(CLR)之上的扩展,用于支持多种动态语言,并为动态语言实现提供了一个通用的对象模型。

像其他动态语言一样, DLR 将允许 VB10 的代码被即时的编译(compile on the fly)。一旦VB10 和SilverLight 组合在一起,就意味着VB 的源代码可以在浏览器运行的时候被下载和编译,这样可以实现很多在AJAX 和其他客户端Web 应用程序中运用到的类似技术。

一个重要的开发任务是开发一个新的VM(虚拟机)编译器。不像早期的VB 编译器,使用C++ 来开发,VB10 将使用VB 来开发自己的编译器。这样编译器就能运行于CLR 之下,并能获得SilverLight 所承诺的跨平台特性。

当前,在Windows 下开发Office 的宏程序依旧使用年代久远的VBA。对于OS X 下的Office 宏程序开发,甚至没有支持。随着DLR 特性的支持,VB10 将有可能最终代替VBA 成为Office 下宏程序的开发语言。

另外一个VB10 可能具有的特性是:REPL(Read-Eval-Print loop)(REPL 是一种在交互模式下编程的环境,就是Python 等语言具有的命令行功能,或者可以说类似于QuickBasic 那样的命令行功能, 当然QuickBasic 是解释执行的,Python 等是即时编译的,译者注)。REPL 是一个在动态语言中很流行的功能,在REPL 环境下,代码在输入后就马上运行。当前,在Visual Studio 中有一个很类似REPL 的简单功能,即“即时窗口”,但是它不能脱离VS 单独运行。

可惜的是,当前的SilverLight 1.1 Alpha 1 还不能使用VB10 来开发。不过我们可以在今年的PDC(Professional Developer Conference)的时候好好感受一下VB10 预览版的魅力。

查看英文原文: VS Express Editions Orcas CTP Available


译者简介:朱永光,IT 自由人和环境保护者,微软最有价值专家(MVP)和 MCSD。他有 14 年的编程实践经历,5 年软件构架和开发管理经验,擅长微软相关技术和产品,目前主要关注软件构架和开发框架,是成都.NET 俱乐部副主席和核心讲师,个人博客为 http://redmoon.cnblogs.com 。现在他作为共同创始人经营着一家环境保护技术公司。为InfoQ 中文站贡献内容,请邮件至 china-editorial@infoq.com

2007-05-07 23:001307
用户头像

发布了 254 篇内容, 共 67.2 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

后端技术复习

卢卡多多

技术栈 6月月更

5分钟了解CDN的功能及原理

穿过生命散发芬芳

CDN 6月月更

网页设计制作要注意哪些问题

源字节1号

《非暴力沟通》:如何温柔地沟通?

郭明

读书笔记

拒绝八股文!这篇图解动态路由分分钟爱了

wljslmz

网络工程师 网络技术 动态路由 6月月更 路由协议

vue基本语法使用

小恺

6月月更

Fork Join框架

急需上岸的小谢

6月月更

EasyRecovery15官方最新版下载功能介绍

茶色酒

EasyRecovery Easyrecovery破解 EasyRecovery15

Redis篇之协议与序列化

邱学喆

redis协议 序列化操作 luttuce

【高并发】高并发环境下如何防止Tomcat内存溢出?看完我懂了!!

冰河

并发编程 多线程 高并发 异步编程 6月月更

【LeetCode】独特的电子邮件地址Java题解

Albert

LeetCode 6月月更

Android 音视频——NuPlayer的渲染模块

程思扬

音视频 安卓 音视频开发

Flutter 使用 Redux 的中间件实现异步状态管理

岛上码农

flutter 安卓开发 ios 开发 跨平台应用 6月月更

【技能树共建】Python 三元表达式

梦想橡皮擦

6月月更

测试的核心竞争力是什么?

老张

软件测试 核心竞争力

数据库每日一题---第2天:查找重复的电子邮箱

知心宝贝

数据库 算法 前端 后端 6月月更

JS语言基础

Jason199

js 6月月更

Django API 开发:一个 Todo 应用的后端

宇宙之一粟

6月月更

【愚公系列】2022年06月 二十三种设计模式(二十二)-模板方法模式(Template Method Pattern)

愚公搬代码

6月月更

spring event 介绍

Nick

Java spring springboot 6月月更 spring event

Linux下可执行程序的Shell传参格式规范

乌龟哥哥

6月月更

如何在项目中直接使用Hystrix?

编号94530

Java spring Hystrix 熔断器

linux驱动开发_文件系统本地挂载

DS小龙哥

6月月更

Flutter:创建透明/半透明的应用栏

坚果

6月月更

Discourse 支持中文用户名

HoneyMoose

详述Java中sort排序函数

工程师日月

算法 Java EE 6月月更

创业 2 年值得分享的事情

琚致远

创业 apache 社区

如何在 WordPress 中嵌入 iFrame

海拥(haiyong.site)

WordPress 6月月更

SAP Restful ABAP Programming 编程模型的 Action 实现和云端调试介绍

汪子熙

云计算 云原生 SAP abap 6月月更

透过华为军团看科技之变(二):机场轨道

脑极体

每日一题 | LeetCode 242 有效的字母异位词

武师叔

哈希表 Leet Code 6月月更

Visual Basic 10介绍_.NET_Jonathan Allen_InfoQ精选文章