Errata

MCTS Self-Paced Training Kit (Exam 70-511): Windows® Application Development with Microsoft® .NET Framework 4

Errata for MCTS Self-Paced Training Kit (Exam 70-511): Windows® Application Development with Microsoft® .NET Framework 4

The errata list is a list of errors and their corrections that were found after the product was released.

The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.

Color Key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted by Date submitted
Other Digital Version .
Practice Exam Question 511P_2.1_10

The question asks:
You are implementing a WPF library. You are defining an event. You want developers to be able to add a handler for the event to an arbitrary element, not just to an element that actually defines or inherits the event. You need to implement the event.

The answer given is "Add a tunneling event to a custom control".

It shoud be "Create an attached event" The intro to the MSDN article on attached events is almost word-for word the same as the second last sentence of the question.
http://msdn.microsoft.com/en-us/library/bb613550.aspx

Aaron Hudson  Jul 18, 2012 
Other Digital Version .
Practice Exam, Question 511P_2.6_01

When you answre this question wrong, it directs you to Chapter 3, Leeson 3 in the book.

Chapter 3 only has 2 lessons.

Anonymous  Jul 24, 2012 
Other Digital Version CD exam
CD exam

On the CD for practice exams, one of the questions is:

You are implementing a WPF library. You are defining an event. You want developers to be able to add a handler for the event to an arbitrary element, not just to an element that actually defines or inherits the event. You need to implement the event.

The given answer is the last one:
Add a tunneling event to a custom control.

But this contradicts the explanation.

It seems the first answer is right which is:
create an attached event.

Philip Brown  Mar 26, 2013 
Other Digital Version Null
511P_2.3_09

Question:
"You are using a WPF ContentControl to display the contents of any database table. You need to dynamically generate a template to use based on the table schema. What should you do?"

Software indicates correct answer as:
"Programmatically build a visual tree of objects and load as a template by using the XAMLReader.Load method."

But the correct answer is:
"Generate a XAML string representing the markup and create the template by using the XAMLReader.Load method."

As stated by explanation:
"Use the XamlReader.Load method to create a visual tree from a XAML string. Assign this visual tree to the ContentTemplate property."

Anonymous  Apr 02, 2013 
Other Digital Version Null
511P_3.5_03

Question:
"Your application includes a class named Supplier. You define a collection of Employees named emps. You need to use LINQ to query emps for all instances where the City property is "Redmond". Which query should you use?"

Errata:
1) Relationship between "supplier" and "employees" isn't defined in question.
2) None of the answers queries "emps" object.

Anonymous  Apr 02, 2013 
Other Digital Version .
Practice Test

In Practice Exam question 511P_5.5_05, regarding creating a Custom Action in a Windows Installer project, the answer "Create a Library project" is listed as a Correct answer. This is incorrect. Creating a Library project is not a requirement for adding a custom step to a Windows Installer project.

There is also a typographic error in the wording of the question. ("You are using creating a ...")

J. Nygren  Apr 19, 2013 
Other Digital Version n/a
Test question

One of the test questions is:

'You are implementing a WPF window to display a list of Payment objects in a ListBox control. Your need to add a data template...'

The answer given is:
'A trigger should apply a scale transform to increase the size ...'

But this contradicts the explanation. It seems the correct answer is:

'A list item's border should be red when a status property indicates that the payment is overdue.

Philip Brown  May 26, 2013 
Other Digital Version n/a
Test question from CD

One of the test questions is:

You are using the WPF Tree Visualizer. You need to determine the origin of the Background property value of a ComboBox.

Which part of the WPF Tree Visualizer gives this information?

The given answer is:

The Value column of the Properties display gives the value of an individual property. This is the correct location to check.

But seems is should be:

The source column of the Properties display.

The question is to 'determine the origin' of the property value, not what is the property value.

Philip Brown  May 29, 2013 
Other Digital Version n/a
Test question from CD

One of the test questions is:

You are implementing a WPF window. When a user clicks a button named btnShowDetails, you want to expand a Grid named grdDetails by increasing the height of this panel from 0 to 100 over a two-second time frame. You need to implement this behavior.

What should you do? (Each correct answer presents part of the solution. Choose two.)

