Welcome!

Linux Authors: Sharon Barkai, Elizabeth White, Liz McMillan, Pat Romanski, Kevin Benedict

Related Topics: Linux

Linux: Article

Migrating Visual Basic Applications to Linux

Finding a reliable, easy-to-use porting solution for Visual Basic applications

Linux is gaining ground in the enterprise. It began on the server, but more and more Linux is being tested and deployed on the desktop. Linux solutions for typical business productivity applications, including Evolution, Mozilla, and OpenOffice, are available and included with most Linux distributions.

This availability of cost-effective hardware, reliable Linux distributions, and general-purpose business productivity applications is helping to drive Linux to the desktop, that is, except in situations where enterprise applications are custom-developed in Visual Basic, and currently run only on Windows.

Because enterprises generally don't migrate all of their systems to Linux at once, companies should seek solutions that port Visual Basic applications to Linux and continue to support Windows as well. They should also enable their developers to use a familiar development environment, a familiar language, and, most important, help preserve a company's investment in its existing code. In addition, they should seek to minimize deployment-related support problems.

What Are the Options?

The main options for migrating appli-cations cross platform include Mono/.NET, Java, and REALbasic. There are also two main issues to consider as you make a decision on which tools to use to migrate a large-scale Visual Basic application to Linux: ease of development, which is critical for your developers, and ease of deployment, which is important to end users and support staff.

Why Not .NET and Mono?

Visual Basic developers were waiting for Visual Basic 7 when Microsoft announced that the next version of Visual Basic would be VB.NET. The VB.NET environment was more modern to be sure, but very different from Visual Basic 6, and, in fact, incompatible with Visual Basic 6. For the first time since Visual Basic 2, a new Visual Basic could not open, run, and compile the previous version's code. Developers found .NET to be slower and more complex. They also found the .NET language to be very different from Visual Basic 6.

What .NET did do is provide a common language runtime (CLR) that all Microsoft .NET languages now use. Because of this, the open source Mono project was started - a platform-independent implementa-tion of the CLR. The Mono project has focused its attention on .NET, using C#, so that developers can move their projects to Linux using Mono. To use Mono to migrate projects to Linux, Visual Basic developers must learn C# and .NET, make major changes to the project code, and use the CLR.

For deployment, the 20 megabyte .NET application framework must be installed on every desktop in order for .NET applications to run. This .NET Framework attempts to maintain backward and forward compatibility between versions. A change to the .NET Framework that improves security, correctness, or functionality might also raise compatibility issues. These compatibility issues can cause software that used to work on .NET to not work when the framework is updated.

There is another deployment consideration as well. For .NET and Mono to work, the thousands of APIs available from third parties need to be standardized for Windows and Linux. As an example, we are all very familiar with the HTML standard, and we see the implications of this standard every day when we use different browser technologies. The different browsers are all required to be compliant with the HTML standard, but you can see that browsers don't render pages in the same manner, even though they are standards compliant. Real-world deployment and testing will always be a consideration for standardized environments.

What About Java?

In terms of ease of development, Java development is not much different from .NET/Mono as you have to learn a new language and deal with multiple Java Virtual Machines and their inherent incompatibilities. All of this adds a layer of complexity to the transition effort; successful transitions minimize complexity in the process.

In terms of ease of deployment, Java has succeeded on the server, but has had limited success on the desktop, because Java applications require a virtual machine to be installed on every desktop. End users or support staff must manage the compatibility of the Linux distribution and the JVM. If they're incompatible, the application cannot be used and this can end up being a support nightmare for the enterprise.

Easy Development, Easy Deployment

Using REAL Software's REALbasic, Visual Basic programmers are instantly productive because they are provided with a development environment and a language that are very similar to the familiar Visual Basic environment. In addition, REALbasic comes with a porting utility that helps convert Visual Basic projects to this similar environment. Unlike Java, however, REALbasic creates native applications that have the look, feel, and behavior of applications written exclusively for a single target platform, whether it is Windows (98/NT/Me/2000/XP), Linux, or Mac OS X.

In addition, REALbasic solves the deployment problems by creating self-contained executables. There are no libraries or frameworks to install on the target platforms. This not only makes the applications easier to deploy and support and has the added benefit of eliminating the need for DLLs (though it doesn't limit a user from using COM controls if needed for a project) for those that continue to support Windows.

There is a variety of solutions out there that can help migrate Windows applications to Linux. The key is to find those that bring your business-critical applications to Linux, don't stress out developers, and minimize deployment issues for your end users and support staff.

More Stories By Geoffrey S. Perlman

Geoff Perlman is CEO of REAL Software, Inc. A seasoned software professional, Geoff believes that programming tools should be easy to use, powerful, and provide people with the freedom to create whatever software they need for the platforms they care about. Before founding REAL Software, Geoff taught thousands of people to create software through training courses and a book he wrote for Sybex.

Comments (0)

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.