Tables of Contents for Dissecting a C# Application
How to Download the Sample Code for the Book
3
1
Why This System Offers the Best Support
4
3
The idea behind SharpDevelop
8
1
SharpDevelop Software Requirements
8
1
SharpDevelop's Panels and Views
9
3
Customizing SharpDevelop
12
2
Defining the Appearance
13
1
Customizations for Coding
14
3
Getting Started with Templates
14
1
Changing Syntax Highlighting
14
1
Code Completion and Method Insight
15
1
Search and Replace Functionality
16
1
Combines and Projects - What's in a Name?
17
1
Navigating the Project
17
1
The Project and Class Views of the World
18
1
Creating Windows Forms
18
2
Adding Controls to Windows Forms
19
1
Properties and Formatting of Controls
20
1
Designing the Architecture
23
28
History of Architectural Design Decisions
23
4
Building SharpDevelop with SharpDevelop
24
2
Correcting Bad Design Decisions
26
1
Designing Component-Exchangeability
29
1
Coding Style Guideline
39
1
Defect Tracking and Testing
39
1
Design and Refactoring
42
6
Implementing the Core
51
30
Advantages of Using the Addln Tree
53
3
The Addln Tree Superstructure
56
1
From Tree Node to Running Object
60
2
Property Management in SharpDevelop
70
9
The Idea behind the IXmlConvertable Interface
71
1
Overview of the IProperties Interface
71
1
The Default Implementation
72
3
Building the Application with Add-ins
81
26
The ICommand Interface
82
3
Wiring up Add-ins with Conditions
96
8
Overview of Available Conditions
100
4
Providing Functionality with Workspace Services
107
28
Implementation Considerations
107
5
Requirements for Services
108
1
Common Services at your Service
112
21
String Parser Service
119
2
Class Browser Icons Service
123
1
Views and Pads Applied - An Integrated HTML Help Viewer
141
1
Navigating the Help File
148
5
The Current and Future Implementation
166
1
Internationalization
169
20
Handling Internationalization in SharpDevelop
171
9
Redrawing with Events
173
3
Managing Translations
180
6
The Translation Web Application
181
1
Localization Implications
182
1
Compiling to Resource Files
182
1
Generating Resource Files from XML
182
2
Generating Resource Files from the Database
184
2
Basic Sequence Data Structures
190
1
The Gap Buffer Approach
192
1
Theory of the Gap Buffer
193
1
The Gap Buffer in Practice
194
3
The Future - The Piece Table
197
1
Composite Sequence Data Structures
198
1
Caret and Selection Management
206
4
Putting It All Together
212
4
Syntax Highlighting Definitions
220
13
Increasing Ease of Use with XML
220
6
Implementing Syntax Highlighting
226
1
Validation of the Syntax Highlighting Definition File
226
5
The Sequence of Events from the Opening of a File to the Highlighting of the Text Editor Window
231
2
Inside Search and Replace
249
11
Basic Find and Replace Implementation
249
3
The Brute Force Algorithm
254
2
The Knuth-Morris-Pratt (KMP) Algorithm
256
1
Wildcard Search Strategy
257
3
Writing the Editor Control
263
28
Introduction to the Editor
263
2
The TextArea Control
265
14
Parser and Language Theory
292
5
Basic Definitions and Theory
292
1
Technical Requirements
296
1
The SharpDevelop Parser
297
29
Reflection Parsing for Assemblies
299
5
Persistent Parsing for the Framework Class Library
304
5
The C# Parser for the Editor
309
7
Putting It All Together in the Parser Service
318
8
Code Completion and Method Insight
329
40
Navigating Code with the Class Scout and the Assembly Scout
369
44
Implementing the Class Scout
370
13
Browsing References with an Assembly Scout
383
2
Writing the Assembly Scout
385
26
The Designer Infrastructure
413
24
Forms Designer Overview
413
3
Implementation Considerations
414
1
The .NET Component Model
416
5
The Service Interfaces
418
1
Designer Host Implementation
421
13
Designer Host Services
431
1
The ComponentChangeService
431
1
The Name Creation Service
432
1
Implementing a Windows Forms Designer
437
28
Executing the Standard Commands
446
1
Implementing a Key Event Handler
447
3
Additional Important Services
454
1
Designer Option Service
455
2
Type Descriptor Filter Service
460
2
Unimplemented Services
462
1
Making Components Persistent
465
10
The XML Forms Persistence Format
466
1
The Designer Serialization Service
474
1
Generating C#/VB.NET Code
475
9