Microsoft KB Archive/930739

= MCTS Self-Paced Training Kit (Exam 70-528): Microsoft .NET Framework 2.0 Web-Based Client Development Comments and Corrections =

Article ID: 930739

Article Last Modified on 8/22/2007

-

APPLIES TO


 * MCTS Self-Paced Training Kit (Exam 70-528): Microsoft .NET Framework 2.0 Web-Based Client Development, ISBN 0-7356-2334-1

-



SUMMARY
This article contains comments, corrections, and information about known errors relating to the Microsoft Press book MCTS Self-Paced Training Kit (Exam 70-528): Microsoft .NET Framework 2.0 Web-Based Client Development, 0-7356-2334-1.

The following topics are covered:


 * Test Question: 528P_5.2.5_01 Marks correct answer as incorrect
 * Test Question: Answer to Nested master file question is incorrect
 * Page 98: Label can also be rendered as a tag
 * Page 102: Incorrect title in Figure 3-3
 * Page 112: HotSpot should be ImageMap
 * Page 136: Control class needs to be replaced with CompositeControl class
 * Page 149: Label2 should be changed to Label1
 * Page 159: Incorrect class used
 * Page 160: Method used instead of event
 * Page 162 and 163: Incorrect property used in code example
 * Page 173: Incorrect description of Figure 3-33
 * Page 173: UpperAlpha used in place of UpperRoman
 * Page 186: Incorrect class used in Summary
 * Page 207: Definition of MenuItemBinding object incorrect
 * Page 207: &quot;nodes&quot; should be &quot;items&quot;
 * Pages 214-215: Update customer ID code needs to be removed
 * Page 219: AdServer should be AdRotator
 * Pages 233-234: LoadOption values are obsolete and incorrect
 * Page 255: Phrase &quot;retrieves the populated DataSet,&quot; repeated incorrectly
 * Page 274: AddSchemaWithKey should be replaced with AddWithKey
 * Page 274: AddWithPrimaryKey should be replaced with AddWithKey
 * Page 305: PreserveCurrentValues should be replaced with PreserveChanges
 * Page 306: The word &quot;connections&quot; should be replaced with &quot;commands&quot;
 * Page 351: XmlTextWrite should be replaced with XmlTextReader
 * Page 364: SelectElementsByTagName should be changed to GetElementsByTagName
 * Page 477: Figure 6-4 is incorrect and should be disregarded
 * Page 483: &quot;if&quot; should be replaced with &quot;of&quot;
 * Page 551: The file extension .axd is incorrectly printed twice
 * Page 593: &quot;master=&quot; used in place of &quot;MasterPageFile=&quot;
 * Page 633: InitComplete should be GenerateModeList
 * Page 660: Incorrect brackets used in C# code sample
 * Page 687: AddUsersToRoles incorrectly listed twice



Test Question: 528P_5.2.5_01 Marks correct answer as incorrect
On the Readiness Review assessment, test question 528P_5.2.5_01 indicates that answer 2 is correct. The correct answer is 4.

To make a skin optional, define a SkinID property. Named skins do not automatically apply to controls by type. Instead, you explicitly apply a named skin to a control by setting the control's SkinID property. Creating named skins allows you to set different skins for different instances of the same control in an application.

Test Question: Answer to Nested master file question is incorrect
On the Readiness Review assessment, the answer to the following question is incorrect:

Which of the following is a valid declaration for a nested master file?

The answer reads:

<%@ Master Language=&quot;VB&quot; master=&quot;Blue.master&quot;%>

It should read:

<%@ Master Language=&quot;VB&quot; MasterPageFile=&quot;Blue.master&quot;%>

Page 98: Label can also be rendered as a tag
On page 98, the second to the last sentence of the second paragraph reads:

&quot;The Literal control does not provide substantial functionality and does not add any HTML elementrs to the Web page where the Label is rendered as a tag.&quot;

It should read:

&quot;The Literal control does not provide substantial functionality and does not add any HTML elementrs to the Web page where the Label is rendered as a or a tag.&quot;

Page 102: Incorrect title in Figure 3-3
On page 102, the title of the rightmost diagram in Figure 303 reads:

&quot;Table&quot;

It should read:

&quot;TableCell&quot;

Page 112: HotSpot should be ImageMap
On page 112, the 4th sentence in the &quot;Understanding the HotSpotMode Property&quot; paragraph contains an incorrect control.

Change:

&quot;This means that you can specify the HotSpotMode on the ImageMap control to set a default HotSpot behavior, but the HotSpotMode of the HotSpot must be set to NotSet to inherit the behavior from the HotSpot.&quot;

To:

&quot;This means that you can specify the HotSpotMode on the ImageMap control to set a default HotSpot behavior, but the HotSpotMode of the HotSpot must be set to NotSet to inherit the behavior from the ImageMap.&quot;

Page 136: Control class needs to be replaced with CompositeControl class
On page 136, the first sentence of the second to the last paragraph reads:

&quot;The Wizard control inherits from the Control class, and the BaseWizardStep inherits from View, as shows in Figure 3-20.&quot;

It should read:

&quot;The Wizard control inherits from the CompositeControl class, and the BaseWizardStep inherits from View, as shows in Figure 3-20.&quot;

Page 149: Label2 should be changed to Label1
On page 149, the second sentence of step 3 reads:

&quot;Add code to this method that places the PostBackValue into Label2.&quot;

It should read:

&quot;Add code to this method that places the PostBackValue into Label1.&quot;

Page 159: Incorrect class used
Page 159, the first sentence under Figure 3-25 reads:

&quot;The DataBoundControl class has a method called DataBind.&quot;

It should read:

&quot;The BaseDataBoundControl class has a method called DataBind.&quot;

Page 160: Method used instead of event
On page 160, the last sentence of the first paragraph reads:

&quot;The data-bound control automatically connects to the data source control at run time by calling the DataBind method on this control, which also raises the DataBound method.&quot;

It should read:

&quot;The data-bound control automatically connects to the data source control at run time by calling the DataBind method on this control, which also raises the DataBound event.&quot;

Page 162 and 163: Incorrect property used in code example
On pages 162, the second code example at the bottom of the page reads:

<%# Eval(&quot;Vin&quot;, &quot;{0:C}&quot; ) %>

It should read:

<%# Eval(&quot;Price&quot;, &quot;{0:C}&quot; ) %>

On page 163, the second code example at the top of the page reads:

<%# Bind(&quot;Vin&quot;, &quot;{0:C}&quot; ) %>

It should read:

<%# Bind(&quot;Price&quot;, &quot;{0:C}&quot; ) %>

Page 173: Incorrect description of Figure 3-33
On page 173, the paragraph immediately preceeding Figure 3-33 is incorrect and should be disregarded.

Page 173: UpperAlpha used in place of UpperRoman
On page 173, the first sentence of the last paragraph reads:

&quot;If the BulletList control is set to render numbers, you can set the BulletStyle to LowerAlpha, UpperAlpha, LowerRoman, and UpperAlpha fields.&quot;

It should read:

&quot;If the BulletList control is set to render numbers, you can set the BulletStyle to LowerAlpha, UpperAlpha, LowerRoman, and UpperRoman fields.&quot;

Page 186: Incorrect class used in Summary
On page 186, in the C# code example, the 5th line from the bottom of the page reads:

/// Summary description for EmployeeList

It should read:

/// Summary description for CarList

Page 207: Definition of MenuItemBinding object incorrect
On page 207, the first sentence of the last paragraph contains an incorrect definition for MenuItemBinding.

Change:

&quot;The Menu control contains a DataBindings property that is a collection of MenuItemBinding objects that define the binding between data items and TreeNodes.&quot;

To:

&quot;The Menu control contains a DataBindings property that is a collection of MenuItemBinding objects that define the binding between a data item and the menu item it is binding to in a Menu control.&quot;

Page 207: &quot;nodes&quot; should be &quot;items&quot;
On page 207, the second sentence of the last paragraph needs to have &quot;nodes&quot; changed to &quot;items&quot;.

Change:

&quot;You can specify the criteria for binding and the data item properties to display in the nodes.&quot;

To:

&quot;You can specify the criteria for binding and the data item properties to display in the items.&quot;