The 2 answers are published as:

Programmatically start the storyboard in a btnShowDetails Click event handler. (this is OK)

Add the following storyboard to the page resources:
<Page.Resources>
<Storyboard x:Key="expanderStoryboard">
<DoubleAnimation Storyboard.TargetName="grdDetails" Storyboard.TargetProperty="Height" From="0.0" To="100.0" Duration="0:0:2" />
</Storyboard>
</Page.Resources>

The 2nd answer above does not seem quite right because it refers to resources of a 'Page', but the initial statement says 'Window'. A window cannot refer to 'Page.Resources' - only a 'Page' can.

Philip Brown  May 29, 2013 
Other Digital Version Exam
Practice Exam, Question 511P_1.1_12

One of the answer choices is "MenuStrip". However the corresponding explanation entry refers to "MainStrip", which is not the same control. MainStrip would be an incorrect answer to this question, as stated in the explanation. However MenuStrip could be a correct answer.

JNygren  Jul 15, 2013 
, Printed, PDF, , Other Digital Version Page 1
The whole book

This book does not actually cover all the material that you can be tested on in the exam. I would advise anyone considering taking this to have a look at:

www.microsoft.com/learning/en/us/exam.aspx?ID=70-511

and try and figure out what it is they actually want you to know, and read about it on MSDN. Avoid buying anything by this author - it is very badly written and full of mistakes:

http://oreilly.com/catalog/errata.csp?isbn=9780735627420

Anonymous  Mar 23, 2012 
Printed Page 3
3rd bullet point in "...you will be able to:" box

Although attached properties are special cases of dependency properties, the term "dependency property" is used where "attached property" would be more appropriate. The wording "dependency property" is never used in the chapter.

John McEldowney  Oct 28, 2012 
Printed Page 43
C# code sample

"Image myImage;" should be "Image myImage = new Image();"

John McEldowney  Oct 28, 2012 
Printed Page 49
3rd paragraph, 2nd sentence

"If Brush defined..." should read "If BlueBrush defined..."

John McEldowney  Oct 28, 2012 
PDF Page 82
below middle

The step 3 of the description of how to define a new routed event says the routed event should be registered in the constructor. That doesnt work if the constructor isnt static.

The registration must be done as an initialization in the definition of the delegate member since the member is declared static and the constructor of a UIElement derived type normally isnt.

Mats Wessling  Oct 03, 2012 
Printed, PDF Page 82
List item #3, VB Sample

The VB sample states :

EventManager.RegisterRoutedEvent("SuperClick", _
RoutingStrategy.Bubble, GetType(RoutedEventArgs), GetType(Window1))

It should be GetType(RoutedEventHandler) instead of GetType(RoutedEventArgs)

C# sample is OK.

Adrien Constant  Nov 30, 2012 
PDF Page 83
Top of page. second sentence.

Sentence says: "A class level event handler ... is always invoked before instance handlers". That is only true for tunneling events.
For bubbling events they are called AFTER the instance handlers.

Mats Wessling  Oct 03, 2012 
Printed Page 107
example at bottom

The description jus above the example states that it sets ahead from its current point in the timeline. This seems incorrect since the example uses Origin="BeginTime". It should be "Duration".

Ernst Steenbrink  Jul 30, 2012 
Printed Page 113
first paragraph of practice

>n the first sentence of the practice exercise it says "In this practice, you improve upon your solution to the practice in lesson 1 of this chapter." in fact it is improving on the practice in lesson 3 of chapter 1, as the first step is to open the practice from that lesson.

shawn greer  Jan 05, 2014 
PDF Page 127
two Paragraph at end of page

The book says:
"If the Stretch property is set to None, you can also change the behavior of ImageBrush by setting the TileMode property."

but the the right is:
We can change the ImageBrush by setting the TileMode property without setting the Stretch property to None.
Stretch ="None" is not necessary to achive tiled image.




the last paragraph is also very suspicious , It says:
"You can set the Viewport property to select a portion of the original source image to use as the tile source"

but I think (because this topic is a bit complex, I am not 100% sure) the the right is:
Viewport property is for selecting a portion of the target object which will be covered by image.




