MCTS Self-Paced Training Kit (Exam 70-536): Microsoft.NET Framework—Application Development Foundation, Second Edition comments and corrections

Article translations Article translations
Article ID: 959409 - View products that this article applies to.
Expand all | Collapse all

On This Page

SUMMARY

This article contains comments, corrections, and information about known errors relating to the Microsoft Press book MCTS Self-Paced Training Kit (Exam 70-536): Microsoft.NET Framework Application Development Foundation, Second Edition, 978-0-7356-2619-5.

The following topics are covered:

  • CD-ROM: Error with Practice Test
  • CD-ROM: Readiness Review Assessment question contains duplicate answers
  • CD-ROM: Readiness Review Assessment question contains duplicate answers
  • CD-ROM: Readiness Review correct answer marked as incorrect
  • CD-ROM: Practice test question does not include a correct answer
  • CD-ROM: Incorrect answer marked correct in practice test question
  • Page 4: System.DateTime alias incorrect
  • Page 27: Incorrect location of project file
  • Page 48: Incorrect location of project file
  • Page 59: Incorrect location of project file
  • Pages 80-81: ten should be eleven
  • Page 108: Backreference Construct definition incomplete
  • Page 145: "(but only strings as keys)" should be removed
  • Page 197: "DataSet.ReadXML" should be "DataSet.ReadXml"
  • Page 288: "correctly" should be "directly"
  • Page 288: SynLock should be SyncLock
  • Page 332: Internet should be Intranet
  • Page 333: Internet should be Intranet
  • Page 384: Incorrect reference to choosing more than one answer
  • Pages 480-481: Incorrect hyphens used in Class names
  • Page 531: User should be Name
  • Pages 559-560: C:\Guest should be Guest
  • Page 561: Question 2 includes the answer in the question
  • Page 576: symmetric should be asymmetric
  • Page 580: "encryption" should be "decryption"
  • Page 635: "GetMethodBase" should be "GetMethodBody"
  • Page 637: "Assembly" should be "Application"
  • Page 653: Encoding type missing from code sample
  • Page 699: "CultureAndRegionBuilderInfo" should be "CultureAndRegionInfoBuilder"
  • Page 709: "abstract" should be "virtual"
  • Pages 745-746: Answer numbering is incorrect
  • Page 753: Incorrect should be Correct
  • Page 759: "CultureAndRegionBuilderInfo" should be "CultureAndRegionInfoBuilder"

MORE INFORMATION

CD-ROM: Error with Practice Test

The Companion CD includes an exam preparation practice test that you can install and run on your computer. When running the practice test, after clicking on "Score Test", you may receive the following error:

“An unanticipated error has occurred in the application.InsertLearningPlan [Microsoft OLE DB Provider for ODBC Drivers] [3604] [Microsoft][ODBC Microsoft Access Driver] The INSERT INTO statement contains the following unknown field name: ‘RefProductFurtherInfoDescription’. Make sure you have typed the name correctly, and try the operation again.”

If you encoutner this error, please click OK, and the practice test will continue. This error does not change the scoring or affect your access to the practice test.

CD-ROM: Readiness Review Assessment question contains duplicate answers

On the Readiness Review assessment, one of the questions begins:

"You are writing an application that processes phone numbers that users have typed as strings."

The correct answer is repeated twice but only one is scored as correct. This answer is correct:
static string ReformatPhone(string s)
{
	Match m = Regex.Match(s,
		@"^\(?(\d{3})\)?[\s\-]?(\d{3})\-?(\d{4})$");
	return String.Format("({0}) {1}-{2}",
		m.Groups[1], m.Groups[2], m.Groups[3]);
}

CD-ROM: Readiness Review Assessment question contains duplicate answers

On the Readiness Review Assessment, one of the questions reads:

"Which of the following C# code samples draws the graphic that is shown in the exhibit?"

