Jonas Martinsson

Subscribe to Jonas Martinsson: eMailAlertsEmail Alerts
Get Jonas Martinsson: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Related Topics: RIA Developer's Journal, Apache Web Server Journal, Java Developer Magazine

RIA & Ajax: Article

Deploying an ASP.NET AJAX RSS Reader on Linux

Unleash your creativity

Have you ever wished you could run ASP.NET applications on Linux, without having to rewrite your code or leave the Visual Studio development environment? In this article, I show you how to port Steve Clements’ AJAX ASP.NET RSS Reader to native Java and deploy it to Apache Tomcat on Linux. I also show you how to add an AnimationExtender and a HoverMenu from the AJAX Control Toolkit in Visual Studio, while targeting Java.

How is this possible? The answer is to use Grasshopper, a free Visual Studio-based SDK built by Mainsoft in collaboration with the Mono open source community. Grasshopper 2.2 introduces full support for AJAX and seamlessly integrates with ASP.NET 2.0 AJAX Extensions and AJAX Control Toolkit, so you can add popular features such as partial-page rendering, Accordion navigation, and rounded corners by simply adding a few server controls.

In this article, I’ll show you how to:

  • Analyze the source code to identify possible porting issues.
  • Convert the RSS Reader and RSS Toolkit to Grasshopper project types.
  • Build the ASP.NET solution for Java.
  • Use the AJAX Control Toolkit to add rich client-side functionality.
  • Deploy the ASP.NET application on Linux.

Analyzing the Source Code
First, identify the third-party dependencies in the source code. The RSS Reader has two: the AJAX Control Toolkit and ASP.NET RSS Toolkit, both of which are open source projects hosted on CodePlex. Since these are .NET libraries, they won’t run on Java until you cross-compile them to the Java platform.

There are various strategies for porting third-party dependencies to Java. You can:

  • Check Mainsoft’s samples and code blocks to see if the component has already been ported.
  • Port the component to Java EE yourself, if the source code has a permissive license.
  • Check if the vendor has a Java EE alternative. Many third-party components are available for both the .NET and Java platforms, including Crystal Reports, Corda OptiMap, and Software FX.

The AJAX Control Toolkit belongs to the first category; port the RSS Toolkit, licensed under the permissive Microsoft Public License (Ms-PL), next.

Converting the Web Application
Let the porting process begin! First install Grasshopper, a free Visual Studio add-on from Mainsoft that allows all the magic between .NET and Java to happen. Grasshopper is in essence a cross-compiler that turns .NET bytecode (MSIL) into Java bytecode. The build output is a binary .jar file, not Java source code, although you could run the bytecode through a Java disassembler if you wanted to. Grasshopper integrates seamlessly with Visual Studio’s build system and triggers its own code validation, code generation, and deployment build steps after Microsoft’s regular build to MSIL is finished. On top of that, Grasshopper comes bundled with the Apache Tomcat Web application server, so there is no need to deploy test builds on a remote Web server during development.

More Stories By Jonas Martinsson

Jonas Martinsson is an entrepreneur and a member of Mainsoft's development team. He helped to integrate Mainsoft's .NET-Java EE interoperability products with the Visual Studio IDE.

Comments (2) 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
Jonas Martinsson 05/27/08 04:24:47 AM EDT

Prasanna, you can download the project source code at http://dev.mainsoft.com/Portals/0/Downloads/RSSReader.zip

Prasanna 05/22/08 09:22:37 AM EDT

Liked the article "Deploying an ASP.NET AJAX RSS Reader on Linux", if you could provide the document a little more detailed with sample examples, that might have been a great value add