1. Computing
A Free 'Visual Studio' for VB.NET
Fidalgo RC2 Release Available!
SharpDevelop Now Supports VB Form Components!
The SharpDevelop Logo

About Visual Basic has published updates to our review of an innovative version of a completely free IDE (Integrated Development Environment) called SharpDevelop since we discovered it in 2002. This one was published in August 2004.

Those who would like the cheapest possible version of genuine Microsoft Visual Studio for VB.NET can get it this way. Those who demand free actually have two choices. (At least two! If you know of another one, let us know too!)


 Join the Discussion
Share Your Sharp Experience!
Go To The Boards!
 
 Links from the Article
•  The SharpDevelop
Home Page


•  Jesse Liberty's Book
Learning Visual Basic.NET


•  The Mono project

•  The MonoDevelop IDE Project

•  Sapien Technologies
a 3rd Party commercial VS.NET IDE


•  The Sourceforge
tracking site for SharpDevelop

 

One completely free choice is to simply develop using a text editor and the free compiler that is downloadable from Microsoft. The compiler is part of the .NET SDK. As an example of how you can use this compiler, Jesse Liberty wrote his great book Learning Visual Basic.NET primarily using this idea.

If you believe that black and white DOS boxes belong in the previous century, however, another choice is to use SharpDevelop. While it's distinctly different - a lot is missing in comparison to Microsoft's Visual Studio - it does give you the fully graphical IDE that we have come to expect.

And there's new hope on the horizon! Miguel de Icaza's Mono project (now a part of Novell as a result of Novell's purchase of Ximian in August 2003) is developing MonoDevelop, a port of SharpDevelop for the Mono version of the .NET Framework. They don't have anything working for VB yet, but the Mono project itself has a stated goal of support for VB - and even some VB deliverables for the Framework.

The most recent release of SharpDevelop is downloadable from the SharpDevelop website. The GPL licence that guarantees freely available distribution. The current version is described as RC2 (Release Candidate 2). Just to give you a yardstick to compare this with, Sapien Technologies has has a similar product available for purchase at $250. Part of the requirement to use SharpDevelop is to download and install the Microsoft .NET SDK. (This is the requirement that is being eliminated by the Mono project.)

All done? Great! Fire up the tool, then, and the first thing you should see is the SharpDevelop "Start" page.

#Develop Start

If you have used Visual Studio .NET, a lot of this will look familiar, some will not. One thing that will not look familiar is the reference to Combines in the buttons at the bottom. As they explain in the Help for SharpDevelop, "A 'Combine' is a collection (a 'combination') of one or more Projects." In Visual Studio .NET, a 'Solution' is a collection of one or more Projects plus 'Solution Items' which can be files, folders, or references. The reason for this change in name was on the SharpDevelop message board, and it's a good illustration of how these products are different.

"The internal structure of a SharpDevelop project is different from that of a VS.NET project. Most notably, SharpDevelop allows for nested projects which are not supported by VS.NET."

Visual Studio has so many different features that most of us will never explore them all but SharpDevelop is more ... streamlined. The list of windows includes:

  • Files
  • Unit Test
  • Projects
  • Output
  • Properties
  • Tools
  • Task List
  • Classes
  • Help

But the SharpDevelop team has managed to make them dockable and they combine into a common tab bar just like Visual Studio. And they even have the classy "Auto-Hide" pushpin that is new to Visual Studio .NET. After that the selection gets a little thin.

The VB example in the Help system does run but the illustrations and code samples don't match the code in the RC2 version. The Help uses the "MessageBox" object to display the traditional "Hello World" message in the Main subroutine, rather than displaying it in a TextBox as you might expect. Why? Well ... it used to be that no TextBox was available for SharpDevelop VB. With the Fidalgo RC2 release, the VB components toolbox has reappeared but the documentation doesn't describe it yet!. (Another odd quirk that will result from trying to follow their First VB program example is that the MessageBox doesn't appear until after the form is closed. But this is the same way Visual Studio would work if you duplicated the code there and is really a result of not having a form event for the MessageBox code when the example documentation was written.)

Clearly, the weakest part of SharpDevelop, at least for people who need documentation to use it, is the documentation. Part of that is due to the fact that the system itself is a moving target and, as anyone who has worked on a large project knows, the documentation always seems to have the lowest priority.

The mismatch of the Visual Basic "first project" with the actual appearance of the system is a good example. Starting 'from the top' in the Help system reveals more examples constantly. The documentation speaks of "Scouts" which seem to be the same as "window". (Does Microsoft have the term "window" copyrighted?) But you can't see that term in the real product anywhere. Well ... except for something else that's new and not in their documentation called the Assembly Scout.

Assembly Scout is something else new and it is NOT just a window. It looks something like their version of an Object Browser and it also looks really cool! It would be even more cool if there was any information about how it works available. My initial impression is that it's better than Microsoft's Object Browser. For example, there is the quick and easy ability to create an XML file from any of the types displayed by the Assembly Scout. Here's an XML file of the System.Drawing object displayed in IE. (After removing the reference to the XML2HTML.XSL stylesheet that isn't required in IE from their generated XML file.)

Assembly Scout

And yet another example is that the Documentation only mentions two VBNET project templates. But the actual project now has seven! I don't want to knock them for vastly expanding their VBNET support but ... well, it would be nice to have something written down about how to use the new ones.

You can do an interesting experiment to prove to yourself that SharpDevelop really does create .NET compatible code. When you follow the tutorial in their Help system and create the HelloWorldVB application, a HelloWorldVB.exe file is generated. Microsoft supplies a utility called ILDASM as part of the Microsoft .NET framework SDK that's used to debug the MSIL (Microsoft Intermediate Language) files that their own tools generate. You can open the SharpDevelop created HelloWorldVB.exe with no trouble using Microsoft's ILDASM program:

ILDASM

The very existance of a working IDE (actually, a really good looking IDE - I like their choice of colors and graphics) that you can freely download and use is something worth trying out. In general, this is an amazing accomplishment by the SharpDevelop team.

If you would like to track the progress of the project, current progress is summarized on a great page at Sourceforge and the system is also downloadable there.

©2014 About.com. All rights reserved.