blowmage A Mike Moore joint

ALT.NET Conf: Day 2

The next day of the ALT.NET Conference started with me sleeping in and missing the opening announcements. So as far as I know there was an edict to not talk about Ruby. An edict that I bravely disobeyed.

The first session I attended was "Ruby for Dummies .NET Developers" and I volunteered to show my intro to Ruby slide desk. I originally built the desk for a ~90 minute presentation, so zipping through the desk in 20 minutes may have resulted in making the message come across a bit strong. But we had a really good discussion about what Ruby is and why Rubyists love it. I really emphasized the human oriented view that Rubyists have and that the Ruby language enables. Folks seemed to go back to the open classes feature over and over. I was really happy (and honestly surprised) when Roy Osherove later announced that he now gets why folks love Ruby and is excited about it.

The next session was BDD. It was held in the big room and there were alot of folks in that session. There was alot of showing BDD-style code, arguing, and pointing to the screen. It seems that everyone had a different view of BDD and nobody could express exactly what the benefits were to using it. I got kinda frustrated in this session because both philosophically and in practice BDD is great, but nobody could express that during the session. I wish we had a more formal presentation to frame the discussion around.

After lunch Scott Guthrie showed the new ASP.NET MVC framework. His main points for the framework were:

  • Separation of Concerns, Testing, Red/Green TDD, Maintainable By Default
  • Extensible and Pluggable
  • Enable clean URLs and HTML
  • Integrate nicely with ASP.NET + .NET; Support Static + Dynamic Languages

I was really surprised to see how well thought out the framework is, and how extensible and testable the code you can write in it can be. Throughout the demo he highlighted features that were inspired by web frameworks that real developers are using like MonoRail or Rails or Django. He also showed how it was designed to be testable using any of the current unit testing frameworks. Even more surprising that is uses the current ASP.NET stack, Provider model, Request and Response objects, *.aspx/*.master files, etc. The framework seemed to me to be a brilliant combination of idiomatic .NET features and the agile development practices espoused by open source web frameworks. You can see the video Scott Hanselman took of the demo soon.

As seamless as ScottGu's demo was, Scott Hanselman's follow up presentation on making the MVC framework use dynamic languages (via the DLR) showed the real pain that lies in front us to integrate dynamic languages into existing static code. For example, configuring and using IronPython in ASP.NET or the new MVC framework seems way more painful than it should. Scott showed the several changes to an older version of the MVC framework to use IronPython as both controllers and views. And Phil Haack (who wasn't here) also did alot of work to use Ruby ERB files for the view using IronRuby. I'm excited that this work is being done, and I hope that the process will lead to a detailed white-paper on how best to integrate static and dynamic code.

I really liked what I saw with the MVC framework. I can easily see me easing on the fight to get my full-time employer to give Rails a try because the ASP.NET MVC framework will give me all I need and most I want to get my "real" work done. I'll certainly not leave Ruby, but I will definitely be more active in the .NET world because of the ASP.NET MCV framework. So if convincing me to give .NET another shot was the Scott(s) goal; then mission accomplished.

Update: I ended the day with a pile of brisket at Rudy's and some great conversation with some .NET dignitaries. I tried to get folks to show up for a coordinated hacking session where we will try to make the world better... but the bar seemed to be a bigger attraction for most. (The Ruby community would have combined those two activities...)