I'm sure this is a Noob question, but I've never worked with WPF before. Is MVVM an alternative to Expression Blend?
No; MVVM is a design pattern while Expression Blend is a program. See:
http://en.wikipedia.org/wiki/MVVM http://en.wikipedia.org/wiki/Expression%5FBlend http://www.google.com/
Blend actually creates code that can be used as MVVM
No. They are completely different concepts.
Expression Blend is software for creating interfaces - it's a designer's tool for working with WPF.
MVVM is a design pattern - it's an architecture you can use to make your WPF application clean and easily maintainable.
You are perfectly capable of using Blend together with MVVM - in fact, this is one of the benefits MVVM provides (it makes it very easy to keep the UI design separate from the programming).
No, not at all. In fact, MVVM is supposed to be a way to help a designer using Expression Blend work with the developer writing the functionality. The idea is that MVVM provides better separation between the View and the ViewModel. This gives you some advantages:
- You can replace the real ViewModel with a mock ViewModel (XML based, perhaps) which allows the designer to have some data to play with inside of Blend.
- You can write unit tests for your ViewModel which (hopefully) includes all your functionality. The unit test becomes another consumer of your ViewModel, just as the View is.