Meta

Month: February 2009

For developers who don’t know, SharpDevelop is a great free IDE for developing .Net framework applications. SharpDevelop is comparable to the express editions of Visual Studio. So since they are comparable, I will compare them in this post.

On februari the 10th 2009 sharpdevelop 3.0 was released, you can download it here. The version before this one was 2.2 and was released on the 8th of august of 2007, that is a long gap. I thought that SharpDevelop was dead. The 3.0 version shows that it is alive and kicking.
The visual studio express editions are also great. Just the idea of giving away a free IDE to starting developers or just developers who can’t or will not pay for the full editions of Visual Studio is magnificent. The express editions can be found here

First ImpressionsWhen you spent a lot of time in Visual Studio, starting up the express editions will make you feel right at home. Everything is where you think it is. Stating SharpDevelop will make you feel a bid off. It is like someone has build a new house, redecorated it and made it look like your own house, but you know it isn’t. Still once you see there is enough beer in the fridge and have found the remote , you can have lot of fun in the new house also.Spoiled by ResharperIn my normal development I am totally spoiled by Resharper. These IDE’s don’t support Resharper. How easy are they to use without Resharper.
Renaming a class with Resharper also renames the file that the class is in, if you want it to. Resharper also renames all references to your renamed class and even gives you a change to change them in comments AND strings. SharpDevelop does not rename the file directly but if it detects that the class and filename are different it gives you the option to rename the file from right clicking the class name. SharpDevelop does also rename all references but does not look at comments by default. The Express Editions give the option to rename also in comments OR strings, it does not rename the filename.

When I use a class that is in the same solution but in another project Resharper gives me the option to reference the project and insert a using statement with a single shortcut. After making a reference in SharpDevelop and the Express Editions by hand you can add the using statement with a right and left click.

In general neither wins, only Resharper wins.

Add Ins and external toolsThe express editions let you define your own external tools, so you can startup notepad or ildasm from your IDE and pass in parameters from your IDE. SharpDevelop lets you do the same but by default has already defined some of them. Extra to this SharpDevelop has a Regular Expression Toolkit a resource toolkit, support for subversion, FXCop and stylecop. I can see a lot more of these add- ins for SharpDevelop being developed. The express editions don’t have and probably never will have these possibilities because , and I quote :” We made a business decision to not allow 3rd party extensibility in Express.” From this post.

Web DevelopmentThis one makes me a little sad. SharpDevelop just fails short to the “visual web developer express edition”. The express edition has a graphical designer for the pages, split screen functionality, javascript debugging possibilities and his build in web server. SharpDevelop has not.

A big win for the express editions.

Little AnnoyancesThe express editions don’t support solution folders, luckily SharpDevelop does.
If you want to combine a console or windows forms application with a web application or web service in a single solution the express edition don’t support this, SharpDevelop does.

Two point for SharpDevelop.

ConlusionIf I have to choose for web applications than the express edition wins easily. The build in webserver, the graphical designer with split screen functionality and javascript debugging just make it too good.
If you think you really need to work with a database from within the IDE than also SharpDevelop is not for you. If you want to create a windows forms or console application both will work fine, if you want to build these applications more seriously and use a source control system, static code analysis and stylecop from the IDE you need SharpDevelop !

If the express editions would allow third party extensibility (Resharper) and solve my little annoyances, it would be number one.
If SharpDevelop would get a resharper add-in, a graphical designer for web pages and a build in web server, it would be number one.

Feature TableMatt Ward did a comparison of SharpDevelop 2.1 and the Express Editions at that time here. I stole his table and reevaluated. Thanks Matt I hope you don’t mind. The result is shown below:

Feature

SharpDevelop 3.0

Visual Studio Express Editions

Code auto-completion

Yes

Yes

Code syntax highlighting

Yes

Yes

Windows Forms Designer

Yes

Yes

Web Forms Designer

No

Provided with Visual Web Developer

Code Coverage

Yes

No

Unit Testing

Yes

No

Languages Supported

C#, VB.NET, Boo,F#, Python, ILASM

C#, C++, VB.NET, J#

Help documentation

No

Yes

Plug-in support

Yes

No explicit support for plug-ins however third party plug-ins can work with the Express edition.