Pages 214-215: Update customer ID code needs to be removed
On pages 214 & 215, a line of code that is used to update the customer ID needs to be removed.

Delete the following line from the VB code (line 21): customerFound.Id = updateCustomer.Id

Delete the following line from the C# code (line 34): customerFound.Id = updateCustomer.Id;

Page 219: AdServer should be AdRotator
On page 219, the control in Answer C to Question 1 is incorrect.

Change:

&quot;C. Use the AdServer control and create an XML file with configuration of the control.&quot;

To:

&quot;C. Use the AdRotator control and create an XML file with configuration of the control.&quot;

Pages 233-234: LoadOption values are obsolete and incorrect
On pages 233-234, the values in the two bullet points on page 233 and the bullet point on page 234 reads:

&quot;OverwriteRow Overwrites the original DataRowVersion and the current DataRowVersion and changes the RowState to Unchanged. New rows also have the RowState of Unchanged.

PreserveCurrentValues (default) Overwrites the original DataRowVersion, but does not modify the current DataRowVersion. New rows have the RowState of Unchanged as well.

UpdateCurrentValues Overwrites the current DataRowVersion, but does not modify the the original DataRowVersion. New rows have the RowState of Added. Rows that had a RowState of Unchanged have the RowState of Unchanged if the current DataRowVersion is the same as the original DataRowVersion, but if they are different, the RowState is Modified.&quot;

They should read:

&quot;OverwriteChanges Overwrites the original DataRowVersion and the current DataRowVersion and changes the RowState to Unchanged. New rows also have the RowState of Unchanged.

PreserveChanges (default) Overwrites the original DataRowVersion, but does not modify the current DataRowVersion. New rows have the RowState of Unchanged as well.

Upsert Overwrites the current DataRowVersion, but does not modify the the original DataRowVersion. New rows have the RowState of Added. Rows that had a RowState of Unchanged have the RowState of Unchanged if the current DataRowVersion is the same as the original DataRowVersion, but if they are different, the RowState is Modified.&quot;

Page 255: Phrase &quot;retrieves the populated DataSet,&quot; repeated incorrectly
On page 255, the last sentence of the paragraph under the heading &quot;Binding to the DataSet Object&quot; reads:

&quot;The code sample retrieves the populated DataSet, retrieves the populated DataSet, and binds the DataSet to the GridView controls:&quot;

It should read:

&quot;The code sample retrieves the populated DataSet and binds the DataSet to the GridView controls:&quot;

Page 274: AddSchemaWithKey should be replaced with AddWithKey
On page 274, the 5th sentence of the first paragraph reads:

&quot;The AddSchemaWithKey is selected, which means that if a new DataTable is added to the copy DataSet object, the new DataTable and its data are added to the original DataSet object.&quot;

It should read:

&quot;The AddWithKey is selected, which means that if a new DataTable is added to the copy DataSet object, the new DataTable and its data are added to the original DataSet object.&quot;

Page 274: AddWithPrimaryKey should be replaced with AddWithKey
On page 274, the second bullet point reads:

&quot;AddWithPrimaryKey Adds the necessary DataTable, DataColumn, and PrimaryKey objects to complete the schema.&quot;

It should read:

&quot;AddWithKey Adds the necessary DataTable, DataColumn, and PrimaryKey objects to complete the schema.&quot;

Page 305: PreserveCurrentValues should be replaced with PreserveChanges
On page 305, the first sentence of the first paragraph reads:

&quot;One option is to load the DataTable object again, using the default PreserveCurrentValues enumeration value, which loads the original DataRowVersion with the data from the database while leaving the current DataRowVersion untouched.&quot;

It should read:

&quot;One option is to load the DataTable object again, using the default PreserveChanges enumeration value, which loads the original DataRowVersion with the data from the database while leaving the current DataRowVersion untouched.&quot;

Page 306: The word &quot;connections&quot; should be replaced with &quot;commands&quot;
On page 306, the last sentence of the second paragraph reads:

&quot;A MARS solution is to simply create two connections: one for the author list and one for the total of royalties query.&quot;

It should read:

&quot;A MARS solution is to simply create two commands: one for the author list and one for the total of royalties query.&quot;

