I agree with your last post 100% - just wanted to add the following:
- In addition to unit testing against real-world scenarios, areas like regression testing and integration testing (the latter of which partly overlaps with any N-tier design) are also important. I've seen first-hand where applications passed every unit test, and yet still failed at critical points - reminds me of the old line, "the operation was a success but the patient died".
- Some of the testing methodologies that you've (rightly) questioned have permeated the database world. Sometimes the juice isn't worth the squeeze.
- I know you're not a big fan of WinForms, but I agree with your views on WPF. Yes, you can build some rather cool things with WPF, but from developer efficiency I still say it's a step backwards. What is hard to understand is this: WCF came out at the same time as WPF (3.0 framework). WCF has been, IMO, a well-conceived piece of technology from day 1. WPF, by comparison, has been more convoluted.
Now, if I could only get you to ease up on Typed Datasets :)