Read Digital Edition


ADS BY GOOGLE
Top Three Links You Must Click On


Migrating .NET Applications to the Linux Platform
A long-term development and porting solution

The move to Enterprise Linux is accelerating. Enterprise Linux, provided by RedHat, SuSE, and a number of open source projects, supports clustering, load balancing, and high availability. Yahoo is using Linux with the MySQL open source database, the fastest growing database in the industry, and Hewlett Packard recently announced support for an enterprise stack of Linux, JBoss, and a MySQL database.

While companies are motivated to migrate to Linux, they are encountering significant obstacles. These include running the thousands of lines of existing Visual Basic .NET and C# code on Linux as well as implementing a full-running system without interrupting productivity. According to Forrester, more than half of today's enterprise development activity is being done in .NET, and many firms are experiencing a .NET barrier in moving to Linux.

The Horrors of Porting

Until recently, porting .NET Web applications and Web services to Linux has required major investments in Linux and J2EE skills, tools and resources, as well as delayed time-to-market. Linux migration could be done by moving to JSPs and Java on a Tomcat server. The ASP.NET code would be ported to JSPs and the C# code to Java classes. However, the .NET development team had to contend with a new development environment and the challenge of learning the JSP programming model. On top of this, components in the ASP.NET model, such as Web controls and ADO.NET, do not have simple equivalents in the J2EE world. The .NET-J2EE benchmarks have shown that equivalent J2EE front-end code has significantly more lines of code (LOC) than does a .NET implementation.

The Promise of Mono

The open source Mono project gives .NET developers a much more viable solution to the problem. With Novell's release of Mono 1.0, developers can use a .NET platform on Linux for their ASP.NET and C# code. Mono developers remain in the .NET world and are able to deploy and run existing code with little or no changes. In fact, the city of Munich has used Mono to migrate their ASP.NET and Web services applications to deploy on 300 Linux servers. Mono provides the Linux .NET developer with an implementation of the standard CLI runtime, a C# compiler, and implementations of the .NET APIs including System, ASP.NET, and ADO.NET classes. Mono provides additional specific APIs that include bindings for the GTK UI toolkit and graphics libraries.

ASP.NET and ADO.NET on J2EE

Mainsoft's Visual MainWin for the J2EE platform (see Figure 1) delivers the .NET-to-Linux migration on enterprise-ready J2EE application servers such as open source JBoss as well as BEA WebLogic and IBM WebSphere.

By delivering the Mono .NET APIs for ASP.NET and ADO.NET classes on the J2EE platform, Mainsoft enables enterprises with a large staff of Microsoft developers to write Web applications and Web services in C# or Visual Basic .NET and deploy them on stable and scalable J2EE application servers.

How Visual MainWin Works

Visual MainWin compiles Microsoft Intermediate code to standard Java bytecode (see Figure 2). The Mono .NET classes are rehosted on standard J2EE application servers. This means that a .NET program, for example, ASP.NET and C# or Visual Basic.NET code, will be deployed as a pure Java application. The Visual MainWin programming model provides seamless integration with Java classes, which are exposed to the .NET programmer as .NET classes. Back-end EJBs are accessed simply as .NET classes, without the .NET programmer having to deal with the complicated mechanics of J2EE EJB lookup and RMI. Since Mono does not yet support the .NET Enterprise Services, transactional components can be implemented as EJBs in Java, and accessed seamlessly from an ASP.NET front end.

Visual MainWin provides complete integration with the Microsoft Visual Studio .NET development environment, allowing .NET developers to remain within their familiar environment. The developer simply builds a .NET project configured for J2EE servers; the complete build process from Microsoft C# compilation through binary compilation to Java bytecode validation of Java references, as well as the packaging as J2EE .jar and .war files, is performed within Visual Studio. Application deployment on J2EE servers is managed, again, from within Visual Studio .NET. The Visual MainWin integrated debugger enables C# or VB.NET programmers to debug applications running in the J2EE application server from the .NET source code.

Sustained Development

As an integrated Visual Studio development environment, Visual MainWin can be used as a strategic, long-term development and porting solution for the Linux platform. It allows companies with Microsoft resources to develop and maintain their applications across the .NET and Linux platforms, boost developer productivity, and speed time to deployment, all of which are key factors in the Linux TCO equation.
About Yaacov Cohen
Yaacov Cohen is the president and CEO of Mainsoft Corporation.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

So let me try and understand this. A Visual Studio user can write an ASP.NET application in C# and run it on a Linux server? So, can it be concluded that Linux running MySQL and Apache web services can host an ASP.NET C# based web site?


  Subscribe to our RSS feeds now and receive the next article instantly!
In It? Reprint It! Contact advertising(at)sys-con.com to order your reprints!
Subscribe to the World's Most Powerful Newsletters

ADS BY GOOGLE
There's a lot of talk about how we need to focus on our buyers' issues and provide them educational ...
SugarCRM, the world’s leading provider of open source customer relationship management (CRM) softwa...
SYS-CON Events announced today that the "Diamond" and "Platinum" sponsorship opportunities for the u...
SYS-CON Events announced today that the "show prospectus" for the 5th International Cloud Computing ...
This past weekend I set out explore some of the extension capabilities of Google Wave. One of the we...
More good news for cloud computing! Google last week released its once mysterious Chrome Operating S...
In CloudBerry Lab we are striving to make our customer service better. In this competitive market wi...
We talk a lot about social media on Marketing Trenches. And for good reason – Social media seems to...
Intel has put out its promised beta SDK for Windows (C and C++) and Moblin (C) developers working on...
InformationWeek stumbled on a Microsoft patent application dating back to 2006 deceptively titled “M...
Berlin-based ThinPrint AG, the printer virtualization house, thinks it’s got a cloud solution for th...
Behaving like it’s got a future, Sun Monday put out what it calls a significant new version of Virtu...
IBM has acquired Guardium, a seven-year-old subsidiary of Israel’s Log-On Software transplanted to M...
But on the web, access to services is implicit in the fact that the business is offering the service...
Oracle has offered to cordon off MySQL inside a combined Oracle-Sun to get the European Commission t...
The second set of charges filed last week against Indian outsourcer Satyam Computer Services founder...
Gartner told Reuters that it overestimated how many PCs Acer shipped in the last seven quarters by a...
Gartner thinks the server business has stopped sliding into the abyss. Third-quarter sales weren’t a...
Gartner is buying ~$40 million-a-year AMR Research Inc for close to $64 million in cash. AMD special...
Singed by user reaction to its plans to up the price of its support contracts, SAP Tuesday postponed...