For my entire working career, I have been a Microsoft boy. I use Windows (including desktop and server operating systems) and I am a .NET fanboy. It’s a fun environment to program with, flexible and the tools are great. Also I have never really given open source much thought. Not because I don’t agree with it, or anything negative, but I have just never really bothered with it. Until recently that is.

LibreOffice
LibreOffice

About 7 years ago, I tried Open Office, and I didn’t have a very good experience. More recently I have been having more problems with Microsoft Office. It is slow, clunky, and quite unreliable in that I experience more crashes with it than I would like. I decided to try Open Office again, well more specifically Libre Office as that’s what the cool kids seem to recommend. This suite has had quite a while to mature, and you know what, I love it. It is fast, compact, and reliable. It interoperates with Microsoft Office documents perfectly and is a joy to use, so I have made this a permanent switch.

XMind
XMind

This got me thinking. If something like Libre Office is a slick as it is, and Free (Free as in cost and freedom with the source being open), then what other goodies are out there. This has led me on to switching over to many open source tools instead of commercial tools. I now frequently use Gimp and XMind. I am also looking to switch away from Enterprise Architect to an open source UML tool. I haven’t picked my final tool yet, but Modelio is looking very good.

I have also starting having a go at producing my own open source projects, and Safepad and Text Shredder are the current fruits of my labour. So, I am pretty much covered on switchnig over to Open Source productivity tools. But what about my main love of developing .NET software. The .NET libraries and compiler are Free of charge. They are not open source, although you can decompile the source easily enough to see what’s going on, but Visual Studio is not free. You do have the Visual Studio Express editions, but they are just very cut down versions of the full thing to entice you into the full Visual Studio. The commercial versions can cost anywhere from $800 to $11000, depending on what edition you go for.

If you work for any .NET developer worth its beans, then you will most likely have an MSDN license which gives you access to all these tools, but what about if you want a full featured .NET development environment, that is not propriety and closed source? Sharp Develop is the answer. I first tried SharpDevelop about 5 years ago, and it was pretty good. No where near ready for prime time, but an interesting little IDE that showed promise. I have tried it again recently, and all I can say is WOW! SharpDevelop has come on a long way.

Features

First up, you should check out the feature list at the Sharp Develop site. As you can see it is quite feature rich for free alternative. The types of projects and language supported it large too. Language wise it supports C#, VB.NET, Boo, IronPython, IronRuby, and F#. For my purposes I care mainly about C#. SharpDevelop support many useful project types too.

SharpDevelop Project Types
SharpDevelop Project Types

From a C# point of view it supports windows applications, windows services, ASP.NET MVC 3 and 4, Silverlight, WCF and WPF.

Testing SharpDevelop with an Existing Visual Studio Project

As a test I decided to try it out with an existing Visual Studio Project. For this I picked my SafePad application. This was originally developed in Visual Studio 2013 Ultimate Edition as a Winforms Application targeting the .NET 4.5 runtime. Thankfully Sharp Develop supports the Visual Studio Solution files and project files so this is a good start.

SharpDevelop with SafePad Project Loaded
SharpDevelop with SafePad Project Loaded

I was pleased to see that my project loaded up with no problems at all. All my projects where there in the solution and I could navigate around the code perfectly. Also, all my forms loaded up properly in the form designer.

SharpDevelop with SafePad Loaded and Form Designer
SharpDevelop with SafePad Loaded and Form Designer

On first compile, I encountered a few errors. These were due to the fact that in my original Visual Studio solution I was using the Visual Studio Static Code analyser, which in its current form is not supported in Sharp Develop.

SharpDevelop Build Error for SafePad
SharpDevelop Build Error for SafePad

This was easily resolved by loading up the properties for each project and disabling the static code analysis.

SharpDevelop Turn off Code Analysis
SharpDevelop Turn off Code Analysis

This isn’t really fixing the problem, but turning off the code analysis allowed the program to compile perfectly after that. You can do static code analysis in Sharp Develop with a separate FxCop add-in, but I have not tried this yet to know if I can use my existing ruleset file or have to create a new one.

Now that SafePad compiles I can run it and it works perfectly. It should do really as under the hood it is still using the same .NET compiler and libraries that Visual Studio uses. Sharp Develop does work with Mono too, but I haven’t tried this.

SharpDevelop with SafePad Loaded
SharpDevelop with SafePad Loaded

Next up I gave the debugger a try by setting a few break points. Sharp Develop contains a pretty standard set of debugging tools that instantly feels familiar when it comes to setting break points, watching variables etc. There wasn’t any surprises here, it just seemed to work, which is always a good sign.

SharpDevelop Debugging
SharpDevelop Debugging

Whilst this is only a quick little test of Sharp Develop, I am impressed so far. In terms of code editing the editor works as expected and the syntax highlighting looks sensible. There is also basic support for standard re-factorings styling. You can install an additional StyleCop plug-in which makes things a little more familiar with people used to productivity tools like resharper.

I was also pleased to see some code quality tools in SharpDevelop like a code dependency matrix. This should be familiar to anyone used to using tools like NDepend.