The correct answer is repeated twice but only one is scored as correct. This answer is correct:
Bitmap bm = new Bitmap(300, 300);
Graphics g = Graphics.FromImage(bm);

Brush b = new LinearGradientBrush(new Point(1, 1), new Point(300, 300), Color.Blue, Color.White);
Point[] points = new Point[]
	{new Point(1, 1),
	new Point(300, 1),
	new Point(300, 300),
	new Point(1, 300)},

g.FillPolygon(b. points);

CD-ROM: Readiness Review correct answer marked as incorrect

On the Readiness Review assessment, one of the questions reads:
"Which of the following classes provides asymmetric digital signatures?"

The correct answers should be:
DSACryptoServiceProvider
RSACryptoServiceProvider

The explanation text for RSACryptoServiceProvider should be changed to reflect that it is a correct answer.

Change:
"RSACryptoServiceProvider provides asymmetric encryption; it does not provide digital signatures."

To:
"RSACryptoServiceProvider provides asymmetric digital signatures."

CD-ROM: Practice test question does not include a correct answer

In the practice exam included on the Companion CD, one of the questions does not have a correct answer.

The question begins:
"You are the system administrator at an ISP. After researching the cause of recent web server instability, you have concluded that you are hosting web applications for two separate customers that are highly unstable..."

The answer that is marked correct is a duplicate of one of the incorrect answers.

Change:
"Create a new application pool and move every customer's Web site to this pool. Select the Recycle Worker Process (In Minutes) check box and enter 10 in the associated text box."

To:
"Create two new application pools. Move each of the failing Web applications to one of the new pools."

CD-ROM: Incorrect answer marked correct in practice test question

On the Readiness Review assessment, one of the questions reads:
"You need to modify Microsoft Windows access control security for a named mutex."

The answer marked correct contains one incorrect selection.

Change:
"Create an instance of the Mutex class
Create an instance of the MutexSecurityClass using Mutex.GetAccessControl
Add access rules to the Mutex class
Call Mutex.SetAccessControl()"

To:
"Create an instance of the Mutex class
Create an instance of the MutexSecurity class using Mutex.GetAccessControl
Add access rules to the MutexSecurity class
Call Mutex.SetAccessControl()"

Page 4: System.DateTime alias incorrect

On page 4, in Table 1-2 the alias for System.DateTime is incorrect.

Change:
"System.DateTime
(Date/date)"

To:
"System.DateTime
(DateTime)"

Page 27: Incorrect location of project file

On page 27, Step 1 under Exercise 3 refers to an incorrect location for the ViewFile project.

Change:
"1. Navigate to the \<InstallHome>\Chapter01\Lesson1\Exercise1\Partial folder and open either the C# version or the Visual Basic .NET version of the ViewFile project."

To:
"1. Navigate to the \<InstallHome>\Chapter01\Lesson2\Exercise3\Partial folder and open either the C# version or the Visual Basic .NET version of the ViewFile project."

Page 48: Incorrect location of project file

On page 48, Step 1 under Exercise 1 refers to an incorrect location for the CreateStruct project.

Change:
"Navigate to the \<InstallHome>\Chapter01\Lesson1\Exercise1\Partial folder and open either the C# version or the Visual Basic version of the CreateStruct project."

To:
"Navigate to the \<InstallHome>\Chapter01\Lesson3\Exercise1\Partial folder and open either the C# version or the Visual Basic version of the CreateStruct project."

Page 59: Incorrect location of project file

On page 59, the second sentence of the "Lab: Safely Performing Conversions" section refers to a folder that does not exist and shoult be removed.

The sentence that should be removed reads:
"Navigate to the \<InstallHome>\Chapter01\Lesson1\Exercise1\Partial folder."

Pages 80-81: ten should be eleven

On pages 80 and 81, the first lines of the VB and C# code samples are incorrect.

On page 80, change:
' VB
' Write ten integers"

To:
"' VB
' Write eleven integers

On page 81, change:
// C#
// Write ten integers"

