Agility vs Architecture

I recently heard about a panel debate between architects and agilists. I found the very concept intriguing. In my world there is no such opposition. Remove that ‘vs’ and talk about Agile Architecture and Agile Architects instead. All problems can be solved by moving up an abstraction level. Communicate!

Lagoon is available on Codeplex

The Lagoon C# simplicity non-framework is now available on http://lagoon.codeplex.com

It’s still in a highly experimental stage, not even close to CTP status, but demonstrating some, we hope, interesting coding concepts using generics, functional, reflective and more.

Don’t expect any elaborate documentation – this stuff is not even born yet. But the code is there for you.

Please feel free to go and take a look!

Teaser/Preview of a usecase in the Lagoon OpenSource .NET framework from Canyala Innovation AB

View markup should be easy, right?
And implementing view models should also be easy, right?
And mapping it to our models should also be really easy?
So why do we struggle so hard?

Well, this is what a view model could look like in code. Really soon.
BTW: Address is also derived from ‘ViewModel’. Remember: Inheritance should be about behaviour, not state.
Follow me on @Bemafred.


public class Person : ViewModel
{
public string FirstName { get { return State.FirstName; } set { State.FirstName = value; } }
public string LastName { get { return State.LastName; } set { State.LastName = value; } }
[DependsOn("FirstName", "LastName")]
public string FullName { get { return "{0} {1}".Args(FirstName, LastName); } }
[DependsOn("FirstName", "Address.City")]
public string WhoLivesWhere { get { return "{0} lives in {1}".Args(FirstName, Address.City); } }
public Address Address { get; set; }
public Person() : this(null) {}
public Person(ViewModel parent) : base(parent) { Address = new Address(this); }
}

Some things in life are worth waiting for…

… and this blog just might be one of them.