Ehsan   Feb 26, 2014 
Printed, PDF Page 177
1st Para

In the 1st paragraph, SizeTypes are listed as Absolute, Relaitve and AutoSize.

The types are actually Absolute, Percent and AutoSize
http://msdn.microsoft.com/en-us/library/system.windows.forms.tablelayoutstyle.sizetype(v=vs.100).aspx


Also, in the 3rd paragraph, it says that if the SizeType is set to anything but Absolute, you can set the width/height, despite the example above the paragraph showing otherwise.

Aaron Hudson  Jul 05, 2012 
Printed, PDF Page 178
1st Para

The text states that in a TableLayoutPanel, the Columns are numbered starting at 1 and the Rows are numbered starting at 0.

According to MSDN, both Columns and Rows are zero-based:
http://msdn.microsoft.com/en-us/library/system.windows.forms.tablelayoutpanel.getcontrolfromposition.aspx

Aaron Hudson  Jul 05, 2012 
Printed Page 182
Table 4-10 first row, BorderStyle

CHANGE TabPage border
TO SplitContainer border

Per Hygum Due  Aug 13, 2012 
Printed Page 185
Lesson Summary, Bullet number 3

Region class not explained in lesson or found in book index.

Described on MSDN:

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.region.aspx

Per Hygum Due  Aug 13, 2012 
PDF Page 200
1st Paragraph

TableLayoutPanel1.Controls.Add(aButton,3,3);

Columns in TableLayoutPanel are numbers starting at 1, whereas rows are numbers starting
at 0. Thus, the preceding example adds aButton to the cell in column 3 at row 3, which is
actually the third column and the fourth row that the user sees


I have created a Win Form project (targeting both v2.0 and v4.0) and i have figured out that its always inserted in 4th row 4th column when viewed.

GrowStyle is set to TableLayoutPanelGrowStyle.AddRows; I have not specified any custom LayoutEngine

