I've spent the majority of my career as a Web developer, and I've only recently (with the discovery of MonoRail) really felt good about it. I mean to say, that a true MVC framework facilitates simple and elegant Web development, whereas in the past (with classic ASP and WebForms) I always felt that something was amiss; that it was more complicated than it needed to be. Lately, I'm satisfied with Web development.
That's great, but what about desktop applications?
Kevin Hoffman has recently made a couple of posts about his experiences with MVC in Cocoa and the lack of built-in support for it in WPF. Very timely for me as my company is preparing to undertake a moderately sized project utilizing WPF. Part of the elegance of a framework like MonoRail is how well it handles the stateless nature of the Web. Windows applications are obviously different.
There are a lot of variations on MVC. It's sort of like a BBQ sauce, everyone has their own special recipe. I'm sure some are more fit for desktop clients than others, which leads me to my question: What are the best patterns/approaches for developing desktop applications (with WPF)?
My priority is to "Make it correct, make it clear, make it concise, make it fast. In that order."
Of course, that priority is facilitated by TDD/BDD, SRP, and all things ALT.NET. (Sorry, I couldn't resist building the hype.)
I plan to experiment with WPF over the next month in this regard,but I am curious to know what other people might think.