Part 1 - The C# Language
|
|
1. |
Introducing C# and the .NET framework |
|
|
C# |
|
|
The CLR and .NET Framework |
|
|
What's new in C# 3.0 |
|
2. |
C# Language Basics |
|
|
A First C# Program |
|
|
Syntax |
|
|
Type Basics |
|
|
Numeric Types |
|
|
The Boolean Type |
|
|
Strings and Characters |
|
|
Arrays |
|
|
Variables and Parameters |
|
|
Expressions and Operators |
|
|
Statements |
|
|
Namespaces |
|
3. |
Creating Types in C# |
|
|
Classes |
|
|
Inheritance |
|
|
The object Type |
|
|
Structs |
|
|
Access Modifiers |
|
|
Interfaces |
|
|
Enums |
|
|
Nested Types |
|
|
Generics |
|
4. |
Advanced C# Features |
|
|
Delegates |
|
|
Events |
|
|
Lambda Expressions |
|
|
try Statements and Exceptions |
|
|
Enumeration and Iterators |
|
|
Nullable Types |
|
|
Operator Overloading |
|
|
Extension Methods |
|
|
Anonymous Types |
|
|
Attributes |
|
|
Unsafe Code and Pointers |
|
|
Preprocessor Directives |
|
|
XML Documentation |
|
|
|
Part 2 - The .NET Framework
|
|
5. |
Framework Overview |
|
|
The CLR and Core Framework |
|
|
Applied Technologies |
|
6. |
Framework Fundamentals |
|
|
String and Text Handling |
|
|
Dates and Times |
|
|
Formatting and Parsing |
|
|
Fomat Strings and Parsing Flags |
|
|
Other Conversion Mechanisms |
|
|
Working with Numbers |
|
|
Enums |
|
|
The Guid struct |
|
|
Equality Comparison |
|
|
Order Comparison |
|
|
Utility Classes |
|
7. |
Collections |
|
|
Enumeration |
|
|
ICollection and ILlist |
|
|
The Array Class |
|
|
Lists, Queues, Stacks and Sets |
|
|
Dictionaries |
|
|
Customizable Collections |
|
|
Plugging in Equality and Order |
|
8. |
LINQ Queries |
|
|
Getting Started |
|
|
Lambda Queries |
|
|
Comprehension Queries |
|
|
Deferred Execution |
|
|
Subqueries |
|
|
Composition Strategies |
|
|
Projection Strategies |
|
|
Interpreted Queries |
|
|
LINQ to SQL |
|
|
Building Query Expressions |
|
9. |
LINQ Operators |
|
|
Overview |
|
|
Filtering |
|
|
Projection |
|
|
Joining |
|
|
Ordering |
|
|
Grouping |
|
|
Set Operators |
|
|
Conversion Methods |
|
|
Element Operators |
|
|
Aggregation Methods |
|
|
Quantifiers |
|
|
Generation Methods |
|
10. |
LINQ to XML |
|
|
X-DOM Overview |
|
|
Instantiating an X-DOM |
|
|
Navigating and Querying |
|
|
Updating an X-DOM |
|
|
Working with Values |
|
|
Documents and Declarations |
|
|
Names and Namespaces |
|
|
Annotations |
|
|
Projecting into an X-DOM |
|
11. |
Other XML Technologies |
|
|
XmlReader |
|
|
XmlWriter |
|
|
Patterns for using XmlReader/XmlWriter |
|
|
XmlDocument |
|
|
XPath |
|
|
XSD and Schema Validation |
|
|
XSLT |
|
12. |
Disposal and Garbage Collection |
|
|
IDisposable, Dispose and Close |
|
|
Garbage Collection and Finalizers |
|
|
Calling Dispose from a Finalizer |
|
|
How the Garbage Collector Works |
|
|
Alternatives to Garbage Collection |
|
13. |
Streams and I/O |
|
|
Stream Architecture |
|
|
Using Streams |
|
|
Stream Adapters |
|
|
File and Directory Operations |
|
|
Compression |
|
|
Isolated Storage |
|
14. |
Networking |
|
|
Network Architecture |
|
|
Addresses and Ports |
|
|
URIs |
|
|
Request/Response Architecture |
|
|
HTTP-Specific Support |
|
|
Writing an HTTP Server |
|
|
Using FTP |
|
|
Using DNS |
|
|
Sending Mail with SmtpClient |
|
|
Using TCP |
|
|
Retrieving Mail with TCP |
|
15. |
Serialization |
|
|
Serialization Concepts |
|
|
The Data Contract Serializer |
|
|
Data Contacts and Collections |
|
|
Extending Data Contracts |
|
|
The Binary Serializer |
|
|
Binary Serialization Attributes |
|
|
Implementing ISerializable |
|
|
XML Serialization |
|
16. |
Assemblies |
|
|
What's in an Assembly |
|
|
Signing an Assembly |
|
|
Assembly Names |
|
|
The Global Assembly Cache |
|
|
Resources and Satellite Assemblies |
|
|
Resolving and Loading Assemblies |
|
|
Deploying Assemblies outside the Base
Folder |
|
|
Packing a Single-file Executable |
|
|
Working with Unreferenced Assemblies |
|
17. |
Reflection & Metadata |
|
|
Reflecting and Activating Types |
|
|
Reflecting and Invoking Members |
|
|
Reflecting Assemblies |
|
|
Working with Attributes |
|
|
Dynamic Code Generation |
|
|
Emitting Assemblies and Types |
|
|
Emitting Type Members |
|
|
Emitting Generic Types and Methods |
|
|
Awkward Emission Targets |
|
|
Parsing IL |
|
18. |
Security |
|
|
Permissions |
|
|
Code Access Security |
|
|
Running in a Sandbox |
|
|
Sandboxing another Assembly |
|
|
Operating System Security |
|
|
Identity and Role Security |
|
|
Cryptography Overview |
|
|
Windows Data Protection |
|
|
Hashing |
|
|
Symmetric Encryption |
|
|
Public Key Encryption and Signing |
|
19. |
Threading |
|
|
Threading's Uses and Misuses |
|
|
Getting Started |
|
|
Asynchronous Delegates |
|
|
Synchronization |
|
|
Locking |
|
|
Thread Safety |
|
|
Non-blocking Synchronization |
|
|
Signaling with Event Wait Handles |
|
|
Signaling with Wait and Pulse |
|
|
Interrupt and Abort |
|
|
BackgroundWorker |
|
|
ReaderWriterLockSlim |
|
|
Timers |
|
|
Local Storage |
|
20. |
Asynchronous Methods |
|
|
Why Asynchronous Methods Exist |
|
|
Using Asynchronous Methods |
|
|
Writing Asynchronous Methods |
|
|
Fake Asynchronous Methods |
|
|
Asynchronous Events |
|
21. |
Application Domains |
|
|
Application Domain Architecture |
|
|
Creating and Destroying App Domains |
|
|
Using Multiple App Domains |
|
|
Using DoCallback |
|
|
Domains and Threads |
|
|
Sharing Data between Domains |
|
22. |
Integrating with Native DLLs |
|
|
Calling into DLLs |
|
|
Marshaling Common Types |
|
|
Marshaling Classes and Structs |
|
|
In and Out Marshaling |
|
|
Callbacks from Unmanaged Code |
|
|
Simulating a C Union |
|
|
Shared Memory |
|
|
Mapping a Struct to a Binary Format |
|
|
Predefined Interop Support Attributes |
|
23. |
Diagnostics |
|
|
Conditional Compilation |
|
|
Debug and Trace Classes |
|
|
Debugger Integration |
|
|
Processes and Process Threads |
|
|
StackTrace and StackFrame |
|
|
Event Logs |
|
|
Performance Counters |
|
|
The StopWatch class |
|
24. |
Regular Expressions |
|
|
Regular Expressions Basics |
|
|
Quantifiers |
|
|
Zero-width Assertions |
|
|
Groups |
|
|
Replacing and Splitting Text |
|
|
Cookbook Regular Expressions |
|
|
Regular Expression Language Reference |
|
A. |
C# Keywords |
|
B. |
Namespace to Assembly Reference |