Page 351: XmlTextWrite should be replaced with XmlTextReader
On page 351, the first sentence of the XmlTextReader definition reads:

&quot;The XmlTextWrite provides non-cached, forward-only access to XML data.&quot;

It should read:

&quot;The XmlTextReader provides non-cached, forward-only access to XML data.&quot;

Page 364: SelectElementsByTagName should be changed to GetElementsByTagName
On page 364, the last sentence on the page reads:

&quot;Note that this method can perform an XPath lookup on any element or attribute, with much more querying flexibility; whereas, the SelectElementsByTagName is limited to a tag name.&quot;

It should read:

&quot;Note that this method can perform an XPath lookup on any element or attribute, with much more querying flexibility; whereas, the GetElementsByTagName is limited to a tag name.&quot;

Page 477: Figure 6-4 is incorrect and should be disregarded
On page 477, Figure 6-4 is a copy of Figure 4-4 on page 241 and should be disregarded.

Page 483: &quot;if&quot; should be replaced with &quot;of&quot;
On page 483, the last sentence of the last paragraph reads:

&quot;The NavigateTest3.aspx page contains a Label control called lbl-Data that is populated with the data from txtData if NavigateTest3.aspx, which was called by using a cross-page PostBack, as shown in the following example:&quot;

It should read:

&quot;The NavigateTest3.aspx page contains a Label control called lbl-Data that is populated with the data from txtData of NavigateTest3.aspx, which was called by using a cross-page PostBack, as shown in the following example:&quot;

Page 551: The file extension .axd is incorrectly printed twice
On page 551, the second sentence of the first paragraph contains two references to the axd file extenion, the second reference needs to be removed and two additional extensions needs to be added.

Change:

&quot;For example, IIS passes requests for .aspx, .axd, and .axd to the Aspnet_Isapi.dll file that performs the ASP.NET processing.&quot;

To:

&quot;For example, IIS passes requests for .aspx, .axd, .ascx, and .asmx to the Aspnet_Isapi.dll file that performs the ASP.NET processing.&quot;

Page 593: &quot;master=&quot; used in place of &quot;MasterPageFile=&quot;
On page 593, the first line in the VB and C# code reads:

'VB <%@ Master Language=&quot;VB&quot; master=&quot;Parent.master&quot;%>

//C# <%@ Master Language=&quot;C#&quot; master=&quot;Parent.master&quot;%>

They should read:

'VB <%@ Master Language=&quot;VB&quot; MasterPageFile=&quot;Parent.master&quot;%>

//C# <%@ Master Language=&quot;C#&quot; MasterPageFile=&quot;Parent.master&quot;%>

Page 633: InitComplete should be GenerateModeList
On page 633, Step 4 contains an incorrect method in the VB and C# code samples.

Change: 'VB Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs) AddHandler Page.InitComplete, AddressOf InitComplete End Sub

//C# void Page_Init(object sender, EventArgs e) { Page.InitComplete += new EventHandler(InitComplete); }

To: 'VB Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs) AddHandler Page.InitComplete, AddressOf GenerateModeList End Sub

//C# void Page_Init(object sender, EventArgs e) { Page.InitComplete += new EventHandler(GenerateModeList); }

Page 660: Incorrect brackets used in C# code sample
On page 660, the 7th line down in the C# code reads:

Culture = Request.Form(&quot;DropDownList1&quot;);

It should read:

Culture = Request.Form[&quot;DropDownList1&quot;];

Page 687: AddUsersToRoles incorrectly listed twice
On page 687, the first bullet point under the Note box reads:

&quot;AddUserToRole, AddUsersToRoles, AddUsersToRole, and AddUsersToRoles Adds a user to a role&quot;

It should read:

&quot;AddUserToRole, AddUsersToRoles, and AddUsersToRole Adds a user to a role&quot;

Microsoft Press is committed to providing informative and accurate books. All comments and corrections listed above are ready for inclusion in future printings of this book. If you have a later printing of this book, it may already contain most or all of the above corrections.

Additional query words: 0-7356-2334-1 978-0-7356-2334-7

Keywords: KB930739

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.