To:
"// C#
// Write eleven integers


Page 108: Backreference Construct definition incomplete

On page 108, in Table 3-5 the definition of both of the Backreference Constructs is missing information.

Change:
"\number Backreference. For example, (\w)\1 finds doubled characters."

To:
"\number Backreference. For example, (\w)\1 finds doubled word characters."

Change:
"\k<name> Named backreference. For example, (?<char>\w)\k<char> finds doubled words."

To:
"\k<name> Named backreference. For example, (?<char>\w)\k<char> finds doubled word characters."

Page 108: Backreference Construct definition incomplete

On page 108, in Table 3-5 the definition of both of the Backreference Constructs is missing information.

Change:
"\number Backreference. For example, (\w)\1 finds doubled characters."

To:
"\number Backreference. For example, (\w)\1 finds doubled word characters."

Change:
"\k<name> Named backreference. For example, (?<char>\w)\k<char> finds doubled words."

To:
"\k<name> Named backreference. For example, (?<char>\w)\k<char> finds doubled word characters."

Page 145: "(but only strings as keys)" should be removed

On page 145, the second paragraph is incorrect.

Change:
"While SortedList can take an object of any type as its value (but only strings as keys), the StringDictionary class (in the System.Collections.Specialized namespace) provides similar functionality, without the automatic sorting, and requires both the keys and the values to be strings."

To:
"While SortedList can take an object of any type as its value, the StringDictionary class (in the System.Collections.Specialized namespace) provides similar functionality, without the automatic sorting, and requires both the keys and the values to be strings."

Page 288: "correctly" should be "directly"

On page 288, the second sentence in the third paragraph contains an incorrect word.

Change:
"Although you can use the Monitor class correctly, it’s much easier to use built-in keywords to call the Monitor.Enter and Monitor.Exit methods."

To:
"Although you can use the Monitor class directly, it’s much easier to use built-in keywords to call the Monitor.Enter and Monitor.Exit methods."

Page 288: SynLock should be SyncLock

On page 288, the last sentence of the first paragraph and the first sentence of the second paragraph of the Monitor section refers to SynLock rather than SyncLock.

Change:
"In C#, use the keyword lock to specify the object to monitor. In Visual Basic, use the keyword SynLock. You can fix the console application in the previous section by using the Monitor class and the lock or SynLock keywords."

To:
"In C#, use the keyword lock to specify the object to monitor. In Visual Basic, use the keyword SyncLock. You can fix the console application in the previous section by using the Monitor class and the lock or SyncLock keywords."

Page 332: Internet should be Intranet

On page 332, the first line of the last VB code on the page is incorrect.

Change:
' Create an Evidence object for the Internet zone

To:
' Create an Evidence object for the Intranet zone

Page 333: Internet should be Intranet

On page 333, the second line of the first code sample is incorrect.

Change:
// Create an Evidence object for the Internet zone

To:
// Create an Evidence object for the Intranet zone

Page 384: Incorrect reference to choosing more than one answer

On page 384, the last line of question 1 states that you should choose all that apply, however there is only one correct answer.

Remove the following text from question 1:
"(Choose all that apply.)"

Pages 480-481: Incorrect hyphens used in Class names

On pages 480-481, several Class names in Table 11-8 are incorrect.

Change:
"IsolatedStorageFile-Permission"

To:
"IsolatedStorageFilePermission"

Change:
"PerformanceCounter-Permission"

To:
"PerformanceCounterPermission"

Change:
"StrongNameIdentity-Permission"

To:
"StrongNameIdentityPermission"

Page 531: User should be Name

On page 531, the second sentence of the last bullet point is incorrect.

Change:
"Use Authenticated to restrict access to authenticated users, Role to restrict access by group memberships, and User to restrict access to a specific username."

To:
"Use Authenticated to restrict access to authenticated users, Role to restrict access by group memberships, and Name to restrict access to a specific username."

Pages 559-560: C:\Guest should be Guest

