Skip to main content

Professional C#, 2nd Edition

Professional C#, 2nd Edition

Simon Robinson, K. Scott Allen, Ollie Cornes, Jay Glynn, Zach Greenvoss, Burton Harvey, Christian Nagel, Morgan Skinner, Karli Watson

ISBN: 978-0-764-54398-2

Mar 2002

1272 pages

Select type: Paperback

Product not available for purchase

Description

What is this book about?

It is no exaggeration to describe the C# language and its associated environment, the .NET Framework, as the most important new technology for developers in many years. .NET provides a new environment within which you can develop almost any Windows-based or web-based application, while C# is a new programming language designed specifically to work with .NET.

What does this book cover?

This book is the ideal introduction to the C# language and the .NET Framework, and will become an indispensable companion for any user of C# and .NET. With this book, you learn the key concepts of the C# language, and then progress onto a complete exploration of programming the .NET Framework with C#. Topics covered include the following:

  • How to program in the object-oriented C# language
  • Writing Windows applications and Windows services
  • Writing web pages and web services with ASP.NET
  • Manipulating XML using C#
  • Understanding .NET Assemblies
  • Using ADO.NET to access databases
  • Integration with COM, COM+, and Active Directory
  • Distributed applications with .NET Remoting
  • Generating graphics using C#
  • Accessing files and the Registry, and controlling .NET security
Introduction.

Chapter 1: C# and .NET Architecture.

Chapter 2: C# Basics.

Program Structure.

Chapter 3: Object-Oriented C#.

Chapter 4: Advanced C# Topics.

Chapter 5: C# and the Base Classes.

Chapter 6: Programming in the .NET Environment.

Chapter 7: Windows Applications.

Chapter 8: Assemblies.

Chapter 9: Data Access with .NET.

Chapter 10: Viewing .NET Data.

Chapter 11: Manipulating XML.

Chapter 12: File and Registry Operations.

Chapter 13: Working with the Active Directory.

Chapter 14: ASP.NET Pages.

Chapter 15: Web Services.

Chapter 16: User Controls and Custom Controls.

Chapter 17: COM Interoperability.

Chapter 18: COM+ Services.

Chapter 19: Graphics with GDI+.

Chapter 20: Accessing the Internet.

Chapter 21: Distributed Applications with .NET Remoting.

Chapter 22: Windows Services.

Chapter 23:.NET Security.

Appendix A: Principles of Object-Oriented Programming.

Appendix B: C# Compilation Options.

Index.

Download all code samples for this book
Download
Download code samples for chapters 1 to 12 and Appendix A
Download
Download code samples for chapters 13 to 23
Download
Download the C# for VB6 developers appendix
Download
Download the C# for Java developers appendix
Download
Download the C# for C++ developers appendix
Download
ChapterPageDetailsDatePrint Run
25Error in Text
Second paragraph under "Use of Attributes":

used in conjunction with reflection technology (described) in order...

Should be

used in conjunction with reflection technology (described on page 27) in order...
2/10/09

38If you are a very experienced developer ....

If you are a very experienced developer in one of VB, C#, or Java, you should...

should read:

If you are a very experienced developer in one of VB, C++, or Java, you should...

05-Aug-021

77Typo in Text
At the top of page 77:

"... even though we don't actual specify the size of the dimensions..."

should be

"... even though we don't actually specify the size of the dimensions..."
1/26/09

78Typo in Text
Code in grey box:

// Declare a two-dimension jagged array of authors' names

Should read:

// Declare a two-dimensional jagged array of authors' names
1/26/09

130For C++ programmers....

For C++ programmers : because primitive fields in C# are by default initialized by being zeroed out, whereas primitive fields in C++ are by default uninitialized, you may find that you don't need to write constructors in C# as often as you would in C++.

05-Jun-021

147Readonly instance field

public DateTime CreationDate;

should be:

public readonly DateTime CreationDate;

05-Aug-021

157Multiplying a vector....

Multiplying a vector by a scalar simply means multiplying each component by individually by the scalar...

should read:

Multiplying a vector by a scalar simply means multiplying each component individually by the scalar...

05-Aug-021

162C++ developers should note...

C++ developers should note that indexers in C++ serve the same purpose...

should read:

C++ developers should note that indexers in C# serve the same purpose...

05-Aug-021

230Obsolete attribute

The second Obsolete attribute has one of its parentheses in the wrong place. The correct code should be:

[Obsolete("The DisplayDebugMessage is obsolete. Use " +
          "DisplayRunningMessage instead.", true)]
17-Jul-021

5265Chars from Strings

char char4 = message[4] Should read char char4 = message2[4] and that should return 'o' not 'a'

24-Jan-031

286vectors.RemoveAt

ectors.RemoveAt(1);
should be
vectors.RemoveAt(1);

14-Nov-021

318DisplayTypeInfo

The final if statement at the top of page 318 should read:

if (attribs2 != null)
09-Jul-021

323Thread constructor

Thread does not have a constructor without parameters - at the top of page 323, the code should be rearranged to the following, so that the ThreadStart object is passed to the Thread constructor:

ThreadStart entryPoint = new ThreadStart(ChangeColorDepth);
Thread depthChangeThread = new Thread(entryPoint);
depthChangeThread.Name = "Depth Change Thread";    
depthChangeThread.Start();
08-Jul-021

427The Timer Control

The Elapsed and Click events of the Timer control mentioned on page 427 should in fact be the Tick event of the Timer control.

05-Jun-021