Wednesday, May 4, 2011

Polls for the Peanut Gallery

Gosh, it's been awhile since I posted. Sorry about that. We've been really busy with the last couple releases and a push into new territory, aka Scrum. I've been putting together coding standards and best practices for the team, doing research into test driven development and unit testing for Silverlight and non-Silverlight .NET along with all my normal development stuff, buying a house, moving into it, doing renovations and keeping the family fed. Busy busy!

If anyone is reading this (and hopefully someone is), I am curious about a couple things.

Question 1) For those of you using Silverlight - do you find RIA Services useful? And if so, are you using it for business applications or for fun stuff?

My reason for asking is, I've found it next to useless for anything except small personal projects, and a royal pain to troubleshoot in general. Updating the database schema as it grows doesn't seem to successfully translate into updating the domain service class effectively, the metadata goes missing, you name it, I've probably seen an error for it. I am just having a lot of trouble finding the value-add here - RIA Services automates so much of the manual process, but if it doesn't work you spend more time trying to figure it out than you would have to just written a service and a data access class yourself. And, Linq-to-Entities isn't exactly known for its speed.

The other beef I have with RIA Services (and other obscure-all-the-details frameworks) is that people become so dependent on them they cannot perform tasks any other way, fail to understand the underlying technologies and then they try to shoehorn any business problem to work with these kinds of solutions - even when they just don't make sense. Technology is supposed to make a task easier, not harder, and if it is a nightmare getting a particular technology to work with your business problem it might not be the right solution.

If you do find RIA useful, for business apps, do you have any recommended resources for troubleshooting / best practices / a really good example implementation etc? The samples I have downloaded seem to be of variable working quality and there are surprisingly few useful posts for the various errors I have been encountering in the general googlesphere.

Question 2) For those of you doing test-driven development, what framework(s) are you using for your unit tests? I've been doing a lot of research because I was hoping to find a one-size-fits-all solution between Silverlight and the regular .NET (which I don't think is going to happen) and then trying to decide between all the tradeoffs between nUnit, MSTest, and ??? (xUnit, etc.) Trying to get other people in my organization to engage on the topic has been like trying to move a dead blue whale off your lawn with nothing but a plastic straw. I see big pros and cons to both nUnit and MSTest (robust assertion libraries in nUnit vs. tight integration with VS and TFS + datadriven testing capability for MSTest, plus more) but have yet to put my foot down and say "We're using this, come what may."

Anyway, I am really excited at having the opportunity to institute some best practices within our team. The move to Scrum is a great excuse to overhaul all sorts of things that I'd not previously been successful at convincing TPTB were important enough for action when compared to pressing customer issues. I am sure it is going to be a rocky transition but I think in the end it will be well worth the growing pains.

0 comments: