Gray's Matter
Justice Gray - North America's favorite metrosexual software consultant

I Wish These People Updated More Than Once a Year

JP Boodhoo's company tagline is "Developing With Passion", thereby cementing his reputation as the Tony Robbins of the software development industry!   I should be able to concentrate more on JP's presentation this year, considering that Donald is not in the room - no clumsy attempts at seduction this time!!  

Speaking of seduction, I'm not too sure what to think of JP's "red bumblebee" sweater - at times alluring and at other times confusing.  Not sexually confusing like the shirt I am wearing today, but just disorienting.

"I should warn you I'm really tired today" - I'm hoping that's not an omen!

I think I see my agenda up there.  Oh, now he's just *TAUNTING* me!

"Being a TDD developer does not mean I shouldn't be at a whiteboard...but it does mean that I don't have to totally commit to a design once I start developing."

"A lot of time is wasted coming up with the perfect UML diagram!"

Words cannot describe the design of JP's sample web application.  

Holy cow, JP actually drinks some water!!  It's like he's a whole new person!

I have never seen anyone run faster through design pattern principles than JP.  Talk about a whirlwind.  It's the same difficulty that you run into with mock objects; there definitely is a reliance on earlier concepts/knowledge.  That said, it's nice to have some "deep" presentations that really delve into some of the innards.

Man, I could use some water myself...

MIT open courseware on interface-based programming.  What is the link for this?
 
"I know I'm *getting off* on tangents on there, but what pattern is this?"  Obviously Decorator!!   

Okay, *proxy*.  But talk about a *totally* innocent mistake!  I think *anyone* could make that mistake.  

Now JP is "getting off on a rant".  JP has now gotten off almost as much as John Bristowe at the previous presentation.

"I'm not saying we have to reinvent the wheel - but we need to understand how the wheel was made."   Rockarts behind me:, "Ya man..understand the wheeeeeeel...I CAN SEE IT"

JP gives a "small" diversion on MVP and dependency resolution.  

"How embarassing when the presenter leaves his phone on" - actually, I think it's more embarassing when the presenter has children's show theme music on his phone, but that's just me.  But at least it's not like he's got a bunch of girlie pop in his application!

As an aside, if you have not gone to a JP Boodhoo presentation before, you *definitely* should.  If you could ever say someone writes "sexy code", it would be JP.  The cleanliness/dumbness of his views (and I mean "dumbness" in the complimentary sense) and the logical separation of concepts is absolutely beautiful - every developer should aspire to have their code as clean as JP's tends to be.

JP is using Boo for the Monorail examples.  

The Monorail views don't use Page directives, etc. - they're quite clean.  They are (of course) very similar to Rails template pages, in that HTML wraps a declarative for page content.

Monorail is a true front controller for .NET.  

Interestingly enough, there are no System.Web references in MonoRail at all.   Monorail has an IHttpHandler that is a gateway to controlling the request.

How does Monorail know it should've shown a particular view?  Like Rails, it is all about a directory strucute.  When it sees a request, irs Front Controller looks for a controller (ie. if we're looking for "Home", it looks for "HomeController").  As you'd expect (once again), this is a Rails specific thing.  

I need to tell you all that this presentation probably will personally excite me the most out of these; I love the cleanliness of Rails implementations (and obviously, I quite like Ruby) but having the ability to have the Rails abstractions in .NET itself are a *HUGE* benefit to me (and anyone!) when loading applications.  N ow the *only* thing that the pages have to worry about is displaying information; largely adhering to the single responsibility principle.

The speed difference between Monorails' controller implementation and ASP.NET's controller implementation is *amazing*.  

"We can't get into view components today, but you can use them to write out your Javascript, etc."  I know, I know, it's something Rails does as well.  But having this sort of thing available for ASP.NET dev is fantastic for making applciations faster, better, and cleaner!!  Once I get into this more myself, I will throw up some posts around it.

Advantages/drawbacks:
New scripting languages to learn
Dropping of habits
Lack of good docs
Simplicity
Better separation of concerns

"If you want to use Monorail, you'll need to abandon the viewstate mentality entirely.  There is no concept of a postback"

JP is writing his new site in Monorail!!  Nice!

One other disadvantage of this is the ability to test views - although with Braille/Velocity you may not have compile time checks, but you're also able to run unit tests against the views.  

(This is one thing, as I was just discussing with D'Arcy, that may be a barrier towards business acceptance of Monorail - some people arguing against "yet another language" involved in these.  I could be jumping the gun here - I will definitely take this back after I get more exposure to it.)

"If you want to write true OO objects, Prototype and Scriptaculous are the best possible script libraries to do your work with it."  

"Monorail is inherently more testable than ASP.NET.  Have you ever tried testing Session or Context?"  Oh, some of us have.  Some of us still have the scars!!!

"Why are these things done in Braille/Velocity rather than C#, etc?"  

Ah, here we are. JP : "I'm not betting the farm on Monorail.  Two of the main languages in Monorail are Velocity and Braille, where Velocity hasn't had a lot of activity around it.  How long can Ayende remain committed to extending the source?  What happens if Ayende stops bothering to update?  Castle updating this is great - they probably won't let it die.  Castle has a huge community around it now.  Monorail itself won't go away, but I *am* worried about Monorail's view implementation."  

Whoa - did I just hear that JP is done on time??  It *IS* a new JP up there!  Drinking water, finishing before the time limit...it's like I don't even know which way is up anymore...

Once again JP shows us all how it's done
Showing new architecture that's easy and fun
Monorail's sexy and I am aroused
When viewing the framework in which this is housed




 





Saturday, April 28, 2007 #