TableLayoutControlCollection.Add Method (Control, Int32, Int32) (http://msdn.microsoft.com/en-us/library/he3sxc2a.aspx) says:

If neither column nor row is -1, control will be added at the absolute position given by (column, row).

Please write to me if you feel i have done something wrong.

Ady  Jan 02, 2013 
Printed Page 204
1st paragraph line 3

CHANGE TextBox property
TO TextBox control

Per Hygum Due  Aug 13, 2012 
Printed Page 213
Table 4-19, SelectedIndex

CHANGE MutilExtended
TO MultiExtended

Per Hygum Due  Aug 22, 2012 
Printed Page 281
2nd and 3rd C# example

In last two Sample of C# code is written:

[ToolBoxBitmap(GetType(System.Windows.Forms.Button)]

and

[ToolBoxBitmap(GetType(System.Windows.Forms.Button), "myControl.bmp"]

But should be

[ToolBoxBitmap(typeof(System.Windows.Forms.Button)]

and

[ToolBoxBitmap(typeof(System.Windows.Forms.Button), "myControl.bmp"]


Must change GetType with typeof.

Luca  Nov 26, 2012 
Printed Page 289
top of page

Sentence reads "...a Border element that contains the 'ellipse' and appears as a Chocolate border..."
Should read "...a Border element that contains the 'rectangle' and appears as a Chocolate border..."

Anonymous  Dec 23, 2012 
Printed Page 299
Answer A top of page

In Answer 'A' the ControlTemplate uses a Label as inner element. This Control Template and the Style that references it uses Label elements as the 'TargetType'.
This causes an infinite loop in the Window disabling it form loading.
The Label element should be changed to a textblock.

Anonymous  Dec 28, 2012 
Printed Page 358
Lesson Summary. 4th point.

Original:
"You can create custom validation rules by implementing the IValidationRule class."

Should be:
"You can create custom validation rules by creating classes that inherit the abstract ValidationRule class"

Stefan Jope-Eser  Nov 22, 2012 
Printed Page 365
Practice 1 paragraph

CHANGE IMultiValveConverter
TO IMultiValueConverter

Per Hygum Due  Aug 22, 2012 
Other Digital Version 387
example for Setting the Data Template for Content controls

{Binding} is missing for the label control (XAML given as example for content controls) which is used in the example. Correctly listed for item control.

This leads the reader to the assumption that specifying the binding inside the data template is all that is needed. But the control contol needs to be bound too.

Prashant Sasi  Nov 12, 2013 
Printed Page 395
Sample of C# Code bottom of page

First line of snippet reads: "System.ComponentModel.ICollectionView myView;"
Should read: "ListCollectionView myView;"

Daniel  Nov 19, 2012 
Printed Page 414
middle, C# code

CHANGE Remove["ProductName"];
TO Remove("ProductName");

DataGridViewColumnCollection.Remove Method (String)
in .NET FW4 MSDN doc

Per Hygum Due  Aug 22, 2012 
Printed Page 419
Line 3 under table 8-2

CHANGE DataGrid.AutoGeneratingColumn property
TO DataGrid.AutoGeneratingColumn event

http://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid.autogeneratingcolumn(v=vs.100)

Per Hygum Due  Aug 22, 2012 
Printed, PDF Page 467
Line 6

Change "CancellationPending method" to "CancellationPending property"

Per Hygum Due  Jul 18, 2012 
PDF Page 501
Point 7

"7. Double-click Security Levels, double-click Set As Default, and click Yes.
Your new software restriction policy is now in place."

Local Computer Policy > Computer Configuration > Windows Settings > Security Settings > Software Restriction Policies > Security Levels:

The choices are:

Disallowed | Basic User | Unrestricted

Which one to double-click and set to Default is missing in point 7 ?

Per Hygum Due  Aug 01, 2012 
Printed Page 527
Lower 2/3 of the page

In the Sample of C# code it says:

InvokeProvider.Invoke();

But it should refer to the instance which is:

InvProvider.Invoke();

Philip Brown  Aug 04, 2012 
Printed Page 537
middle paragraph

In the paragraph starting with 'You can configure...' it later says (see Table 11-2 for a list of namespaces).

It seems that table should be 11-3, not 11-2.

Philip Brown  Aug 03, 2012 
Printed Page 550
Middle pages, starts with '1. In the File System editor...'

Regarding configuring conditional installation based on the Operating System. the sentence:

1. In the File System Editor, select the file...

should be:

1. In the Custom Actions Editor, select the file ...

Per MSDN and my testing: Conditions can be set for custom actions using the Condition property in the Custom Actions Editor; they cannot be set in the File System Editor.

Philip Brown  Aug 06, 2012 
Printed Page 554
Item # 6

Regarding creating a custom action, #6 says:

Browse to the file that implements your custom action, etc.

Should be:

Double-click 'Application Folder' and select Primary Output From 'your application', then click OK.

The exercise on page 556 item #15 has it right.

Philip Brown  Aug 06, 2012 
Printed Page 557
3rd bullet point

The 3rd bullet point that starts with 'Use the File System editor' ends with:

'and install files conditionally, based on the operating system'.

This last point pertains to the Custom Actions editor, not the File System editor. Perhaps move this information after the 5th bullet point.

Philip Brown  Aug 06, 2012 
Printed, PDF Page 568
Exercise step 6

Step 6, publishing, fails. Error message is: Unable to find manifest signing certificate in the certificate store.

Solution is to go to the Sigining tab and unselect 'Sign the ClickOnce manifests'

Anonymous  Mar 27, 2012 
Printed, PDF Page 582
Answares, Chapter 3, lesson 2, ex. 1

Correct answare for the question - , Chapter 3, lesson 2, ex. 1 is D

To flip object across y-axis you must sest ScaleX = -1 (not ScaleY) as in the book

Jacek Szybisz  Jun 11, 2012 
Printed, PDF Page 582
Answares, Chapter 3, lesson 2, ex. 2

Answares, Chapter 3, lesson 2, ex. 2

Question does not make sense.

In some cases is better to use SoundPlayer (for ex. if there is a chance that user of this application does not have media player 10 installed). There are also situations that is better to use Media Player or MediaElement (for ex. if there is need to play COMPRESSED .waw files or user must have control over the sound [pause, stop, play, etc])

Unfortunately this question does not contain any information that can be useful to choose the correct answare

Jacek Szybisz  Jun 11, 2012