Mono的VB.Net支持是否准备好用于生产站点?

以前,我只使用以微软为中心的解决scheme,但对于即将到来的ASP.Net项目,我正在考虑使用Mono并将其托pipe在Linux Amazon EC2实例上。 基于对我以前的问题的回应,这听起来是可行的。 然而,我最适合VB.Net,我想知道Mono如何支持它。

有没有人有使用VB.Net编写单声道ASP.Net应用程序的第一手经验? 如果是这样,我想知道它是怎么回事,你遇到了什么样的兼容性问题,如果你考虑Mono的VB.Net支持准备在生产站点使用?

我知道Mono的C#.Net支持非常好,所以这是我的回退计划,但我真的更喜欢使用VB.Net。

VB编译器还没有被放弃,只是没有时间阻止所需的工作更新到较新的VB版本。

目前vbnc已经支持VB 8(也被称为Visual Studio 2005),并具有较新的VB版本的一些小功能。

最简单和最安全的就是在Windows上预编译你的站点,在这种情况下,你将不必处理任何潜在的编译器问题(你可以使用最新的Visual Studio版本)。 如果你走这条路线,你不应该遇到任何你不会用C#打的bug。

[1]:你会更多地引用一个程序集:Microsoft.VisualBasic.dll,这可能是一个错误的来源 – 但如果你坚持什么被认为是良好的VB编程实践(打开选项严格),你的机会任何重大的新bug都会很低。

请注意,您也可以使用.Net的ASP.Net预编译,然后编译所有的VB.Net,所以不用担心Mono对VB.Net的支持有多好。

预编译还会删除首次打开页面时的初始编译命中。

还有一件事要记住,就是在Mono的VB.Net编译器中遇到错误。

据Mono人介绍,单声道的VB.Net支持是比较新的。 然而,他们认为它是完全的,VB.Net编译器等通过了所有的单元测试。 这并不意味着不会有任何错误。

你绝对应该试试看。 VB.Net在Mono中有完整的支持,它的行为不应该和Windows机器上的行为不同(虽然一如既往,没有保证)。

似乎Mono项目团队的积极的开发和支持继续VB.NET。 下一版本2.10的(草案)发布说明包括一个关于VB编译器的项目,该项目被列为发布的主要亮点之一:

VB编译器

VB编译器(vbnc)已升级为使用cecil / light而不是Reflection,这使得可以使用仅一个编译器创建具有不同运行时版本的程序集。 这和我们上面详细介绍的Mono C#编译器的变化非常相似。

默认情况下,vbnc现在会编译到4.0配置文件,并添加了一个新的脚本(vbnc2)编译到2.0配置文件。