Building Enterprise Applications with Windows Presentation Foundation and the Model View ViewModel Pattern

Errata for Building Enterprise Applications with Windows Presentation Foundation and the Model View ViewModel Pattern




The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

Color Key: Serious Technical Mistake Minor Technical Mistake Language or formatting error Typo Question Note Update



Version Location Description Submitted By Date Submitted Date Corrected
, Printed, PDF, Safari Books Online, Other Digital Version
Page xvi
middle

The download code for this book is not available

Note from the Author or Editor:
The correct address is this one: http://examples.oreilly.com/9780735650923-files/9780735650923_files.zip

Anonymous  Apr 07, 2011 
Printed, PDF, Safari Books Online, Other Digital Version
Page ricardo.eights@gmail.com
ricardo.eights@gmail.com

Page 98 link http://nhforge.com should be http://nhforge.org

Note from the Author or Editor:
Yes the right address is now: http://nhforge.org

Anonymous  Apr 15, 2011 
Printed, PDF, Safari Books Online, Other Digital Version
Page 6
Introduction, source code download path

The source code for the download should be this one http://examples.oreilly.com/9780735650923-files/9780735650923_files.zip while on the book is a different one.

Note from the Author or Editor:
This is the correct address http://examples.oreilly.com/9780735650923-files/9780735650923_files.zip

Raffaele Garofalo
Raffaele Garofalo
O'Reilly Author 
Apr 03, 2011 
Printed, PDF, Safari Books Online, Other Digital Version
Page 28
4th row in the table

In the Example column it reads ObjA.Send("ObjB",Message"); the line is missing the opening quote mark to indicate that it is textual or it should not have the quote mark to indicate that it is sending a command type. Proposed solution ObjA.Send("ObjB","Message"); or ObjA.Send("ObjB",Message);

Note from the Author or Editor:
The code sample needs to be changed in this way: ObjA.Send("ObjB", "Message");

Christopher Denyer  Mar 24, 2011 
, Printed, PDF, Safari Books Online, Other Digital Version
Page 28
7th row in table; Last row in table

7th row in table. In the example column missing the end quote for the method example. ObjA.ChangeState("A); Last row in table. In the example column missing the closing parathesis for both Add methods. List.Add(Student("A"); List.Add(Student("B");

Note from the Author or Editor:
Please change the two lines of code using this one, instead: List.Add(Student("A")); List.Add(Student("B"));

Christopher Denyer  Mar 25, 2011 
, Printed, PDF, Safari Books Online, Other Digital Version
Page 34
1st paragraph

In listing Pros of MVC pattern, it is said that: "Because the View is also unaware of the Model, ..." but as we know, and is written earlier in the same chapter, in MVC, the View is aware of the Model, as in page 31, the last paragraph we read: "However, the View and the Controller are both aware of the Model: the View because itís in charge of displaying the Modelís data, and the Controller because itís the bridge between user input and the Modelís changes."

Note from the Author or Editor:
The sentence: Because the View is also unaware of the Model should be rewritten

Shervin Behjoo  May 26, 2011 
, Printed, PDF, Safari Books Online, Other Digital Version
Page 38
Alternative Approaches to MVP, 1st paragraph

"The Presenter's role diminishes such that it's in charge only of intercepting user input that isn't to be handled by the Presenter." The sentence contradicts itself. The last "Presenter" should probably the View or the Model.

Note from the Author or Editor:
Yes, the first Presenter should be replaced with View

Ilia Alexandrovich Jerebtsov  May 31, 2011 
, Printed, PDF, Safari Books Online, Other Digital Version
Page 40
3rd paragraph

"...This specific Command can be bound to any XAML control..." That should be wrong, you can bind a command to any control which implements ICommandSource.

Note from the Author or Editor:
Please change the sentence with "This specific Command can be bound to any XAML control that implements the ICommandSource inteface"

Federico Degrandis  May 29, 2011 
, Printed, PDF, Safari Books Online, Other Digital Version
Page 47
5th line in the comments

Missing the "o" in the comments for the word Injection //Injectin

Note from the Author or Editor:
The 5th line in the code comment, in page 47 needs to be changed from: //Injectin to //Injection Please keep also the // before the word

Christopher Denyer  Mar 25, 2011 
Printed, PDF, Safari Books Online, Other Digital Version
Page 52
Second code sample

The line "var catalog = new AssemblyCatalog(Assembly.GetExecutingAssemb" appears to be truncated.

Note from the Author or Editor:
It should be: var catalog = new AssemblyCatalog(Assembly.GetExecutingAssembly());

Eric Miller  Apr 11, 2011 
Printed, PDF, Safari Books Online, Other Digital Version
Page 82
Person code sample

in class definition you used interface instead of abstract

Note from the Author or Editor:
In page 82 this line of code: public interface class Person : DomainObject { needs to be changed with this one: public class Person : DomainObject {

ivan.pagac  Mar 25, 2011 
, Printed, PDF, Safari Books Online, Other Digital Version
Page 82
Person code sample

Hi there, I thine there must be an "public abstract class Person" 1st) you state in paragraph on pg.82 "The Model will containt another abstract class called person" 2nd) It makes sense to make a Person abstract 3rd) Abstract class is also visible in UML diagram on pg.87 where Person class is italic

Note from the Author or Editor:
Yes, in the page 82 the code should state public abstract class Person{

ivan.pagac  Mar 25, 2011 
Printed, PDF, Safari Books Online, Other Digital Version
Page 106
first code sample - GenericRepository constructor

this.uow = Container.Resolve<uow>(); should be... this.uow = Container.Resolve<IUnitOfWork>();

Note from the Author or Editor:
At page number 106 the code this.uow = Container.Resolve<uow>(); should be this.uow = Container.Resolve<IUnitOfWork>();

Kevin Carroll  May 09, 2011 
, Printed, PDF, Safari Books Online, Other Digital Version
Page 185
3rd paragraph

"In 2010, Maruso..." should be "In 2010, Mauro..."

Note from the Author or Editor:
Corrrect, please fix Maruso with Mauro

Federico Degrandis  May 29, 2011