Previously, I've only used Microsoft-centric solutions, but for an upcoming ASP.Net project I'm considering using Mono and hos开发者_C百科ting it on a Linux Amazon EC2 instance. Based on the responses to my previous question, this sounds doable. However, I'm most comfortable with VB.Net and I'm wondering how well Mono supports it.
Does anyone have first-hand experience writing ASP.Net applications for Mono using VB.Net? If so, I'd like to know how it went, what kind of compatibility issues you ran into, and if you consider Mono's VB.Net support ready for use on a production site?
I know Mono's C#.Net support is very good, so that's my fall-back plan, but I'd really prefer to use VB.Net.
Note that you can also use .Net's precompilation for ASP.Net, and then all the VB.Net is compiled, so it doesn't matter how good or bad Mono's support of VB.Net is.
Precompilation also removes the initial compilation hit when your pages are first hit.
Just another thing to keep in mind as a fallback in case you hit bugs in Mono's VB.Net compiler.
According to the Mono people, the VB.Net support in Mono is relatively new. However, they contend that it is totally complete and the VB.Net compiler etc. pass all of their unit tests. That does not mean that there won't be bugs, as with anything.
You should most definitely give it a try. VB.Net has complete support in Mono and it shouldn't behave any differently than it would on a Windows machine (though, as always, no guarantees).
The VB compiler hasn't been abandoned, it's just a lack of time that is preventing the required work to update to newer VB versions.
Currently vbnc has support for VB 8 (aka Visual Studio 2005), with a few minor features from newer VB versions.
The easiest and safest would be to precompile your site on Windows, in which case you won't have to deal with any potential compiler issues (and you can use the most recent Visual Studio version). If you take this route you shouldn't run into any bugs you wouldn't hit using C# [1]
[1]: You'd be referencing one assembly more: Microsoft.VisualBasic.dll, which could be a source of bugs - but if you adhere to what is considered good programming practice for VB (turn on Option Strict) the chances that you'll hit any significant new bugs is pretty low.
It does seem that active development and support by the Mono project team continues for VB.NET. The (draft) release notes for the next release, 2.10, includes an item regarding the VB compiler which is listed as one of the release's major highlights:
VB Compiler
The VB Compiler (vbnc) has been upgraded to use cecil/light instead of Reflection, which makes it possible to create assemblies with different runtime versions using only 1 compiler. That is very similar to the changes that we did to the Mono C# Compiler detailed above.
By default vbnc will now compile to the 4.0 profile, and a new script (vbnc2) has been added to compile to the 2.0 profile.
精彩评论