Magellan 2.0 is here!

Magellan 2.0 is here!

In May I gave a rough idea of where Magellan 2.0 was heading. This weekend I decided to call it "done" and checked in the final 2.0 binaries. Let's look at what's new in Magellan 2.0.

Project Hosting and Discussion

Previously I was using my blog for Magellan documentation, and CodePlex for the source/binaries. Before 2.0, I decided to shift everything to Google Code. The source is now hosted in Google Code's Mercurial server. There's also a discussion group you can join if you have problems or questions.

I'll leave the CodePlex site and blog pages for Magellan 1.0 online, and add links to all the 2.0 content.

Getting it

The easiest way to get started is to install the Visual Studio project templates, by searching for "Magellan" in the VS 2010 extensions gallery:

Installing the VS 2010 extension

Once you've done that, you can use File->New Project and browse to the Magellan folder under Visual C# to create a project:

Creating a project using the template

If templates aren't your thing, you can use Nu to install the RubyGem:

nu install magellan-framework

What are you waiting for?

Generic go image

Using the project templates, it should take all of about 5 minutes to create your first Magellan application. If you haven't tried Magellan before, install the template and give it a go :)

A picture of me

Welcome, my name is Paul Stovell. I live in Brisbane and work on Octopus Deploy, an automated deployment tool for .NET applications.

Prior to founding Octopus Deploy, I worked for an investment bank in London building WPF applications, and before that I worked for Readify, an Australian .NET consulting firm. I also worked on a number of open source projects and was an active user group presenter. I was a Microsoft MVP for WPF from 2006 to 2013.

bobfox
bobfox
06 Sep 2010

YAF for WPF/Silverlight/ASP.NET

Still waiting for something nice for Winforms.

Any?

06 Sep 2010

@bobfox, actually, with a little elbow grease Magellan can be made to work:

http://code.google.com/p/magellan-framework/wiki/WinForms

Christian Günther
Christian Günther
06 Sep 2010

Wow, good work, thank you very much! Last week I started to play around with the 2.0.1 beta and found your framework very useful. I'm a huge fan of the wizard like style you can accomplish in your UI with your framework. One thing that that I’m missing is auto discovering the viewmodel based on its name. For example (from your tax sample-app):

public class TaxController : Controller
{
    ...

    // Example URL: /Tax/EnterDetails
    public ActionResult EnterDetails()
    {
        //return Page("EnterDetails", new EnterDetailsViewModel());   <-original
        return Page("EnterDetails");   <-nice to have
    }

    ...    
}
06 Sep 2010

Congratulations on the release!

06 Sep 2010

Nice work Paul. Navigation is definitely one of the concerns that isn't well addressed by a lot of the MV* (or 'third object' as you call them) frameworks. I like the integration with VS via the online gallery.

07 Sep 2010

Hi Christian, interesting idea. What would happen in the case where the view model needs custom initialization? I expect an empty constructor call is actually pretty rare - it's more likely to look something like:

return Page("EnterDetails", new EnterDetailsViewModel { PropertyA = 13, PropertyB = "Hello");

Or is this something that would just happen by default if you didn't have any custom initializaton code?

PS: In the example above, the view name ("EnterDetails") is the same as the action name, so you can leave it out (I just like to include it in samples to make it more explicit). For example:

return Page(new EnterDetailsViewModel { PropertyA = 13, PropertyB = "Hello");
07 Sep 2010

There are a lot of places in my current ASP.Net MVC project where we actually do: return View();

... usually the view in that case is a data-entry form, or a login/registration form where the view is static and we don't present any data. Of course, part of that is possible because the framework makes certain information (logged in user, etc) available automatically to every view.

Having said that, it's clearly a relatively rare scenario in the grand scheme of things.

08 Sep 2010

Great stuff - loving the VS integration. BTW there's a typo in your first image.

GeorgeR
GeorgeR
13 Sep 2010

I hope we get to hear you yap about this on Talking Shop!

GeorgeR
GeorgeR
02 Jan 2011

This would make a fine candidate for NuGet :)