Moonlight Development on Mac using MonoDevelop

Yesterday I announced much-improved MonoDevelop preview builds for Mac, which include ASP.NET MVC support out-of-the-box. However, there was a little surprise in that build that I didn't mention — full support for building and running Silverlight projects using a bundled copy of the Moonlight SDK.

I created a screencast to show off how easy this makes it to develop Silverlight apps on the Mac:

Screencast

Note that, as I said before, this is an alpha preview release of MonoDevelop, but I feel that it's already very usable. After seeing the screencast, I'm sure you'll agree. Download it from the Mac Preview page on the MonoDevelop website.

The Moonlight support in MonoDevelop trunk is entirely functional on Linux too, but it's not so easy to get it running since you need to build and install the Moonlight stack from source, and I would strongly advise against doing this unless you're comfortable with setting up a Parallel Mono Environment. However, it's easy if you use a binary Moonlight SDK like the Mac package does, and tomorrow I'll blog about how to do this with my MonoDevelop trunk packages for openSUSE.

I wrote much of the Silverlight/Moonlight project support code in the lead-up to the 2008 PDC, but the Moonlight 2.0 toolchain and runtime wasn't complete enough to make it worthwhile for me to finish the build/run support, so I focussed on other things, and we quietly dropped the addin from the MonoDevelop 2.0 release. On Friday, with the first Moonlight 2.0 preview and Mac MonoDevelop preview looming, I decided to finish it off, and did so over that afternoon and the weekend. I spent Monday and Tuesday polishing it and making it possible to bundle the Moonlight SDK in the MonoDevelop app.

It still needs work — the XAML completion in particular is a quick hack I put together one evening during PDC — but I believe that it's already a great way to build your Silverlight apps quickly and easily!

Comments

I click that flash video and all that happens is that it directs me to a blank page. I am guessing I was a bad boy and don't deserve any shiny stuff?

It's a big file, about 12MB. Maybe you have to download a few MB before it'll start playing.

Great work on the IDE, Michael. The moonlight stuff is wonderful.

Cheers!

I can't believe I've been working off monodevelop trunk for months and i've never tested this! This looks pretty sweet alright!

It wasn't finished. Although most of it's been in MD since PDC '08, I only completed the final bits of the build pipeline a few days ago.

Very nice, I've just spent some weeks developing a Silverlight app in Visual Studio, and I'm looking forward to build one in MonoDevelop. One question, is there a preview mode ala Visual Studio's static preview mode? And are there any plans to develop a pseudo-Expression Blend interface for it?

Otherwise, I liked how easy it was to create a new Silverlight project.

We'd love to have both features, but we have constrained resources, so it might be a long time before you see them. There has been some work on a Moonlight-based designer, but obviously this is a huge thing to build. The preview is easier, but will either embed Moonlight or a web browser, both of which would be much more difficult on the mac than on Linux.

I have been interested in creating simple cross platform games for a while. I saw the news that MonoDev got Silverlight support. So, I tried it out over vacation. I have to say that I'm very impressed. Here's a little bit of progress I had on a small game.

http://screencast.com/t/if8xenkt

Thanks again! Can't wait to see more updates!

Hi,

I'm looking for some guides on database application development using Mono & MD. I haven't seen any screen casts or documents showing how its done. Is it even possible?

Best regards,

Sam

Sorry, I don't really know much about ADO.NET. It's certainly possible using MD, and MD has a database browser (though not included on Mac) for inspecting and editing databases, but MD doesn't provide any special assistance for ADO.NET at this point.

I suggest you ask on the Mono mailing list.

Hi Michael,

Thanks for the tutorial. At the moment for me, after creating the Moonlight Application and trying to build it immediately, my build fails with the message "could not find respack". I'm using the latest version of Mono, the trunk build of MonoDevelop for 2.2 Beta 1 for Mac, have the MoonSDK installed with an env variable pointing to its path; I cannot think of anything else which might be the culprit, can you? I'm running Snow Leopard in 64-bit mode on a MacBook Pro 4,1 machine.

~darryl

If this is the issue I think it is, it's a combination of a couple of minor bugs in MD.

MD supports multiple target Mono runtimes, which you can see in the ".NET Runtimes" section in the preferences panel. One of the bugs means that when you install a newer version of Mono on Mac, the previous Mono is preserved as the default. The other bug means that the Moonlight assemblies provided with MD only get "attached" to the latest runtime. The workaround for this issue is manually to set the default runtime to be the latest runtime, using the prefs panel.

I have interface with russian translation.

I tried from solution window to view project properties and to change target framework (but it is already latest)
I tried from main menu of monodevelop to choose menu "utilities"->"Options"->"Settings"->.Net Runtimes (it says "Microsoft .NET (default)")

I can't find what i need to change.

Hey Michael, nice work! Looks like you all are doing a great job. Do you think you could shed some light on development of moonlight? Particularly the digital rights management support for sites like Netflix. Silverlight looks as if it works perfectly on all my machines except for Ubuntu with ML2, which will not play NetFlix in Firefox. If I'm using the ML3p9, then NetFlix does attempt to load the page and the standard interface (as long as my user agent is spoofed to XP/FF3) but it crashes the browser after 'acquiring license' status. I'd love to donate a few months of NetFlix watch instantly to support the cause!

I suggest you ask the Moonlight team on the Moonlight mailing list or IRC channel.

Hi Michael,
I have installed MonoDevelop 2.8.1 and moonlight 2.10.6. When I build a moonlight Application project, I always get "Error: Framework 'Moonlight / Silverlight 3.0' not installed." What's else I have miss? Could you pls give me some advice how to config the env? Thank you very much!
kesalin