On pages 559 and 560, there are several references to a C:\Guest folder, which should refer to Guest instead.

On page 559, in the first sentence of the "Exercise: Create a Folder with Explicit Permissions" section, change:
"In this exercise, you will write an application that creates a folder named C:\Guest and grants the Guest user Read access to the folder."

To:
"In this exercise, you will write an application that creates a folder named Guest and grants the Guest user Read access to the folder."

On page 560, in the first sentence of step 6, change:
"Use Windows Explorer to view the permissions assigned to the C:\Guest folder."

To:
"Use Windows Explorer to view the permissions assigned to the Guest folder."

In the first sentence of step 7, change:
"Before you can delete the C:\Guest folder, you must take ownership of it."

To:
"Before you can delete the Guest folder, you must take ownership of it."

In step 8, change:
"Now use Windows Explorer to delete the C:\Guest folder."

To:
"Now use Windows Explorer to delete the Guest folder."

Page 561: Question 2 includes the answer in the question

On page 561, in question 2 the VB and C# code under the question includes the answer in the code.

Remove the following line from the VB code:
Directory.SetAccessControl(dir, ds)

Remove the following line from the C# code:
Directory.SetAccessControl(dir, ds);

Page 576: symmetric should be asymmetric

On page 576, symmetric is used in place of asymmetric in the first two bulleted items.

In the first sentence of the KeySize section, change:
"Gets or sets the size in bits of the secret key used by the symmetric algorithm."

To:
"Gets or sets the size in bits of the secret key used by the asymmetric algorithm."

In the first sentence of the LegalKeySized section, change:
"A KeySizes array that gets the key sizes that are supported by the symmetric algorithm."

To:
"A KeySizes array that gets the key sizes that are supported by the asymmetric algorithm."

Page 580: "encryption" should be "decryption"

On page 580, the second sentence of the second bullet point on the page includes a duplicate word that makes the sentence partially incorrect.

Change:
"When set to true, encryption and encryption use Optimal Asymmetric Encryption Padding (OAEP) data padding, which is supported only on Windows XP and later operating systems."

To:
"When set to true, encryption and decryption use Optimal Asymmetric Encryption Padding (OAEP) data padding, which is supported only on Windows XP and later operating systems."

Page 635: "GetMethodBase" should be "GetMethodBody"

On page 635, the first sentence in the first paragraph contains an incorrect method name.

Change:
"Once you create an instance of MethodInfo, you can call MethodInfo.GetMethodBase to retrieve an instance of MethodBody."

To:
"Once you create an instance of MethodInfo, you can call MethodInfo.GetMethodBody to retrieve an instance of MethodBody."

Page 637: "Assembly" should be "Application"

On page 637, the last sentence of the first paragraph contains an incorrect tab name.

Change:
"Visual Studio allows you to edit assembly attributes from the Project Properties page by clicking the Assembly Information button on the Assembly tab."

To:
"Visual Studio allows you to edit assembly attributes from the Project Properties page by clicking the Assembly Information button on the Application tab."

Page 653: Encoding type missing from code sample

On page 653, the encoding type is missing from the second code sample.

Change:
' VB
Dim m As MailMessage = New MailMessage _
(New MailAddress("lance@contoso.com", "Lance Tucker"), _
New MailAddress("ben@contoso.com", "Ben Miller"))
// C#
MailMessage m = new MailMessage
(new MailAddress("lance@contoso.com", "Lance Tucker"),
new MailAddress("ben@contoso.com", "Ben Miller"));

To:
' VB
Dim m As MailMessage = New MailMessage _
(New MailAddress("lance@contoso.com", "Lance Tucker", System.Text.Encoding.UTF8), _
New MailAddress("ben@contoso.com", "Ben Miller", System.Text.Encoding.UTF8))
// C#
MailMessage m = new MailMessage
(new MailAddress("lance@contoso.com", "Lance Tucker", System.Text.Encoding.UTF8),
new MailAddress("ben@contoso.com", "Ben Miller", System.Text.Encoding.UTF8));

