Article ID: 930739 - Last Review: August 22, 2007 - Revision: 2.9 MCTS Self-Paced Training Kit (Exam 70-528): Microsoft .NET Framework 2.0 Web-Based Client Development Comments and CorrectionsOn This PageSUMMARY
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, 978-0-7356-2334-7. The following topics are covered:
MORE INFORMATIONTest Question: 528P_5.2.5_01 Marks correct answer as incorrectOn 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 incorrectOn 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: It should read: CD-ROM: Incorrect answer marked correct in assessment questionIn the practice exam on the companion CD, one of the questions is scored incorrectly. The question reads:"You and a group of developers are creating an ASP.NET Web site. You want to give developers the option to apply a skin to Button controls, but you do NOT want the skin applied automatically. Which of the following skin files does this correctly?" The answer marked correct reads: The answer that should be marked correct reads: Page 77: "Write" should be "WriteLine"On page 77, the code box under Sub-Step C of Step 4 contains a partialliy incorrect line of code.Change: To: Page 98: Label can also be rendered as a <label> tagOn page 98, the second to the last sentence of the second paragraph reads:"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 <span> tag." It should read: "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 <span> or a <label> tag." Page 102: Incorrect title in Figure 3-3On page 102, the title of the rightmost diagram in Figure 303 reads:"Table" It should read: "TableCell" Page 112: HotSpot should be ImageMapOn page 112, the 4th sentence in the "Understanding the HotSpotMode Property" paragraph contains an incorrect control.Change: "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." To: "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." Page 136: Control class needs to be replaced with CompositeControl classOn page 136, the first sentence of the second to the last paragraph reads:"The Wizard control inherits from the Control class, and the BaseWizardStep inherits from View, as shows in Figure 3-20." It should read: "The Wizard control inherits from the CompositeControl class, and the BaseWizardStep inherits from View, as shows in Figure 3-20." Page 149: Label2 should be changed to Label1On page 149, the second sentence of step 3 reads:"Add code to this method that places the PostBackValue into Label2." It should read: "Add code to this method that places the PostBackValue into Label1." Page 159: Incorrect class usedPage 159, the first sentence under Figure 3-25 reads:"The DataBoundControl class has a method called DataBind." It should read: "The BaseDataBoundControl class has a method called DataBind." Page 160: Method used instead of eventOn page 160, the last sentence of the first paragraph reads:"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." It should read: "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." Page 162 and 163: Incorrect property used in code exampleOn pages 162, the second code example at the bottom of the page reads:It should read: On page 163, the second code example at the top of the page reads: It should read: Page 173: Incorrect description of Figure 3-33On page 173, the paragraph immediately preceeding Figure 3-33 is incorrect and should be disregarded.Page 173: UpperAlpha used in place of UpperRomanOn page 173, the first sentence of the last paragraph reads:"If the BulletList control is set to render numbers, you can set the BulletStyle to LowerAlpha, UpperAlpha, LowerRoman, and UpperAlpha fields." It should read: "If the BulletList control is set to render numbers, you can set the BulletStyle to LowerAlpha, UpperAlpha, LowerRoman, and UpperRoman fields." Page 186: Incorrect class used in SummaryOn page 186, in the C# code example, the 5th line from the bottom of the page reads:It should read: Page 207: Definition of MenuItemBinding object incorrectOn page 207, the first sentence of the last paragraph contains an incorrect definition for MenuItemBinding.Change: "The Menu control contains a DataBindings property that is a collection of MenuItemBinding objects that define the binding between data items and TreeNodes." To: "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." Page 207: "nodes" should be "items"On page 207, the second sentence of the last paragraph needs to have "nodes" changed to "items".Change: "You can specify the criteria for binding and the data item properties to display in the nodes." To: "You can specify the criteria for binding and the data item properties to display in the items." Pages 214-215: Update customer ID code needs to be removedOn 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): Delete the following line from the C# code (line 34): Page 216: "upper-left" should be "upper-right"On page 216, the first sentence in step 4 uses an incorrect side to display the Tasks window.Change: "4. Click the symbol in the upper-left corner of the ObjectDataSource1 control to display the ObjectDataSource Tasks window." To: "4. Click the symbol in the upper-right corner of the ObjectDataSource1 control to display the ObjectDataSource Tasks window." Page 217: "upper-left" should be "upper-right"On page 217, Steps 10 and 16 contain incorrect references to where a symbol is in a control.Change: "10. Click the symbol in the upper-left corner of the GridView control to display the GridView Tasks window. Choose ObjectDataSource1 as the Data Source." To: "10. Click the symbol in the upper-right corner of the GridView control to display the GridView Tasks window. Choose ObjectDataSource1 as the Data Source." Change: "16. Click the symbol in the upper-left corner of the DetailsView control to display the DetailsView Tasks window. Choose ObjectDataSource2 as the Data Source." To: "16. Click the symbol in the upper-right corner of the DetailsView control to display the DetailsView Tasks window. Choose ObjectDataSource2 as the Data Source." Page 219: AdServer should be AdRotatorOn page 219, the control in Answer C to Question 1 is incorrect.Change: "C. Use the AdServer control and create an XML file with configuration of the control." To: "C. Use the AdRotator control and create an XML file with configuration of the control." Pages 233-234: LoadOption values are obsolete and incorrectOn pages 233-234, the values in the two bullet points on page 233 and the bullet point on page 234 reads:"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." They should read: "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." Page 255: Phrase "retrieves the populated DataSet," repeated incorrectlyOn page 255, the last sentence of the paragraph under the heading "Binding to the DataSet Object" reads:"The code sample retrieves the populated DataSet, retrieves the populated DataSet, and binds the DataSet to the GridView controls:" It should read: "The code sample retrieves the populated DataSet and binds the DataSet to the GridView controls:" Page 274: AddSchemaWithKey should be replaced with AddWithKeyOn page 274, the 5th sentence of the first paragraph reads:"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." It should read: "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." Page 274: AddWithPrimaryKey should be replaced with AddWithKeyOn page 274, the second bullet point reads:"AddWithPrimaryKey Adds the necessary DataTable, DataColumn, and PrimaryKey objects to complete the schema." It should read: "AddWithKey Adds the necessary DataTable, DataColumn, and PrimaryKey objects to complete the schema." Page 305: PreserveCurrentValues should be replaced with PreserveChangesOn page 305, the first sentence of the first paragraph reads:"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." It should read: "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." Page 306: The word "connections" should be replaced with "commands"On page 306, the last sentence of the second paragraph reads:"A MARS solution is to simply create two connections: one for the author list and one for the total of royalties query." It should read: "A MARS solution is to simply create two commands: one for the author list and one for the total of royalties query." Page 324: RaiseError should be RaisErrorOn page 324, the second sentence of the "Detecting Information with the Connection Event" section refers to RaiseError instead of RaisError.Change: "You can use the InfoMessage event to view the results of SQL Print statements and any messages that are available as a result of the SQL RaiseError statement, regardless of the error level." To: "You can use the InfoMessage event to view the results of SQL Print statements and any messages that are available as a result of the SQL RaisError statement, regardless of the error level." Page 351: XmlTextWrite should be replaced with XmlTextReaderOn page 351, the first sentence of the XmlTextReader definition reads:"The XmlTextWrite provides non-cached, forward-only access to XML data." It should read: "The XmlTextReader provides non-cached, forward-only access to XML data." Page 351: DocumentNavigator should be XPathNavigatorOn page 351, the first sentence of the "XPathNavigator" section refers to DocumentNavigator rather than XPathNavigator.Change: "The DocumentNavigator provides efficient navigation of an XmlDocument by providing XPath support for navigation." To: "The XPathNavigator provides efficient navigation of an XmlDocument by providing XPath support for navigation." Page 362: SelectSingleNode should be GetElementByIDOn page 362, in the first sentence after the code sample, the second reference to SelectSingleNode should be GetElementByID.Change: "The SelectSingleNode method does not require a DTD to be provided and can perform an XPath lookup on any element or attribute where the SelectSingleNode requires an ID data type and a DTD." To: "The SelectSingleNode method does not require a DTD to be provided and can perform an XPath lookup on any element or attribute where the GetElementByID requires an ID data type and a DTD." Page 364: SelectElementsByTagName should be changed to GetElementsByTagNameOn page 364, the last sentence on the page reads:"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." It should read: "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." Page 380: "Hi" should be "this test"On page 380, the first sentence of the 2nd paragraph contains an incorrect word.Change: "The DTD states that the myGrandChild element must be empty, but one of the myGrandChild elements of myChild ref-1 has a myGrandChild element containing the word Hi." To: "The DTD states that the myGrandChild element must be empty, but one of the myGrandChild elements of myChild ref-2 has a myGrandChild element containing the words this test." Page 384: "access" should be "support for"On page 384, the third bullet under Chapter Summary is incorreclty worded.Change: "ADO.NET provides access XML files using the classes in the System.Xml namespace." To: "ADO.NET provides support for XML files using the classes in the System.Xml namespace." Page 451: class should be public classOn page 451, the 9th line creates a class rather than a public class.Change: To: Pages 452-453: C# should be VB and vice versaOn page 452, the first line of the VB code sample for step 4 is incorrect.Change: To: On page 453, the first line of the C# code sample for step 4 is incorrect. Change: To: Page 473: does should be does notOn page 473, the first sentence of the second paragraph is incorrect.Change: "Note that, when using the CustomValidator, the server-side validation does need to provide the same validation at the client-side validation." To: "Note that, when using the CustomValidator, the server-side validation does not need to provide the same validation at the client-side validation." Page 476: "to" should be "of"On page 476, Step 5 contains an incorrect word.Change: "5. Set the TextMode property to txtPassword and txtConfirm to Password." To: "5. Set the TextMode property of txtPassword and txtConfirm to Password." Page 477: Figure 6-4 is incorrect and should be disregardedOn page 477, Figure 6-4 is a copy of Figure 4-4 on page 241 and should be disregarded.Page 483: "if" should be replaced with "of"On page 483, the last sentence of the last paragraph reads:"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:" It should read: "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:" Page 483: NavigateTest3.aspx should be NavigateTest2.aspxOn page 483, the last sentence references NavigateTest3.aspx in place of NavigateTest2.aspx.Change: "The NavigateTest3.aspx page contains a Label control called lblData 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:" To: "The NavigateTest3.aspx page contains a Label control called lblData that is populated with the data from txtData of NavigateTest2.aspx, which was called by using a cross-page PostBack, as shown in the following example:" Page 513: Semicolon missing from code sampleOn page 513, the last line is missing a semicolon.Change: To: Page 529: Incorrect practice stepOn page 529, step 3 of exercise 2 contains incorrect information.Change: "In the Page_Load method for both Default.aspx and Default2.aspx, add code to increment the number of clicks in the Session object. Don’t forget to lock the application object before updating the value. Then display the value in Label2. The following code demonstrates how to do this: Notice that HiddenField.Value is a String, which requires converting data to and from the String type. This makes it less convenient than other methods of storing data." To: "In the Page_Load method for both Default.aspx and Default2.aspx, add code to increment the number of clicks in the Session object. Then display the value in Label2. The following code demonstrates how to do this: Page 548: Invalid method referencedOn page 548, the fist method referenced in Step 2 uses the word "Being" and should use "Begin".Change: "2. Create events to start and end your asynchronous code that implements System.Web.IHttpAsyncHandler.BeingProcessRequest and System.Web.IHttpAsyncHandler.EndProcessRequest." To: "2. Create events to start and end your asynchronous code that implements System.Web.IHttpAsyncHandler.BeginProcessRequest and System.Web.IHttpAsyncHandler.EndProcessRequest." Page 551: The file extension .axd is incorrectly printed twiceOn 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: "For example, IIS passes requests for .aspx, .axd, and .axd to the Aspnet_Isapi.dll file that performs the ASP.NET processing." To: "For example, IIS passes requests for .aspx, .axd, .ascx, and .asmx to the Aspnet_Isapi.dll file that performs the ASP.NET processing." Page 565: Incorrect description of the Page.Request objectOn page 565, the first sentence of the "Request" section is incorrect.Change: "The Page.Request property is an HttpRequest object that allows you to add data to the HTTP response being sent back to the client who requested a Web page." To: "The Page.Request property is an HttpRequest object that provides access to information that is part of the current page request as sent from the Web browser." Page 576: Case Scenario explanation is incorrectOn page 576, the first sentence under the Case Scenario heading refers to searlization when the Chapter was about programming web applications.Change: "In the following case scenarios, you will apply what you’ve learned about how to implement and apply serialization, as well as how to upgrade applications that make use of serialization." To: "In the following case scenarios, you will apply what you’ve learned about how to program web applications." Page 593: "master=" used in place of "MasterPageFile="On page 593, the first line in the VB and C# code reads:They should read: Page 632: "ButtonWebPart" should be "ButtonControl" and "CalendarWebPart" should be "CalendarControl"On page 632, the fist sentence of Step 5 uses an incorrect name for two Web User controls.Change: "5. Now add two new Web User controls to your Web site named CalendarWebPart and ButtonWebPart." To: "5. Now add two new Web User controls to your Web site named CalendarControl and ButtonControl." Page 633: InitComplete should be GenerateModeListOn page 633, Step 4 contains an incorrect method in the VB and C# code samples.Change: To: Page 660: Incorrect brackets used in C# code sampleOn page 660, the 7th line down in the C# code reads:It should read: Page 687: AddUsersToRoles incorrectly listed twiceOn page 687, the first bullet point under the Note box reads:"AddUserToRole, AddUsersToRoles, AddUsersToRole, and AddUsersToRoles Adds a user to a role" It should read: "AddUserToRole, AddUsersToRoles, and AddUsersToRole Adds a user to a role" Page 694: "Login" should be "ChangePassword"On page 694, the last sentence in the first Step 3 contains an incorrect control.Change: "Invalid credential errors are displayed in the Login control itself, and not the ValidationSummary control, however." To: "Invalid credential errors are displayed in the ChangePassword control itself, and not the the ValidationSummary control, however." Page 783: Incorrect instructions givenOn page 783, the second and third sentences of step 2 of exercise 2 are incorrect.Change: "Click OK. Then click Close." To: "Click Yes. Then close the resulting browser window." Page 808: five should be tenOn page 808, the last sentence of the second paragraph refers to five minutes instead of ten minutes.Change: "This example shows you how to keep an object in cache for five minutes after the last request:" To: "This example shows you how to keep an object in cache for ten minutes after the last request:" Page 820: Review question incorrectOn page 820, Review question 4 is a repeat of question 4 on page 804, and should be disregarded.Page 833: Incorrect explanation of answer 2DOn page 833, answer 2D is incorrect.Change: "Incorrect: The ImageButton is not appropriate for this function." To: "Incorrect: The FormView only shows one record at a time." 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. | Article Translations
|
Back to the top
