Screenshot Preview

MonoTools for Visual Studio

by Novell - Product Type: Add-In

Port your .NET applications to Mono and Linux without leaving Visual Studio. Mono Tools for Visual Studio is a commercial add-in for Microsoft Visual Studio that enables developers to write .NET applications for non-Windows platforms within their preferred development environment. It allows developers to build, debug and deploy .NET applications on Linux, while continuing to leverage the extensive ecosystem of code, libraries, and tools available for .NET.

What's New in MonoTools 2.0 for Visual Studio:

Soft Debugger
One of the biggest changes for MonoTools 2.0 (at least under the hood) is that Novell has switched to Mono's new Soft Debugger.

The soft debugger was originally released for MonoTouch, allowing developers to remotely debug applications running on Mono on the iPhone. Unlike the traditional "hard debugger" (mdb), which operates outside of the Mono runtime to start and pause an application and poke at memory contents, the soft debugger is built into the Mono runtime and cooperates with the runtime to provide the necessary functionality to the debugger.

Platform Support - The biggest benefit of supporting the soft debugger in MonoTools is that users can now use Visual Studio to debug Mono running Linux, Windows, and Mac OS X.

Debugging Mono on Windows is an especially important improvement because it can simplify the porting process. When porting an application to Mono, Novell always recommended people port first to Mono on Windows to find any differences between Mono and .NET, and then port to Mono on Linux to find any differences between Windows and Linux; however, the lack of local debugging support on Windows in MonoTools 1.x made it difficult to take this approach.

Better Debugging Experience
The debugger in MonoTools 2.0 also adds several features that were notably absent, including support for adding or removing breakpoints while running, and support for setting a breakpoints in partial constructors (most commonly effecting the Windows.Forms designer in Visual Studio).

Profile-Based Deployment
MonoTools 2.0 introduces MonoTools Server Profiles. Profiles allow you to save your frequently used servers (and local Mono instances) so you can easily switch between them. Think of them like "bookmarks" for your servers, saving you the effort of keying server names/ip addresses, or waiting on Mono Tools to find nearby servers.

However, profiles can store more than just the server address. Each profile can have completely independent settings, allowing you to set up things like IOMAP, so you can quickly switch between profiles with case-sensitivity enabled or disabled.

You may also note a few new settings are available. Novell got several feature requests for allowing applications to be run with arbitrary environment variables or arguments passed to Mono, which can now be assigned per-profile.

Deployment Speed
Another new improvement in MonoTools 2.0 is deployment speed. In 1.1, Novell introduced an improvement that saved the step of recopying files to the server if they were unchanged since the last run. This helped considerably, but copying files could still be unacceptably slow at times.

For 2.0, this has been totally rewritten from scratch. Novell now copy files over HTTP instead of remoting. Now MonoTools not only copies files that have changed since the last run, it also compresses all files into one zip file that is then transfered to the server.

For the usual test case of BlogEngine.NET, it could take up to 30 seconds to copy for a first run in MonoTools 1.0/1.1. In 2.0, it takes about 1-2 seconds to compress the code, send it, and decompress it. Subsequent, unchanged runs are nearly instantaneous, making the "debug, fix, test" cycle much faster.

Platform Support
MonoTools 2.0 supports running and debugging on many more platforms than 1.0/1.1.

1.0/1.1 supported:

  • Windows - Run
  • Linux - Run, Debug

2.0 now supports:

  • Windows - Run, Debug
  • Linux - Run, Debug
  • Mac - Run, Debug

This should make it easier to target every desktop platform.

Mono Tools 1.1 update features the following improvements:

  • Smarter Remote File Copying
  • Automatically Detect Future Updates
  • Preview of Visual Studio 2010 Support
  • Easier Packaging of Precompiled Web Applications

Develop and migrate .NET applications to Mono on Linux without leaving Visual Studio.
Mono Tools for Visual Studio is a commercial solution that enables developers to write .NET applications for non-Windows platforms within their familiar Visual Studio environment. It allows developers to build, debug and maintain commercial-quality .NET applications for Linux, UNIX and Mac OS X, while continuing to leverage the extensive .NET ecosystem of code, libraries, and tools.

Unlike other application porting approaches that require you to learn new programming tools and rewrite/re-architect applications, Mono Tools for Visual Studio gives you the ability to exploit .NET skills and leverage existing application and business knowledge to increase deployment flexibility and access new markets. In this way, developers can reduce development complexity, and businesses can increase revenue opportunities and avoid platform vendor lock-in.

Mono Tools for Visual Studio is provided as a Windows installer (.msi) that integrates Mono-specific menus and templates into Visual Studio, providing an integrated experience for analyzing, testing, debugging, and deploying .NET applications on Mono, for use on Linux, UNIX and Mac OS X. Additionally, pre-configured virtual machines and packages for SUSE Linux Enterprise Server and openSUSE are provided to simplify configuration of target Linux platforms.

MonoTools for Visual Studio integrates several key pieces of functionality directly into Visual Studio’s menu system.

Mono Tools for Visual Studio Features:

Scan for Mono Compatibility - Scan your application with the Mono Migration Analyzer (MoMA) directly in Visual Studio.
There are some common stumbling blocks that keep .NET applications from being able to run on Mono. These can be due to using parts of the .NET framework that Mono does not implement or implements differently, or reliance on native platform code like user32.  The Mono Migration Analyzer (MoMA) can scan your compiled assemblies for these types of issues and point them out, making it easy to find them and work around them.

Test on Windows - Compile and launch your application running in Mono on Windows.
When porting your application to run on Mono on Linux, there are two types of issues that can occur: differences between Mono and .NET and differences between Windows and Linux.

One way to make this easier is to use two steps. During the first step, use Mono on Windows to work out any issues arising from differences between Mono and .NET. After your application works on Mono, then focus on porting it to Mono on Linux.

Test on Linux - Automatically compile your application and launch it on your Linux PC or virtual image. 
When porting your application to run on Mono on Linux, there are two types of issues that can occur: differences between Mono and .NET and differences between Windows and Linux.

While running an application on Mono on Windows will help work through any issues arising from differences between Mono and .NET, running the application on Mono on Linux will simplify the process of working through issues that could be caused by differences in Windows and Linux.

Debug Remotely on Linux - Debug your application running on Mono on Linux directly in Visual Studio, just like you normally do.
Often, the best way to work through an issue will be to debug the application on the target environment. Debug on Mono on Linux brings this functionality to Visual Studio developers by enabling remote debugging of Mono applications running on Linux.

Package for Linux - Visually create a SUSE RPM installer package for your application.
Once your application successfully runs on Mono on Linux, it's time to package it up for distribution.

  • Add a new item to your project.
  • Choose "Linux Package Definition".
  • On the "General" tab, fill out basic information about your package.
  • On the "Files" tab, add the files you wish to include in your package.
  • On the "Dependencies" tab, you can set what Mono libraries or other packages your application depends on. You can also specify what dependencies your application provides.
  • Once you click "Build Package", your package will be built and ready for you (and your users) to install on SUSE Linux.

Create a SUSE Linux Appliance - Bundle your application into a SUSE Linux appliance for easy distribution to your users.
With SUSE Studio, you can bundle your application and a customized version of SUSE Linux into a fully configured, ready to go appliance. With everything packaged in a single virtual machine, distribution and setup is simple for both you and your users.


Product Search

Enter search words:

Why buy from ComponentSource?

ComponentSource offers a unique global service, used by over 1,000,000 software developers worldwide.

More Info | About Us