(NOTE: Each chapter concludes with a Summary.
I. C# BASICS.
1. The C# Environment.
The Common Language Infrastructure (CLI). Standardization. The .NET Architecture. Where C# Fits In.
2. Getting Started with C#.
Writing a Simple C# Program. Comments. Identifiers and Keywords. Style. Preparing a Program To Run. Basic C# Types. Definite Assignment. Basic Conversions. Arrays. Interacting with Programs.
3. Writing C# Expressions.
Unary Operators. Binary Operators. The Ternary Operator. Other Operators. Enumeration Expressions. Array Expressions. Statements. Blocks. Labels. Declarations. Operator Precedence and Associativity.
4. Using Statements and Loops to Control Program Flow.
if Statements. switch Statements. C# Loops. goto Statements. break Statements. continue Statements. return Statements.
5. Debugging and Pre-Processing.
Pre-Processing Directives. Debugging C# Programs.
II. OBJECT AND COMPONENT PROGRAMMING WITH C#.
6. Object and Component Concepts.
What Is an Object? Object Classification. Object Hierarchies. Abstraction. Objects within Objects. Objects with Different Behaviors. Component Interfaces. Component Properties. Component Events.
7. Working with Classes.
Class Members. Instance and Static Members. Use of Accessibility Modifiers. Fields. Constructors. Destructors. Methods. Properties. Indexers. Full XML Comments.
8. Designing Object-Oriented Programs.
Inheritance. Encapsulating Object Internals. Polymorphism.
9. Overloading Class Members and Operators.
Overloading Methods. Overloading Indexers. Overloading Operators. Resolving Overloaded Members.
10. Handling Exceptions and Errors.
try/catch Blocks. finally Blocks. Predefined Exception Classes. Handling Exceptions. Designing Your Own Exceptions. checked and unchecked Statements.
11. Delegates and Events.
12. Organizing Code with Namespaces.
Why Namespaces? Namespace Directives. Creating Namespaces. Namespace Members. Scope and Visibility.
13. Creating structs.
Identifying the class/struct Relationship. Type System Unification. Designing a New Value Type.
14. Implementing Interfaces.
Abstract Class Versus Interface. Interface Members. Implicit Implementation. Explicit Implementation. Mapping. Inheritance.
15. Performing Conversions.
Implicit Versus Explicit Conversions. Value Type Conversions. Reference Type Conversions.
III. USING CLASS LIBRARIES WITH C#.
16. Presenting Graphical User Interfaces.
Windows. Controls. N-Tier Architecture. Menus.
17. File I/O and Serialization.
Files and Directories. Streams. Serialization.
18 - XML.
19. Database Programming with ADO.NET.
Making Connections. Viewing Data. Manipulating Data. Calling Stored Procedures. Retrieving DataSets.
20. Writing Web Applications with ASP.NET.
A Simple Web Page. Controls. Making a Web Form. Code-Behind Web Pages.
21 - Remoting.
Basic Remoting. Proxys. Channels. Lifetime Management.
22. Web Services.
Web Service Basics. Using Web Services.
IV. EXTREME C#.
Creating New Threads. Synchronization.
24. Browsing the Network Libraries.
Implementing Sockets. Working with HTTP.
25. String Manipulation.
The String Class. The StringBuilder Class. String Formatting. Regular Expressions.
26. C# Collections.
Pre-Existing Collections. Collection Interfaces. Creating a Collection.
27 - Attributes.
Using Attributes. Using Attribute Parameters. Using Attribute Targets. Creating Your Own Attributes. Getting Attributes from a Class.
28 - Reflection.
Discovering Program Information. Dynamically Activating Code. Reflection.Emit.
29. Localization and Resources.
Resource Files. Multiple Locales.
30. Unsafe Code and Pinvoke.
Unsafe Code. Platform Invoke.
31. Runtime Debugging.
Simple Debugging. Conditional Debugging. Runtime Tracing. Making Assertions.
32. Performance Monitoring.
Accessing Built-in Performance Counters. Implementing Timers. Building a Customized Performance Counter. Analyzing Performance with Sampling.
33. Integrating C# with COM.
Communicating with COM from .NET. Exposing a .NET Component as a COM Component. Introduction to .NET Support for COM+ Services.
V. THE C# ENVIRONMENT.
34. Garbage Collection.
Automatic Memory Management. Finalizing Your Code Properly. Controlling Garbage Collection.
35. Cross-Language Programming with C#.
The Common Type System (CTS). The Common Language Specification (CLS). Tips for Making Your Code CLS-Compatible. Writing a Cross-Language Program.
36. The Common Language Runtime.
Managed Execution. Metadata. Managed Services.
37. Versioning and Assemblies.
Inside Assemblies. Assembly Features. Configuration. Deployment.
38. Securing Code.
Code-Based Security. Role-Based Security. Security Utilities.
VI - APPENDIXES.
Appendix A. Compiling Programs.
Assemblies. Debug. Miscellaneous. Optimization. Output. Preprocessing. Resources.
Appendix B. The .NET Frameworks Class Libraries.
Appendix C. Online Resources.
C# Sites. .NET Sites.