MCAD/MCSD Training Guide (70-320): Developing XML Web Services and Server Components with Visual C# .NET and the .NET Framework (First Edition) by Amit Kalani, Priti Kalani 

Errata 

(You can help! If you know an error not mentioned in this list, please report the error)

Last Update: June 1, 2004

Chapter Page Error Description Reported By
1 45 Replace the Note on this chapter with the following Note:
The Northwind Sample Database[em]Whenever I’ve used data from a database in this book, I’ve used the Northwind sample database that comes as part of SQL Server 2000. If you don't have SQL Server, you can use Microsoft Data Engine (MSDE) that installs as a part of the Microsoft .NET Framework SDK QuickStarts, Tutorials and Samples installation. Microsoft .NET SDK installs as a part of Visual Studio .NET. If you use MSDE, you'll need to change the name of the database server in this book's examples from (local) to (local)\NetSDK.
 
1 64 On Page 62, change the following UPDATE query:

UPDATE Suppliers INNER JOIN Products
ON Suppliers.SupplierID = Products.SupplierID
SET Products.Discontinued = 1
WHERE Suppliers.Country = 'Italy'

to:

UPDATE Products
SET Products.Discontinued = 1
FROM Products, Suppliers
WHERE Suppliers.SupplierID = Products.SupplierID
AND Suppliers.Country = 'Italy'

Ketil Grytten
1 79-80 In Exercise 1.1, Step 8, the following two lines are not needed and may be removed from the code:
cnn.Open();
cnn.Close();
Jacques Lacerte
1 81 In Exercise 1.2, Step 7, change the last sentence to read as:
This creates a SqlConnection object and a SqlCommand object.
Jacques Lacerte
1 81 In Exercise 1.2, Step 9, the following two lines are not needed and may be removed from the code:
sqlConnection1.Open();
sqlConnection1.Close();
Jacques Lacerte
2 106 In Step By Step 2.3, Step 4, remove the following line of code from the btnReadXML_Click() method:
StringBuilder sbNode = new StringBuilder();

Later in the code, change the following line of code:
xnodworking = xnodroot.FirstChild;

to:
xnodworking = xnodroot;

Wray Smallwood

Carney Clegg

2 113 In Step By Step 2.5, Step 5, change "Create DataSet hyperlink" to "Generate DataSet hyperlink" Wray Smallwood
2 117 In Step By Step 2.6, Step 5, change StepByStep2_5.cs to StepByStep2_6.cs  
2 168 In Question 2, change the option B to the following:

B. Order will become a DataTable. OrderID and OrderDate will become DataColumn objects.

Ross Keatinge
2 170

In Question 6, change answer D to the following:
/Customers[Orders/Order/OrderDate="1/3/2003"]/CustomerName

 
3 225

Add this new Note:

Visual Studio .NET Projects and Application Configuration File[em]You should write the application configuration settings for Visual Studio .NET Windows application and Console application projects in a file named App.config in the project's folder. When you build the project, Visual Studio .NET copies the App.config file to the output folder and rename it to OutputFileName.config. For example, if the name of the output file for the project is StepByStep3_7.exe, then the name of the configuration file will be StepByStep3_7.exe.config. For a Web application project, the configuration settings are written directly to the Web.config file.

 
3 227

In Step By Step 3.7, change Step 3 to the following:

3. In the Solution Explorer, right-click project StepByStep3_7 and select Add, Add New Item from the context menu. Add an item named App.config based on the Application configuration file template.
 
3 227 In Step By Step 3.7, Step 4, change the sentence to the following:
4. Modify App.config file to contain the following code:
 
3 227-228 In Step By Step 3.7, delete Step 5. Renumber steps 6 to 11 to become steps 5 to 10.  
3 230

In Step By Step 3.8, change Step 3 to the following:

3. In the Solution Explorer, right-click project StepByStep3_8 and select Add, Add New Item from the context menu. Add an item named App.config based on the Application configuration file template.
 
3 230

In Step By Step 3.8, Step 4, change the sentence to the following:

4. Modify App.config file to contain the following code:
 
3 230-231 In Step By Step 3.8, delete Step 5. Renumber steps 6 to 13 to become steps 5 to 12.  
3 233

In Guided Practice Exercise 3.2, change Step 3 to the following:

3. In the Solution Explorer, right-click project GuidedPracticeExercise3_2_Server and select Add, Add New Item from the context menu. Add an item named App.config based on the Application configuration file template.
 
3 233

In Guided Practice Exercise 3.2, Step 4, change the sentence to the following:

4. Modify App.config file to contain the following code:
 
3 233

In Guided Practice Exercise 3.2, change Step 12 to the following:

12. In the Solution Explorer, right-click project GuidedPracticeExercise3_2_Client and select Add, Add New Item from the context menu. Add an item named App.config based on the Application configuration file template.
 
3 233

In Guided Practice Exercise 3.2, Step 13, change the sentence to the following:

13. Modify App.config file to contain the following code:
 
3 233-237 In Guided Practice Exercise 3.2, delete steps 5 and 14. Renumber steps 6 to 24 to become steps 5 to 22.  
3 245 In the first paragraph, change the last sentence to read as:
The nowrappedproxy (or nowp) switch instructs the Soapsuds tool to generate an unwrapped proxy.
Jacques Lacerte
3 245 In Step By Step 3.13, take the following step before Step 1:
Add a new Visual C# .NET Windows Application project named StepByStep3_13 to the solution.
Wray Smallwood
3 257

Add the following Note:

Database Access Permission[em] In order for the Step By Step 3.17 to work, the ASP.NET user account must have permission to access the SQL Server database.
 
3 259

In Step By Step 3.18, Step 7, replace the code with the following code:

