Smart client Winform vs MVVM + Prism [closed]
Is Windows forms Simart Client is a legacy thing now? And is it to be replaced by Prism (and/or MVVM)? Should I bother to learn about Smart Client?
Another question which might be related to is that what are the performance differences between Winforms and WPF apart from all the cool stuff in wpf like data binding and 3D? Does WPF struggle to run on Windows 2000 and Pre2000 OS? This question is important because it can very much decide which platform you are going to use winforms or WPF when you have to support old OSs (for e.g. in NHS)?
Having worked with both the Smart Client Software Factory and WPF + MVVM, I'd certainly consider SCSF "legacy". I wouldn't use it on a new project. First, it's based on WinForms, but maybe more importantly, it's a bloated framework. It's cumbersome and does not lend itself well to unit testing. I found, after developing an application with it for the better part of 5 years, that the framework just "got in the way" far too often.
I can't speak to Prism, but after my experience with SCSF I would shy away from any out-of-the-box frameworks. When I started working with WPF and MVVM I wrote my own "framework" bits. Really, the only things I found I needed were a good IoC container (StructureMap was my choice) and an EventAggregator (two interfaces and one class implementation that I wrote myself, borrowing directly from a post on Jeremy Miller's blog). Other than that, I go with straight WPF and the MVVM model of development.
Given a greenfield desktop application, my choice would be WPF, MVVM & STructureMap.
I think your first question pretty much comes down to WPF versus Winforms, which have been answered before.
However, regarding your second question about WPF on Win2000 and earlier, WPF is a part of .NET 3.0 and you need at least XP SP2 or Win2003 Server for .NET 3.0 as can be seen here, so if you want to use .NET in a pre XP environment, you'll have to stick with WinForms.
精彩评论