Magellan is open source software released under the BSD license.

Links:

Magellan

Magellan, an MVC framework for WPF

Magellan is now hosted on CodePlex.

Magellan is a lightweight MVC framework that makes it easy to build WPF navigation applications. The design is drawn deeply from the ASP.NET MVC framework, and it should feel familiar to anyone who has worked with ASP.NET MVC.

The main features are:

  • Model-View-Controller framework
  • Blend behaviors and Commands to make navigation easy
  • Transitions between pages
  • Action filters for cross-cutting concerns such as authorization and redirection
  • Integration with Composite WPF

Applications built using Magellan still make use of common patterns such as MVP and MVVM; Magellan just provides navigation support.

Documentation

Magellan Diagram

The diagram below shows the main steps in processing a Magellan navigation request, and the extensibility points Magellan provides.

Magellan request processing workflow Commands Behaviors Code Navigator Controller ControllerFactory ActionInvoker Pre-Action Filters Action Post-Action Filters View Result Window View Engine Page View Engine Region View Engine
Mouse over one of the steps on the left to see a description.
Last revised: 26 Jan, 2010 06:37 AM History

Trackbacks

Discussion

09 Nov, 2009 12:07 PM

This is great work Paul! The demo is very slick indeed.

Cheers, Daniel

Carl Scarlett
Carl Scarlett
11 Nov, 2009 12:39 AM

Magellan looks fantastic Paul. Saves me from writing it myself!

What's the licensing model for Magellan? And moving forward, what plans do you have for maintaining and extending it?

Cheers, Carl.

11 Nov, 2009 12:45 AM

Hi Carl, licensing will be open source under the New BSD license - I'll add that tonight to make it clear. Maintenance wise, I have a plan, just need to get someone to agree to it :)

12 Nov, 2009 06:26 PM

Despite my curiosity as to why we need yet another framework, I do really like this MVC approach, and I think you've done a terrific job (from a cursory scan). I suppose part of it is my jealousy that you had time to work on this very same think I wanted to tackle. Seems to happen a lot. I'm looking forward to trying this out.

(On a side note, I noticed you are using Markdown in an ASP.NET MVC app. What library are you using. I would like to use this, but the only library I found was quite old and didn't seem to have great reviews.)

Cheers! Ryan

13 Nov, 2009 12:08 AM

Hi Ryan, I'm using the Markdown.NET library from Brian Jeremy. You can check out the source code to my blog to see what I do with it. For comments I also use this input sanitizer over the results to prevent XSS.

10 Jan, 2010 08:33 AM

Paul,

I saw your TODO list for Magellan and I noticed one of your points is to port it to Silverlight. In recent projects I've been using Prism and the Navigation framework and I'm not happy with the results. In an attempt to do something better I slowly started doing something way simpler than Magellan, but similar in principle. It's working fine for our current scenario, but I'll consider something like Magellan for other projects. How are you doing with the port? Would you need any help?

11 Jan, 2010 11:19 AM

Hi Miguel, I'd love some. I'll shoot you an email.

Gerhard
Gerhard
24 Jan, 2010 05:11 PM

Hi Paul,

I just read about the PreAction filter. So how is the whole story, can I gray out a button, if his action needs some priviledge I don't have? I talk about WPF scenario. You know, there is a Command object which expose an Execute method and a CanExecute function.

With best regards

Gerhard

Your Comments

Used for your gravatar. Will not be public.

Posting code? Indent it by four spaces to make it look nice. Learn more about Markdown.

Preview