private void DbConnectClient_Load(object sender, System.EventArgs e)
{
    // Register a Http client channel
    HttpClientChannel channel = new HttpClientChannel();
    ChannelServices.RegisterChannel(channel);
    // Instantiate the remote class
    dbc = (IDbConnect)
    Activator.GetObject(typeof(IDbConnect), @"http://localhost/StepByStep3_17/DbConnect.rem");

    //  pass default credentials
    // (user name, password, and domain) to the server

    IDictionary props =   ChannelServices.GetChannelSinkProperties(dbc);
    props["credentials"] = System.Net.CredentialCache.DefaultCredentials;
}

 
3 265 In Step By Step 3.21, Step 4, change StepByStep3_13 to StepByStep3_19. Wray Smallwood
3 271

In Exercise 3.1, modify Step 7 to the following:

7. Add an Application configuration file (App.config) to the project and modify it to contain the following code:

 
3 271 In Exercise 3.1, delete the sentence of Step 8 and merge its code with Step 7. As a result, there is no Step 8 now.  
3 272 In Exercise 3.1, delete Step 9. Renumber steps 10 to 16 to become 8 to 14.  
4 308 In Step By Step 4.5, Step 4, change "Server Explorer" to "Solution Explorer" in the first sentence. Wray Smallwood
5 370 At the end of the second paragraph, change the line of code to the following:
[XmlElement(ElementName="Name", Form=XmlSchemaForm.Qualified)]
Jacques Lacerte
5 383 In the answer to Question 12. Change the last sentence with the following:
For more information, see the Exercise 5.1 in the Apply Your Knowledge section of this chapter. 
Wray Smallwood
6. 414 In Guided Practice Exercise 6.1, Step 4, change the following line of code:
using System.Runtime.Remoting.Channels.Http;
with this line of code:
using System.Runtime.Remoting.Channels.Tcp;
Wray Smallwood
6. 429 In Exercise 6.1, Step 12, change the command to the following:
installutil.exe Exercise6_1.exe
Wray Smallwood
7. 478 In Step By Step 7.5, Step 10, change the fifth sentence to the following:
Select the Methods node in the left pane and then select View, Detail from the menu.
Wray Smallwood
7. 546 In Step By Step 7.20, Step 4, also add the following using directive to the code:
using System.Runtime.InteropServices;
Wray Smallwood
7. 552 In Exercise 7.1, Step 16, change SingleCall to Singleton 

In Exercise 7.1, Step 17, rename Form1 to NorthwindSCClient

Wray Smallwood
7. 562 Change the answer to Question 11 to the following:

11. A and B. Each of these options:

  • Registers the assembly in the Registry (for late binding)
  • Create a CCW in the tlb file, which can be used by the client programs at the time of compilation (early binding).

For more information, see the sections "Calling a .NET Component from COM/COM+" and "Exporting .NET Components As COM Type Libraries" in this chapter.

Rajaram Reddy
9. 603 In the third paragraph, change the third sentence to the following:
On the other hand, when you compile a program by using the Release configuration, it does not include any calls to the Debug class.
Wray Smallwood
9. 610 The Note mentions the System.Net.TcpClient class. This should be the System.Net.Sockets.TcpClient class. Wray Smallwood
9 614

In Step By Step 9.3, change the sentence of Step 5 to the following:

5. Add an Application configuration file (App.config) to the project and modify it to contain the following code:
 
9 615 In Step By Step 9.3, delete Step 6. Renumber steps 7 to 9 to become steps 6 to 8.  
9. 649 In Step By Step 9.10, Step 6. Insert the following sentence after the second sentence:
Check the "Show System Services" checkbox.
Wray Smallwood
9. 655 In the "Working with Event Logs" section, the first sentence should start as "Event logging is the ..." instead of "Event logging isthe ..."  Skip Sailors
9. 659 In Step By Step 9.11, Step 7, in the code for the btnRemoveSource_Click() method, change "StepByStep9_11" to "StepByStep9_11_". Wray Smallwood
9. 665 In Figure 9.40, the text in the Category description text box should be:
Counter for StepByStep9_13
 
9 669

In Exercise 9.1, modify the sentence of Step 10 to the following:

10.  Add an Application configuration file (App.config) to the project and modify it to contain the following code:
 
9. 669 In Exercise 9.1, delete Step 9. Renumber steps 10 to 13 to become steps 9 to 12.  
9. 673 Question 2, Answer D has a spelling mistake. TextFileTraceListeser should be TextFileTraceListener Wray Smallwood
11 841

Question 4, the table in this question is incorrectly formatted. Please format it as shown below: 

Level

Code Group

Permission Set

Exclusive

LevelFinal

Enterprise

All Code

Everything

No

No

Enterprise

Company Code

LocalIntranet

No

No

Enterprise

Restricted Code

Internet

No

No

Enterprise

Restricted Components

Nothing

No

No

 

 
11 844

In answer to Question 6, delete the following sentence:

"The final permission is then the union of that group together with the permissions from the Machine and User levels."
 
App. D 960 The first paragraph in the first column should read: You may also count as elective one of the four core exams 70-305, 70-306, 70-315, and 70-316. The elective exam must be from the opposite technology as the exam that you counted as core. For example, if you take the exam "Developing and Implementing Windows-based Applications With Visual C# .NET and Visual Studio .NET" (Exam 70-316) as a core exam, you can take either the "Developing and Implementing Web Applications With Visual C# .NET and Visual Studio .NET" (Exam 70-315) or the "Developing and Implementing Web Applications With Visual Basic .NET and Visual Studio .NET" (Exam 70-305) as an elective. Karen Zhu

(end of errata)