Despite using Linux significantly over the past couple of years, I have never done any desktop application development with it (instead I spent time wrangling with PHP and other web stuff). As a result, I have spent a significant amount of time this weekend trying to wrap my head around MonoDevelop. Despite being a port of SharpDevelop, it is a bit harder to use than its Windows cousin. The vast majority of my difficulties with it stemmed from its integrated GUI designer, Stetic. Just when I was worried that it was still too unstable to use and that I should switch to using an external version of Glade to layout applications, MonoDevelop decided to stop crashing my computer.[1]

I still did not understand how Stetic worked, especially how the components I added would be incorporated into my code. Many thanks to Idan for explaining how to use "Bind to Field" in his overview of Stetic. Since Stetic is a new addition to MonoDevelop, most of the online resources about MonoDevelop and GTK# programming that I have found assume that you are using an external program like Glade to create layouts. This means that good resources about Stetic are hard to find.[2]

I am still having issues with the idea of "packing" components into forms, and I have forgotten far more C# than I thought, but I am making progress.
--
[1] The last time this happened, the clock (which counts seconds) was still moving and music continued playing through my speakers, but nothing responded to the keyboard and mouse. It was really strange.

[2] Lack of good documentation seems to be a large problem with Mono in general. From the pages of the library documentation describing classes and their members that state "Documentation for this section has not yet been entered" to the pages on the Wiki where someone has helpfully noted that the information that follows is woefully out of date and needs to be updated, there are notable gaps. I hope that I will be able to fill them by looking at the code for programs like Banshee, Muine, Tomboy, and F-Spot.