So, one of the customer service ladies at work had a really rough week, and she's very down about the fact that we don't have regular "accomplishments". We haven't rolled out a "big" new feature in several months - lately we're adding small features to existing modules and trying to keep our heads above water with "important" bugs. She'd like to "try something, anything" that could give us not only more regular "accomplishments", but a roadmap to the future, something that shows up where we're going, and naturally, as we pass those milestones, a way to look back at the things we have actually accomplished.
I gave her a brief rundown of (what I have read about) Agile Development/Management and Test-Driven Development, along with a rather blundering explanation of why it's rather painful to implement the latter into ASP.NET _Web Forms_. Because I've been doing the tutorials for Castle Monorail, I'm starting to feel a very strong pull to implement Monorail in our work application.
No, I'm not talking about "The Big Rewrite", I'm talking more of a "as we go forward, we will make a conscious decision about whether to implement any new feature or module in MVC/Monorail over WebForms" approach. If we were to attempt "The Big Rewrite" we might as well close down and hit Monster.com with updated resumes.
First things first, though. I have a few "need to do" items before I can present this to my team in a way that will get buy-in, and I really need them to buy in.
1. Rebuild/Build a new dev environment that's actually identical to production.
2. Install Monorail/Castle on dev.
3. Finish the Getting Started tutorial for Monorail.
4. Implement *something* that's part of our app using Monorail, as a proof of concept.
That's a bare minimum, and assumes I can find time for them along with my normal responsibilities, including squashing bugs, developing new features, managing my team, managing my boss, managing the CS team, etc.
Oi.
I've been reading a lot about Ruby on Rails, Ruby, Model-View-Controller, Monorail, the Castle Project.
Dealing with some of the Fertilizer Pattern implementations I've inherited at work, the idea of a strong separation of concerns is tempting. Too tempting to pass up.
So I installed Monorail/Castle Project on my laptop this morning and went through the first couple of pages of the Getting Started sample project... basic Hello World stuff. It's very cool so far, but by default, starting Debug from VS 2005, it uses the VS built-in webserver, and my work webservers are IIS. So I decided to try setting it up in IIS. Following the directions, with a brief detour to change my as-yet-unused localhost IIS from the original .Net 1.1 to .Net 2.0, I didn't find instructions on exactly what needs to be copied to the IIS folder for things to work.
I tried just the /bin folder. No luck, 404.
Oh, wait, it's still a .Net app, I better copy web.config and global.asax - should I take default.aspx, too? Nah, let's see what happens. Ooh, a real exception, not just 404! Progress. Stack trace says it can't find my view...
Ok, let's copy just the /views folder.... bingo!
Maybe I missed some docs on deployment-by-copying, but I feel pretty good about a)how little needs to be copied, b)that I was able to suss it out that quickly, and c)the general fun of learning a new model/language/pattern.
Next up on Getting Started is DataBinding, followed by ActiveRecord(which I'm very interested in, though I'm not sure it'll work for many of our more complex WebForms where we're updating multiple tables from a single form's input) and then, who knows?
This is a fun adventure, and I'll definitely be installing Monorail on our "real" dev server next week. Even if we only use it for internal "tools", I think it's going to make creating those tools a lot easier, faster, more maintainable/extendable, and should make it easier to "document" what some of the more arcane and obscure areas of the app do and, more importantly, how they do it.
More later...
Work is crazy as always.
Look & Feel Update's been made "very, very important" by my boss.
Updating the web email UI is going slower than expected and continuing the send command after automatically firing the spellchecker will have to be recoded, since IE and FF don't follow the same pattern for attaching an event.
I'd kill to have the time to be able to try out MonoRail in parallel with our existing system - a combination of ASP 3.0, ASP.NET 1.1 and ASP.NET 2.0. It's inherited, gimme a break.
I've read some blogs recently talking about 3rd party ASP.NET controls and the WebForms model in general, how they're geared towards Rapid Application Development in the Enterprise, and I'm starting to agree. For prototyping something in ASP.NET, trying out an idea, they're pretty great. They abstract a lot of the details that would be required if you were to try building similar.... eh... "control structures" (multi-level menus, complex data grids, etc) by hand. Compared to how quickly I could turn out something similar in ASP or Perl or - from what I've read - Ruby (on Rails), however, I spend a lot more time tinkering with the R.A.D.-style control than I do actually using my brain to solve "real" or interesting problems. Working my way through online docs to get the control to look and work *just* right isn't a very good use of my time. I could be actually solving business problems instead of the web programming equivalent of arranging flowers while your house is flooding. Or something.
What a ramble.
It's good to vent.
Hey, look! Another entry!
Man, I am horrible at regularly blogging. This must be my 4th blog that just hasn't gone any further than the first or second post. Nearly a year between opening this thing and my second post. I wonder what the record is.
Hey, look - a blog! Can you believe it?