Saturday, October 06, 2007

Microsoft MVC Framework - They've Really Been Listening!

I am not the only one that is all geeked up about the new Microsoft MVC Framework that Scott Guthrie demo'd at the ALT.NET Conference.  I am probably one of the last ones to blog about it.  I still feel the need to pile on to the love fest and say that I've never been as excited about a new product coming out of Redmond as I am about this framework.  They've really been listening.  As Roy Osherove said, Microsoft gets Design For Testability... Finally.  And that is in no small part due to ScottGu who seems to have been a major force in getting all the testability and pluggability in there.  He also gives a hell of a presentation - perfectly tailored to the ALT.NET crowd (no slides, just code), complete with give and take and trading good natured jibes with the participants.  Even the most skeptical left impressed.

I won't go over all the technical details, because Jeffery Palermo does a great job of that here.  Now that I've lost you all to Jeff's post...  I will add that while I do think System.Web.MVC does probably mark the beginning of the end of Monorail, I definitely don't think it is a threat to the overall Castle Project.  MS (finally!) was smart enough to not try to re-invent all 4 wheels and the carriage.  There is too much great stuff in Castle, ActiveRecord and Windsor, specifically, and more.  And it's fantastic that we can still use those tools with MS MVC.  I am interested to hear what Hammett and Ayende have to say about MS MVC.  I wonder if they will be happy to have a solid MVC system from MS, and focus their energies on the other supporting tools needed - View Engines, IoC/DI, ORM, etc.  Or will they be inspired by the challenge and continue to make Monorail better and better as a viable alternative to the MS MVC?  The .NET developer community owes them a great debt of gratitude for making Monorail so great, that Microsoft couldn't help but hear the feedback, and respond to it. 

Update:  Hammett et al have (for now) posted some thoughts on the Castle home page.

Update 2:  DamienG studied the ALT.NET Conf MVC Demo video like NFL coaches study game film, and has a great summary.

Technorati Tags: , , ,

Building the ALT.NET community

Today was the first full day of Open Space conversations at the ALT.NET conference.  There were 4 different timed "sessions" and about 5-6 Open Space conversations going on during each.  The conversation I suggested regarding user groups and community ended up being one of the talks in the first session, and therefore the first one I went to.

Well, for the first 2-3 minutes, no one showed up.  I started to think how long I should wait until I go join another talk.  But soon the first person walked in, and we started talking.  Shortly after that, I was surprised to see Martin Fowler join us, Microsoft Developer Evangelists Chris Koenig and Peter Laudati, Don Demsak, Jeremy Miller, among others.

The basic question being posed is "how can we help to build a stronger sense of community around the ALT.NET ideas, on a global and a local level."  I added an additional question, "what does the Ruby community got that we ain't got?"

One of the initial comments that was interesting was "I bet Ruby users never had to talk about how to build a community."  That prompted conversation about how Ruby and Java were designed from very early on to be open, community-driven technologies.  Microsoft, as a huge corporate entity, has not traditionally designed its technologies to be as open - they try to design them to please the largest audience possible, and to give their users a prescribed way of solving their problems.  Which in itself is not a bad thing - it's obviously worked for them.  But, as a result, the .NET "community" often feels like a closed community, where we are all waiting for Microsoft to tell us what the next tool/technology/practice is.  Unlike Ruby and Java, there isn't a real sense that if you have a pain point or an idea for improvement of the technology there is much you can do about it, or to make yourself heard.

So how do we move away from that feeling of a "closed community" to a more open conversation about the best ways to develop software with the .NET framework, and what we like and don't like about Microsoft's platform and other platforms?

I think that we all agreed that smaller groups within the larger community are the best way to get those conversations started.  The tricky part is in the communication between the small groups and the larger whole.  Whenever a group of people begin to embrace a new or "alternative" idea, it is easy for people inside and outside the group to perpetuate a feeling of exclusivity.  "This is so cool that if you aren't doing it, you really must not 'get it.'"  This happens because the people that are embracing the idea are becoming passionate about it and want to talk about it, and the people that haven't embraced it may not yet understand it, or may just not be interested.  It's important to work against that perception by keeping the new group transparent and open.  Be passionate, but welcoming.  Be welcoming, but not pushy.  Work to find mutual ground.

I think for user groups, this can translate into covering a wide range of topics, targeting different segments of users and skill levels.  Work with the larger community to find ways to showcase your ideas as a counterpoint to a topic presented by another user group, for example.  I think in the .NET world, "Code Camps" have been moving in this direction.  More and more there are "ALT.NET" presentations, even separate tracks, at Code Camps that have been sponsored by the larger .NET user group.  That seems like a great opportunity to show other users what alternatives are out there.

We also discussed the importance of keeping user group meetings as forums rather than lectures.  Encourage conversation and audience participation.  Make sure that the topic is one that supports this kind of interaction. 

We also discussed the idea of bringing ALT.NET user groups under one umbrella community with a website that allows local groups to register and create their own group with a connection to the larger community.  It would take some more discussion, and a good deal of work to create, but I like the idea. 

Technorati Tags: ,