Page 699: "CultureAndRegionBuilderInfo" should be "CultureAndRegionInfoBuilder"

On page 699, answer B of question 1 includes an incorrect class name.

Change:
"B. CultureAndRegionBuilderInfo"

To:
"B. CultureAndRegionInfoBuilder"

Page 709: "abstract" should be "virtual"

On page 709, answer A of question 2 contains a reference to an incorrect method.

Change:
"A. Correct: Value types are boxed when an abstract method inherited from System.Object is called. Overriding the method avoids boxing."

To:
"A. Correct: Value types are boxed when an virtual method inherited from System.Object is called. Overriding the method avoids boxing."

Pages 745-746: Answer numbering is incorrect

On pages 745 & 746 the answer marked 2 is a duplicate of answer 1 on page 744. This makes the remaining numbering of the questions inconsistent with the number of the questions in Chapter 11.

Remove the following answer text and renumber the remaining answers from 3, 4, and 5 to 2, 3, and 4 respectively:
"2. Correct Answer: D
A. Incorrect: SecurityAction.Demand instructs the runtime to throw an exception if the caller and all callers higher in the stack lack the specified permission. However, SecurityAction.Demand must be used imperatively, and the question describes a need for declarative security.
B. Incorrect: SecurityAction.Deny causes the runtime to reduce the method’s access by removing the specified permission.
C. Incorrect: SecurityAction.Assert instructs the runtime to ignore the fact that callers might not have the specified permission.
D. Correct: SecurityAction.RequestMinimum is used for checking permissions declaratively. If the caller lacks the privilege, the runtime throws an exception."

Page 753: Incorrect should be Correct

On page 753, the explanation for answer C of question 2 indicates that it is incorrect rather than correct.

Change:
"C. Incorrect: OutAttribute indicates that the data in a field or parameter must be marshaled from a called object back to its caller. When combined with InAttribute, this allows the caller to retrieve changes made by the method."

To:
"C. Correct: OutAttribute indicates that the data in a field or parameter must be marshaled from a called object back to its caller. When combined with InAttribute, this allows the caller to retrieve changes made by the method."

Page 759: "CultureAndRegionBuilderInfo" should be "CultureAndRegionInfoBuilder"

On page 759, the explanation for answers A, B, and C include an incorrect class name.

Change:
"A. Incorrect: You cannot update a CultureInfo instance directly. Instead, create an instance of CultureInfoRegionBuilderInfo and then register it. After registering it, you can create a new CultureInfo for your custom culture.
B. Correct: You can create an instance of CultureAndRegionBuilderInfo and then copy settings from the zh-CN culture. After making the changes you need, you can call CultureAndRegionBuilderInfo.Register to add the culture.
C. Incorrect: You cannot update a RegionInfo instance directly. Instead, create an instance of CultureInfoRegionBuilderInfo and then register it. After registering it, you can create a new RegionInfo for your custom region."

To:
"A. Incorrect: You cannot update a CultureInfo instance directly. Instead, create an instance of CultureAndRegionInfoBuilder and then register it. After registering it, you can create a new CultureInfo for your custom culture.
B. Correct: You can create an instance of CultureAndRegionInfoBuilder and then copy settings from the zh-CN culture. After making the changes you need, you can call CultureAndRegionInfoBuilder.Register to add the culture.
C. Incorrect: You cannot update a RegionInfo instance directly. Instead, create an instance of CultureAndRegionInfoBuilder and then register it. After registering it, you can create a new RegionInfo for your custom region."

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.

Properties

Article ID: 959409 - Last Review: November 19, 2008 - Revision: 1.18
APPLIES TO
  • MCTS Self-Paced Training Kit (Exam 70-536): Microsoft.NET Framework—Application Development Foundation, Second Edition, ISBN 978-0-7356-2619-5
Keywords: 
KB959409

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com