SharpDevelop Code Quality Analyser
SharpDevelop Code Quality Analyser

Unit Testing

Currently my Safepad application contains a comprehensive suite of unit tests. Out of the box SharpDevelop supports NUnit tests and not MSTests, so I can’t run them straight away. There is an add-in that lets you support MSTest if needed, or I could just switch back to NUnit.

Conclusion

I have been pleasantly surprised by Sharp Develop. It certainly feels ready for prime time from my initial testing. For me, the next step is to use it on a full project. I have a few project ideas in mind, so I may just use Sharp Develop as my IDE of choice. But what about in my professional work? As great as Sharp Develop is, I think I will stick with Visual Studio. I don’t think it would be wise for me to switch teams over to using this tool when we have paid up licenses to MSDN and all the support that goes along with it. It would be interesting to hear if any commercial projects are done with Sharp Develop.

Advertisements

26 comments

  1. I found like you the light of FOSS about ten years ago.

    My Windows7 x86 personal development desktop has almost everything open source except CCleaner/Sumo/MSWORDViewer/Dropbox/Skype and Google drive (and of course .Net). I do not have MSOffice or Visual studio or Flash (use smplayer/vlc for this) or even a closed source PDF viewer (I use mupdf-win32 for fast reading). I used Codelite/Eclipse/Netbeans/Mingw/JDK for my projects and when I could get by with a portable FOSS I used it ( launching with Launchy). Even on Portable Apps I use FOSS. I also look closely qt-apps.org, amazing software. Check also msys2 with it hundreds of packages (including gimp/inkscape) and use julia/winrpm to have a fresh Abiword3

    Guess what….. 0 (zero) problems very speedy PC.
    Guess what … +100% productivity
    Guess what … no viruses
    Guess what … always up to date software
    Guess what … no extra costs for upgrading hardware

    Disclaimer : I am a scientific researcher/developer, working for an institute, If you need info for a specific FOSS to do your job drop me a line.

    1. Thank you very much for your kind comments about MSYS2. I’m one of the 3-4 developers of it. Alexey Pavlov, the project’s lead is a true force of nature.

      It’s still a bit of a work in progress, and we’ve got some logistical matters to sort out, but it’s definitely a fresh (and IMHO much better) way of maintaining Windows systems and you know what? it seems to be working out pretty well so far.

      The Arch Linux guys must also get a mention for their completely amazing package management tool, pacman, which we adopted.

    1. I havn’t personally, but I know some people who use MonoDevelp/Xamarin Studio for mobile app development who seem to like it.

    1. I know Roslyn has been open sourced, but I didn’t think the .NET libraries had, unless you mean Mono?

    1. It is yeah, I love R#. For anyone that has a license for VS I would still use it, but for those that can’t afford or don’t want to pay to join the club, SharpDevelop is a much better alternative to VS Express imho

      1. Oh so it is all about religious views. This development environment is more Christian than the other.

      2. No, nothing whatsoever to do with religious views. There’s philosophical aspects to Open Source maybe you’ve confused that with religion?

        Do you deny that there’s a pragmatic aspect to being able to study, debug, modify and improve the tools you depend on for software development?

        Personally I’m very glad that my favourite IDE (Qt Creator) is Open Source and improvements from the Open Source community (which includes enlightened software development companies) help shape it.

      3. I deny that the ability to study debug and modify the tools I use outweighs the pragmatic value of tools with much higher quality in particular Sharp Develop vs VS Express. Now obviously if your product is in some way related to the tools the value may be higher. Example of products that may find more value in the ability to modify the tools are Xamarin’s products

  2. It seems that g2-b6451444b49d128e41971ce1dffa9600 has a harsh but true point. SharpDevelop is still vastly inferior to visual studio. I’ve done the poor bum software dev routine, it sucked and my productivity and growth as a developer suffered. From my experience, you should spend money for professional tools to get professional results and don’t be penny wise and pound foolish.

  3. As far as I am concerned with SharpDevelop, it is free to use for commercial and non-commercial projects. Visual Studio, a licence provided via Dreamspark or an Express licence, does not allow you to use the product for commercial purposes unless you purchase a commercial licence for it (or free through Bizspark). There is but one advantage in using SharpDevelop over Visual Studio and that is the avoidance of legal issues concerning commercialising projects developed with a non-commercial licence of Visual Studio.

    1. Interestingly Microsoft released Visual Studio Community Edition the other week which is essentially VS Pro with a different license. It is usable commercially for individuals, students etc. Also start-ups of less than 10 people, I think it is, can use VS Community and then the MSDN thereafter. Great move by MS 🙂

  4. I am a total amateur coder but would like to use SharpDevelop. It just seems much more lightweight than VS. It is possible to get SharpDevelop up and running in a few minutes, whereas a serious effort is required to get VS installed. As a beginner, I have always found VS overwhelming and SharpDevelop a bit easier, with the exception of database driven applications. That said I struggle to make good stuff in either IDE. I used to use SharpDevelop to convert C# into VB.net so that I could use it in my projects and that was helpful for a beginner.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s