Preface / 9
1. C# & .NET Framework Basics / 11
1.1. Objectives / 11
1.2. Introduction / 11
1.3. Comparison with C++ / 13
1.4. First C# Program / 14
1.5. Reading and Writing using System.Console / 15
1.6. Specifying an Application Error Code / 16
1.7. Processing Command-Line Arguments / 16
2. Data Types / 19
2.1. Objectives / 19
2.2. Data Types / 19
2.3. System.Object / 23
2.4. Working with Strings / 23
2.5. Arrays / 26
2.6. Multidimensional Arrays / 28
3. Creating Types / 31
3.1. Objectives / 31
3.2. Enums / 31
3.3. Structures / 32
3.4. Classes / 33
3.5. Standard Interfaces / 37
3.6. Operators / 42
3.7. Class Inheritance / 44
4. Collections / 51
4.1. Objectives / 51
4.2. ArrayList / 51
4.3. List / 52
4.4. Custom Collections / 54
5. Windows Forms – Introduction, Menus, Events / 59
5.1. Objectives / 59
5.2. Forms and Partial Classes / 59
5.3. Menus / 61
5.4 Mouse Events / 62
5.5. Keyboard Events / 63
6. Windows Forms – Validation, Exceptions, ListView, TreeView / 65
6.1. Objectives / 65
6.2. Data Validation / 65
6.3. ListView / 67
6.4. TreeView / 71
6.5. Exception Handling / 72
6.6. Standard Exceptions / 74
7. Windows Forms – Serialization, Text Files / 77
7.1. Objectives / 77
7.2. Serialization/Deserialization / 77
7.3. Binary Serialization / 78
7.4. XML Serialization / 80
7.5. TextFiles / 81
8. Windows Forms – Dialogs / 83
8.1. Objectives / 83
8.2. MessageBox and DialogResult / 83
8.3. Secondary Dialog / 85
9. Windows Forms – DataBinding and Unit Testing / 91
9.1. Objectives / 91
9.2. DataBinding / 91
9.3. Unit Testing / 97
10. Windows Forms – Databases / 99
10.1. Objectives / 99
10.2. Databases / 99
10.3. Creating the database / 103
10.4. Connected Data Access Architecture / 103
10.5. Disconnected Data Access Architecture / 113
11. Windows Forms – Custom Controls, Drawing / 119
11.1. Objectives / 119
11.2. Extended Controls / 119
11.3. Composite Controls / 120
11.4. Custom Controls + Drawing / 122
12. Windows Forms – Printing / 131
12.1. Objectives / 131
12.2. Printing / 131
13. Windows Forms – Drag and Drop / 141
13.1. Objectives / 141
13.2. Drag and Drop / 141
Bibliography / 145
Annex 1 - List of Figures / 149
Annex 2 - List of Tables / 151