Skip to main content

Book Review: Learn WPF MVVM - XAML, C# and the MVVM pattern by Arnaud Weil


Image result for visual studioLast week I was looking for inexpensive ways to learn about applying the MVVM pattern to WPF programming (I still am; please leave any tips in the comments section) and ran across Arnaud Weil's $10 digitial book on Amazon. It is brief, less than two hundred pages, but obviously economical and I was impressed with how interactive it was.


Pros:
The book teaches the user how to design a XAML page, how to use data binding, and how to set up the Model-View-View Model structure to conform to commonly accepted standards. The feature that impressed me the most was that Weil has provided a number of interactive exercises to teach you how to create a WPF-MVVM application. After each block of material, there are "Now it's your turn to code:" sections in which you are expected to create a XAML control, write a method, bind a control to a data object, etc. Afterward there is a "Solution" section in which Weil leads you step-by-step through the assignment, in case you weren't able to do it on your own after reading the material. To make the exercises more interesting, Weil provides links to resource files that can be imported into your Visual Studio project. If you complete all of the exercies, by the end you will have a demonstration of an application to manage a bike shop's inventory. 

Cons:
The book is very brief. With only around 180 pages or so to work with, Weil only provides the most cursory look at some of the most important features of WPF-MVVM programming. I for one felt that too much time was spent on XAML and too little on MVVM. I think for most people the basics of setting up XAML controls will come easily. It is a very easy-to-understand language and there are numerous tutorials online for free. MVVM, however, is more complex and even though there is a wealth of online material, much of it is inaccessible to someone without a broad programming knowledge base (like myself). Some might also complain that Weil relies on code-behind to handle view navigation. There were also several grammatical errors, but nothing which made the book impossible to follow. 

Overall, I'm glad I purchased the book, but am already looking into more robust treatments of the subject matter to further my understanding. If you are a beginner like me, this book may be a good place to start.

Comments

Popular posts from this blog

How NOT To Write Code / How To Decipher Bad Code

Confusing code is bad code. In this post I'll be talking about one of the worst coding practices: using nondescript variables. As an example, we'll be looking at a simple problem from Project Euler (#28). I'll give you an example using really bad code and then we'll look at how we can decipher it and make it more clear and understandable. First, here's the problem: Starting with the number 1 and moving to the right in a clockwise direction a 5 by 5 spiral is formed as follows: 21  22 23 24  25 20   7   8   9  10 19  6   1   2 11 18   5   4   3  12 17  16 15 14  13 It can be verified that the sum of the numbers on the diagonals is 101. What is the sum of the numbers on the diagonals in a 1001 by 1001 spiral formed in the same way? Ok, so now check out this solution:             int i = 1; int j = 1; int s = 0; ...

Merging Files into a Single .NET Assembly

.NET assemblies can be single-file or multifile.   As I've been preparing to take Microsoft Exam 70-483, I came across the Al.exe command, a tool which is installed along with Visual Studio. Al stands for "Assembly Linker" and when you run it, it "links" different manifest or resource files together into a single assembly. If you work with .NET at all, you probably have a pretty good idea of what an assembly is, but here's a simple definition from Stack Overflow : "A chunk of (precompiled) code that can be executed by the .NET runtime environment. A .NET program consists of one or more assemblies." -Adrian Grigore Here's a more technical definition from Wikipedia :  "A compiled code library used for deployment, versioning, and security."  Normally when you create a new project in Visual Studio, VS pretty much creates the assembly for you. You don't have to worry about merging different files together using the c...