Earlier this week we released the first beta
of MonoDevelop 2.0.
MonoDevelop 2.0 is a very ambitious release in terms of the
new functionality available since the MonoDevelop 1.0 release
back in March 2008. It is ambitious, but also very stable,
we have had hundreds of people dogfood this new release of
MonoDevelop during the entire development cycle.
There are a number of new features since MonoDevelop 2.0
that are worth calling out:
MonoDevelop now has a built-in debugger. The debugger
supports both debugging Mono-based applications as well as
native applications using GDB.
While hovering over variables, you can explore the values
of complex data structures:
Breakpoints and Tooltips
You can debug both at the source code level, or the
generated assembly code:
Debugging the Mono Runtime
Auto-complete on the watch window:
Auto-complete in the watch window.
You can also attach to running processes, both native or
Mono processes and debug them:
For more information see
list of supported features.
Improved ASP.NET support
Our ASP.NET story is getting better. web projects are now
compatible with Visual Studio 2008 and Visual Web Developer
Our ASP.NET text editor now offers code completion of tag,
attributes, attribute values and event handlers is now
supported for ASP.NET and various HTML DTDs. For example:
We also now have DOM breadcrumbs in the editor as you edit
your file, and a nice DOM/Document outline for navigating your
HTML and DOM documents.
The beta does not contain this feature, but we will be
publishing an Add-in that will help you get your ASP.NET MVC
projects up and running with minimum hassle by the time
ASP.NET MVC ships.
New Text Editor
A new text editor, this text editor is written entirely in
C# and replaces the GtkSourceView widget. This has allowed us
to more easily add features to the editor and bring
MonoDevelop to the 21st century. Some of the features in the
new text editor include:
- Flagging errors with underlines on the fly.
- Change bars (track what changes are in your
- Incremental search.
- Code folding: Support for collapsing regions of
text (#region), methods, classes.
- Themes for the editor.
- Source code split views.
- Transparent popups. Holding down the Control key
when a completion popup is shown will make the popup
transparent to make it easier to see the text that is
underneath the popup.
- VI-mode support. We understand that some of our
users would rather use VI keybindings than Emacs
keybindings. VI support is here.
Source Code Editing
Intellisense now works for pretty much every piece of the
C# 3 language. I am not supposed to use the word
"Intellisense", but I just did.
Also, sagacious readers will have noticed that I sneaked
in "3.0" in the above statement. MonoDevelop now
understands the C# 3.0 syntax. A great companion to our
award-winning C# 3.0 compiler.
Now, technically speaking we have not received any awards
for our C# 3.0 compiler, but we should have, because we are
awesome. And in fact, I will be arranging a dinner at my
place this coming weekend where we will award prizes to the
best pieces of technologies and our C# compiler is a nominee.
Notice how it also supports nice automatic generations of
methods when you declare an event:
MonoDevelop is also aware of types, so for example, if you
type "override" when entering a method, it will offer a list
of methods that can be overwritten. O-M-G.
There are other cute features like MonoDevelop can
stub out interface methods for you. O-M-G.
There are also a few features that we liked from editors
like TextMate that should make it more suitable for managing
web projects like the revamped "Go to File" dialog (invoke it
with control-alt-o). It is now able to
New XML Editor
The XML Editor from SharpDevelop has been fully integrated
into MonoDevelop and improved. It supports code completion of
tags, attributes and attribute values (available for
registered XSD schemas). A range of schemas are supplied with
XML files can be validated using the built in schemas, and
can have XSL transforms applied. in addition, XSD schemas can
be generated from XML files.
For instance, it is currently used to allow editing of
Silverlight XAML files and have auto-completion of XAML tags
that are valid for
We have switched to msbuild-style project files to increase
interoperability with Visual Studio.
Support for opening multiple solutions at once, and support
We now have cascading project policies. This is useful
for example to use different coding styles depending on the
project that you are working on.
Cascading Project Policies
Gtk# GUI Designer
You can now make your custom widgets available on the
toolbox, by just adding the [ToolboxItem] to your widget.
My favorite one is that now constructed dialogs and windows
expose the Gtk.UIManager as a field. It was previously
hidden, and not possible to adjust the UI dynamically without
There is no better way of learning an API than browsing the
data types exposed and their relationships. A new Assembly
Browser has now been included.
A cute little window pops-up when you press Control-Tab
Support for the Vala
programming language has been integrated:
The Future: MonoDevelop, the Cross Platform IDE.
We are very excited about this release, and there are a few
areas in which we would like to improve MonoDevelop for future
We want to
MonoDevelop to Windows to be able to reach into more users
and to help developers doing Gtk# development on Windows.
MonoDevelop on Vista.
We are also currently shipping a preview of MonoDevelop for
the Mac, it is not yet ready as there are a few kinks that
need to be sorted out on that platform, but we are working to
resolve those issues. For example, we want to integrate with
the Mac menu system, and to provide bindings that are familiar
for Mac users. Here is a preview:
Super-Alpha-Preview of MonoDevelop on OSX.
Unity has stated that they will be making MonoDevelop the
standard editor for Unity3D on MacOS.