If you work/ed with CAB and SCSF you might remember the Outlook Bar we created in 2006 with the initial input of Chris Holmes and the help of some of the Southworks guys like Mariano and Ezequiel. It turned out to be a popular control for composite applications since the nature of modules mapped quite well with the navigation bar buttons and the outlook navigation bar is a well known UX pattern for a fair amount of users.

We wanted to have this control for WPF apps and also have it integrated with CompositeWPF through a region adapter. The first version looks like this:

clip_image001

The trick is to overwrite the template of the TabControl and TabItem (WPF separates the behavior of the control from the visual layout and style), inherit from the SelectionRegionAdapter of CompositeWPF and adding a behavior that will publish an event with the EventAggregator subsytem on TabItem (navigation bar button) click.

We also created an attached property to separate the metadata containing the title and event payload from the region. In a future version this will also handle an icon associated to the button.

This is the current usage:

MyView view = new MyView();
OutlookBarControl.SetOutlookBarMetadata(view, new OutlookBarMetadata
    {
        Title = "Mail",
        Payload = "OnMailModuleActivate"
    });

IRegionManager regionManager = Container.Resolve<IRegionManager>(); 
regionManager.Regions[RegionNames.OutlookBarRegion].Add(view);
regionManager.Regions[RegionNames.OutlookBarRegion].Activate(view);

I would like to see a simpler API, specially for associating the metadata, but this is a start.

Read more about the implementation in Ezequiel’s post and download the code from the contrib site.

Implementing authentication and authorization mechanisms for applications is something we do over and over. However designing the identity architecture to be adopted across an enterprise is a more challenging task. Based on my experience, reusability ends up happening at the application level as opposed to the enterprise level. So, designing this architecture requires think about: different trust boundaries, complex access checks and centralized management.

The solution that I’ve been using lately with good results is Security Token Service. Today, standards like WS-Trust and SAML among others are mature enough and technology stacks like WCF or Sun Metro fully support them, making it easier to have an interoperable and strategic infrastructure in place. The Security Token Service provided me with a generic and customizable architecture component that became part of my architecture toolbox.

However, the concepts behind Security Token Services are not trivial to understand, and the value they provide is sometimes hidden under its complexity. The good news is that Microsoft has started to invest on a high-level identity framework that will work on top of CardSpace, WCF and ASP.NET. The new kid on the block is codenamed “Zermatt” and will help approaching the separation of concerns on authentication and authorization; the federated security scenario; tackling real claim-based authorization on both presentation and service layer; and potentially integrate with “cloud” infrastructure like the Internet Service Bus.

Extrapolating the scenario I wrote about in March 2007 we might be able to create something like the following diagram with much less code:

image

Finally, I recommend you to add Vittorio’s RSS to your feed reader because he will share, as usual, much more info (already started actually).

SaaS Taxonomy Map

July 10th, 2008

Thinking about SaaS, for quite some time now, I wanted to share this animated GIF diagram with you (it took lots of cycles to get here:). 

SaaS Taxonomy Map

Make sure to open the post from the browser to see the animated gif.

I talked briefly about it in the last RAF (you can see the video in spanish [minute 16:30]) and will write about each this in future posts.

Microsoft MVP Award

July 2nd, 2008

Microsoft MVPMicrosoft MVP program is recognizing me as an MVP in the Client Application Development competency. Being an MVP is a dream I had for some time and it’s great to reach this step!

I’ve been always connected to the community. Participating on lists like aspadvice.com on early stages of .net, sharing knowledge around smart client development through my blog and codeplex and forums and delivering presentations and workshops on different subjects.

It’s a full-duplex relationship with Microsoft and its community that I had to nurture during time and it’s great to see the recognition.

Thanks to all the people involved and Southworks for growing me up and make a dream come true.