Tuesday, September 29, 2009

.NET/Mono Code Camp: Registration is open

Registration for the upcoming .NET/Mono Code Camp in Spain is open and filling up quickly, so if you are interested in attending, register now!

The agenda has also been published. It includes talks about Mono, MonoDevelop, mocking frameworks running on Mono, iPhone development (with MonoTouch), Moonlight, .NET to Linux portability, Mono.Addins and other stuff.

Monday, August 31, 2009

.NET/Mono Code Camp in Tarragona: Call for Papers

We have started planning the sessions for the .NET/Mono Code Camp in Tarragona (Spain). The sessions are being organized in two tracks: a Mono track and an MSDN track. I plan to give at least a couple of talks: one about the upcoming release of MonoDevelop, and one about application extensibility based on Mono.Addins.

If you are interested in giving a talk, it is now time let us know. You'll find here a form you can use to submit your proposal. We will select the proposals we find more interesting, and we plan to pay the travel expenses for all speakers. Update: sessions are going to be held in spanish.
Update 2: we don't have a big budget, so we may not be able to pay full expenses to people coming from outside Spain.
Update 3: the deadline for the call for papers is September 11th.

I like how the Code Camp is shaping up so far. It will be a chance to meet with spanish Mono hackers and users, but it will also be a good chance to talk about Mono and Linux to an audience which typically is very Microsoft-centric.

Monday, August 3, 2009

MonoDevelop API Overview

I added a new document to the MonoDevelop developers documentation page: API Overview.

The public MonoDevelop API is really extensive, and it is not easy for add-in developers to find out which part of the API they have to use to do certain operations. This document is basically a high level description of all functionality provided by the API, with information about which classes and objects provide that functionality. The document doesn't give much detail about how to use the API, this will come in separate feature-specific documents.

I hope you find it useful.

Thursday, July 30, 2009

Building with MSBuild/XBuild in MonoDevelop

I committed today very basic support for building projects using MSBuild / XBuild instead of MonoDevelop's own build system. Ankit has been doing a lot of progress in XBuild, and it is mature enough to build complex projects. XBuild support is for now disabled by default. To try it, you'll have to enable it in the Edit / Preferences / Build options panel.

The integration right now is simple because all it does is to launch the xbuild command in a separate process. That's not the best way of doing it, but the most straightforward. A more optimal option is to use the MSBuild API to load the project and launch the build. That's my next step, but there are some issues with it.

The main problem is that MonoDevelop now supports multiple target runtimes and frameworks. Multiple frameworks are not a problem because MSBuild already has support for that, but it doesn't have support for multiple runtimes.

Multiple runtimes means that for example when running MD on Windows, I can select either Mono or MS.NET as target runtime, and MD will build the project using the selected runtime. Each runtime has its own GAC and set of installed packages, even its own MSBuild version, so I can't use the MSBuild API to load and build the project. The only option in this case is to launch in an external process.

There is however and additional and more hard to fix problem. To get the list of assemblies referenced by a project (for example to do code completion), MonoDevelop right now just enumerates the reference elements defined in the project. When using MSBuild that's not fully correct anymore, since custom targets and tasks may inject references which are not explicitly set in the project. So the only way of getting the real list of references is by loading the MSBuild project and evaluating it, and that won't work when targeting a runtime other that then one running MD.

Anyway, this basic support we have now is good enough for many projects. I'll go step by step.

Wednesday, July 1, 2009

.NET/Mono Code Camp in Tarragona, Spain



It's official: there will be a .NET/Mono Code Camp in Spain in October. The proposal was made some months ago by CatDotNet, a local .NET user group. Several other .NET user groups quickly joined. The initial idea was to do a traditional Microsoft.NET Code Camp, but I though it would be a good chance of putting together .NET and Mono developers, since after all we have a lot to share. Everybody thought this was an awesome idea.

This will be a good chance for learning and sharing knowledge about .NET and Mono, but I'd also like it to be a meeting point for the Spanish Mono community. I'll be there giving some talks, and I hope other Mono hackers can come too. If you want to propose a talk, or you want to contribute please join the official forum.

More info about the Code Camp in the official web site: www.codecamp.es.

Thursday, June 25, 2009

How to build MonoDevelop with Visual Studio

How to build MonoDevelop with Visual Studio in five easy steps:
  • Install GTK# (get installer here)
  • Install the Mono Libraries (get installer here)
  • Get MonoDevelop from SVN (update: instructions here)
  • Open main/Main.sln in Visual Studio
  • Press F5 (update: make sure you have the configuration DebugWin32 and platform x86 selected).

Friday, June 19, 2009

New MonoDevelop installer for Windows

A new MonoDevelop installer for Windows is available. This release has many fixes and improvements:
  • Performance of the text editor greatly improved, thanks to a new text rendering logic cooked by Mike Krüeger.
  • The debugger is now more reliable, it properly handles enum values, and it now has an 'immediate' console.
  • The NUnit add-in now works.
  • Version Control now has a new Create Patch command, thanks to Levi Bard.
  • A new C# formatter, with support for per-project/solution formatting options.
  • MD now logs debug and error output to a file located in your AppData/MonoDevelop/log.txt, so if you get a crash or something you may find some info there.
  • Many other bug fixes.
The new installer is available here. Worth trying!