Welcome!

Open Source Authors: Ali Hussain, Liz McMillan, Kevin Benedict, David Smith, Lori MacVittie

Related Topics: .NET

.NET: Article

Grasshopper LEAPS! Mainsoft's Visual MainWin For VB.NET and J2EE on Linux

Mono goes live! Visual MainWin is a Visual Studio add-in that adds project types for VB.NET or C# that target J2EE on Linux

Mainsoft has recently made several Mono-related announcements, centering on the new version of their Visual MainWin product, codenamed Grasshopper. Visual MainWin is a Visual Studio add-in that adds project types for VB.NET or C# that target J2EE servers on Linux; this allows a programmer to use Windows and Visual Studio to create ASP.NET and ADO.NET pages and programs that can run on both a .NET server and on a J2EE server. It does this by having two projects with the same source files, but different build files. The .NET project creates a normal .NET application, and the J2EE creates a J2EE application and the infrastructure needed for it to run under J2EE. Visual MainWin creates .NET IL (intermediate language) code using the Microsoft C# and VB.NET compilers and most of the Mono .NET libraries, including System, System.Web, System.WebServices, System.Data, System.XML, and other namespaces. It then converts the IL code to Java bytecode, and optimizes it into a .jar file. One library that is not shared between Mainsoft and Mono is the mscorlib assembly, as Mainsoft needs a special version for J2EE capability.

Visual MainWin allows full debugging capability for the final .jar running under J2EE. Neat trick. It also allows C# and VB.NET to access external Java components and .jar files, and even to use features like IntelliSense and auto complete with them; files accessing Java components cannot be shared side-by-side with .NET projects.

Visual MainWin comes in two sizes: developer and enterprise. The enterprise version is sold to corporations for thousands of dollars; effective with this release, the developer version, also known as Grasshopper, is free. It is about 110 megabytes, and can be downloaded by clicking the download button at http://dev.mainsoft.com/. You do have to register, but registration is free. One issue with the free version is that the license limits its use to small internal workgroups; enterprise use and distribution to customers are forbidden. Of course, you own your code, and the Mono libraries are X11 license, so you can use them anywhere, but a license is needed for the use of the Mainsoft redistributables. Also note that this is for Web-based applications – desktop applications using System.Windows.Forms are not supported.

Grasshopper and Mono Teamwork
The Grasshopper team has been donating code to the Mono team for quite awhile, and more recently, even merging version control for several namespaces (System.XML being the most recent). The Grasshopper site has a project for download that builds, tests, and allows debugging of the Grasshopper .NET Framework classes. You can then submit your bug fixes and enhancements to either the Grasshopper team or the Mono project, and once it is accepted, it will be included in both projects. This makes it about as easy for Windows programmers to join the Mono project as it can get.

Testing with LIW
Grasshopper is using and supporting other projects as well. If you are writing a J2EE program for Linux, but are writing it using Visual Studio on Windows, how do you test the Linux version? You do it with LIW (Linux In Windows), from the QEMU project. LIW allows you to open a copy of Linux under windows; this can easily be used to write code using Visual Studio on Windows, then test on Apache/Linux without two machines or rebooting.
  
Mainsoft also supports NUnit, two versions of the Pet Store application (Microsoft and Mainsoft), IbuySpy, and SharpZip projects. They even have the Microsoft Application Blocks running cross-platform on J2EE. All of this can be downloaded from http://dev.mainsoft.com/Default.aspx?tabid=28 .

Summer of Code
Google has opened up the “Summer of Code” project; they are paying students $4,500.00 to work on open source projects
over the summer. Students submitted tasks related to participating projects (Mono is a participating project), and those selected have until the end of the summer to complete the task and receive payment. The application deadline has passed, but you can get more information, and see the participating projects and their tasks at http://code.google.com/summerof- code.html; more info on Mono tasks is at www.mono-project.com/StudentProjects.

Mono Live!
There is now a “Mono Live” CD, which is  similar to the “Linux Live” CD from Novel/Susse and other vendors. This CD allows you to test-drive Mono on a windows machine, without modifying your computer’s environment. More information and free downloads are at www.mono-live.com/.

Coming Attractions
Portable.NET has just made a significant release, bumping the version from 0.6.12 to 0.7.0; you can download it from www.dotgnu.org/. I will cover the release in more detail next month, along with the next minor Mono update. Much to my dismay, getdotgnu.com seems to be gone; it was one of my favorite Web sites.  

More Stories By Dennis Hayes

Dennis Hayes is a programmer at Georgia Tech in Atlanta Georgia where he writes software for the Adult Cognition Lab in the Psychology Department. He has been involved with the Mono project for over six years, and has been writing the Monkey Business column for over five years.

Comments (1) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
Linux News Desk 07/28/05 05:38:46 PM EDT

Grasshopper LEAPS! Mainsoft's Visual MainWin For VB.NET and J2EE on Linux. Mainsoft has recently made several Mono-related announcements, centering on the new version of their Visual MainWin product, codenamed Grasshopper. Visual MainWin is a Visual Studio add-in that adds project types for VB.NET or C# that target J2EE servers on Linux; this allows a programmer to use Windows and Visual Studio to create ASP.NET and ADO.NET pages and programs that can run on both a .NET server and on a J2EE server. It does this by having two projects with the same source files, but different build files. The .NET project creates a normal .NET application, and the J2EE creates a J2EE application and the infrastructure needed for it to run under J2EE. Visual MainWin creates .NET IL (intermediate language) code using the Microsoft C# and VB.NET compilers and most of the Mono .NET libraries, including System, System.Web, System.WebServices, System.Data, System.XML, and other namespaces. It then converts the IL code to Java bytecode, and optimizes it into a .jar file. One library that is not shared between Mainsoft and Mono is the mscorlib assembly, as Mainsoft needs a special version for J2EE capability.