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
When 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 Resharper
In 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 tools
The 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.
SharpDevelop wins this one easily.
Targeting .net frameworks
Both IDE’s by default target .net Framework 3.5 but also support 3.0 and 2.0. In addition SharpDevelop supports compact framework 3.5 and 2.0.
Another point for SharpDevelop.
A big win for the express editions.
The 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.
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.
Matt 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 syntax highlighting||Yes||Yes|
|Windows Forms Designer||Yes||Yes|
|Web Forms Designer||No||Provided with Visual Web Developer|
|Languages Supported||C#, VB.NET, Boo,F#, Python, ILASM||C#, C++, VB.NET, J#|
|Plug-in support||Yes||No explicit support for plug-ins however third party plug-ins can work with the Express edition.|
|Insert PInvoke Signatures||Yes||No|
|Testing Regular Expressions||Yes||No|
|Project and Solution File Format||MSBuild||MSBuild|
|Refactorings||Rename, Extract Method, Extract Interface||Rename, Extract Method|
|Go to definition||Yes||Yes|
|Code generation||Yes. Not as powerful as Visual Studio’s Code Snippet Manager.||Yes|
|Database Explorer||Yes. Lacking support for many database providers.||Yes|
|Data Sources View||No||Yes|
|Add Data Source Wizard||No||Yes|
|Document Outline View||No||Yes|
|Resources||Local only||Local and project|
|ActiveX Toolbox Items||Partial – need to generate .NET interop library||Yes|
|Targeting different .NET frameworks||Yes||Yes|
|Code Completion for different .NET frameworks||Yes||Yes|
|Reporting||Yes||Yes through the report viewer plug-in|
|Database Designer Tools||No||Yes|
|Integrated NAnt support||Yes||No|
|Integrated WiX support||Yes||No|
|Integrated FxCop support||Yes||No|
|XML documentation preview and generation||Yes||No|
|Build in webserver||No||Yes|
|Integrated subversion support||Yes||No|