AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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:001241
用户头像

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

关注

评论

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

万字长文,助你吃透Eureka服务发现机制!

攀岩飞鱼

分布式 微服务 Eureka

啪啪,打脸了!领导说:try-catch必须放在循环体外!

王磊

Java 性能优化 性能 java编程

深度解读 Flink 1.11:流批一体 Hive 数仓

Apache Flink

大数据 flink 流计算 实时计算

不想被下载限速,教你自建属于自己的云盘!

小傅哥

小傅哥 云服务 云盘 在线网盘

除了直接看余额,谁更有钱还能怎么比(三)

石君

零知识证明 多方计算 同态加密

搞定 HTTP 协议(一):HTTP 与网络基础

零和幺

技术 大前端 HTTP

我的 Windows 利器

玄兴梦影

工具 Win

游戏夜读 | 2020周记(5.24-5.31)

game1night

CPU的性能,编译器是这样压榨的!

GPU

算法 cpu 编译器 程序语言

关于区块链的“去中心化”,90% 的人都搞错了

CECBC

CECBC 区块链技术 去中心化 专制

iOS 动画 - 窗景篇(一)

柯烂

ios objective-c swift 移动应用 动画

信息的表示与存储-整数的表示

引花眠

坏的开始是成功的一半

escray

Linux 自动化运维工具 ansible

杨仪军

Linux 运维自动化

【求锤得锤的故事】Redis锁从面试连环炮聊到神仙打架。

why技术

redis 分布式锁 分布式系统

产品经理的商业能力

punkboy

程序人生 产品经理 商业 商业模式 商业价值

[Redis] 你了解 Redis 的三种集群模式吗?

猴哥一一 cium

redis redis高可用 redis哨兵模式 群集安装

ARTS打卡 第2周

引花眠

ARTS 打卡计划

赢的境界 - 双赢思维

石云升

创业 创业心态 双赢思维

这些Java8官方挖的坑,你踩过几个?

牧码哥

Java 踩坑 加密 「Java 25周年」

从技术到管理,我在极客时间的成长历程

邓建春

深入理解ContextClassLoader

Skye

深入理解JVM ContextClassLoader

【大厂面试01期】高并发场景下,如何保证缓存与数据库一致性?

NotFound9

Java MySQL 数据库 redis 后端

深入理解JVM类加载机制

Skye

类加载 深入理解JVM

MySQL实战笔记-事务隔离和MVCC

shiziwen

MySQL 学习 事务隔离级别

java的时间利器:joda

毛佳伟🐳

Java

匆忙的一周 ARTS第二周

困到清醒

是公司养活了你,还是你养活了公司?

四猿外

生涯规划 程序员 个人成长

深入理解ClassLoader

Skye

类加载 深入理解JVM ClassLoader

架构学习历程

机器学习算法评估指标——2D目标检测

做技术BP的文案Gou

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