Got MonoRail set up on SharpShop, and got a Product List page working with it. I haven’t done too much thus far, but I’ve gotten a taste. First off, it seemed like much more of a pain to set it up than turbogears… It might be because tubogears might be more mature, but it seemed a lot more one-command-and-your-stuff is set-up. With MonoRail, I spent a fair amount of time futzing with the web.config, copying in a variety of dlls, wondering why I was getting page not found messages, etc. It probably would have been better if I’d been using VS2005 and used their startup thing, but requiring a costly tool to get a decent setup experience seems lame.
Anyway, after much copying, and comparing of configuration, and staring that their Getting Started project I finally got SharpShop set up. At that point, it really came to me how different this was going to be. No Page_Load, the usual starting place. No Page at all, actually, and some sort of scripting language with a for loop seems to be the way to handle repeater tasks and such. I’m a little uncomfortable with this. I know some people don’t like the page model, but if you declare “no <%” in the aspx pages you kind of force people to code in the code-behind (overall, good). This monorail style is maybe a little less magic in the regard of binding and repeaters, but compensates by having some amount of logic in the view page. Truthfully, I’m not sold yet. I’ve worked on some horrific ColdFusion, as well as classic ASP, and even Perl, and having logic strewn all over the views is a common, massive problem in terms of readability and maintainability. I worry this could be a slippery slope of allowing people to feel it’s OK again to code right in the view. I sure as heck don’t want THAT. Maybe the solution is to hire people whose coding judgment you fully trust, and not hire developers that are just waiting and hoping to go back to the bad old days of spaghetti code, but I don’t have that luxury. (though wow, what a perk that would be)
I’m going to dive further into MonoRail, and see how it deals with a variety of common tasks, and compare that to the usual .Net way. The page model and all of the goodies it includes are a pretty big selling point of ASP.Net, so I’m curious to see if rails-style development on the platform proves to be worth what you’re giving up.