ISBN.nu logo
isbn.nu
search for books and compare prices
Search >
Tables of Contents for Dissecting a C# Application
Chapter/Section Title
Page #
Page Count
Introduction
1
1
The Code in This Book
2
1
Conventions
2
1
Customer Support
3
4
How to Download the Sample Code for the Book
3
1
Errata
3
1
E-Mail Support
3
1
p2p.wrox.com
4
1
Why This System Offers the Best Support
4
3
Features at a Glance
7
16
The idea behind SharpDevelop
8
1
SharpDevelop Software Requirements
8
1
SharpDevelop's Panels and Views
9
3
Limitations
12
1
Customizing SharpDevelop
12
2
Internationalization
12
1
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
Bookmarks
16
1
Search and Replace Functionality
16
1
Compiling the Code
17
1
Managing Projects
17
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
Summary
20
3
Designing the Architecture
23
28
History of Architectural Design Decisions
23
4
The Early Stages
23
1
Building SharpDevelop with SharpDevelop
24
2
Correcting Bad Design Decisions
26
1
The Design Decisions
27
3
Designing Component-Exchangeability
29
1
Best Practices
30
18
Design Patterns
30
1
Singleton
31
1
Factory
31
2
Decorator
33
2
Strategy
35
1
Memento
36
1
Proxy
37
2
Coding Style Guideline
39
1
Defect Tracking and Testing
39
1
Bug Tracker
39
1
Unit Tests
40
1
Refactor Frequently
41
1
Design and Refactoring
42
6
Summary
48
3
Implementing the Core
51
30
The Addln Tree
52
14
Advantages of Using the Addln Tree
53
3
The Addln Tree Superstructure
56
1
Add-in Definition
57
3
From Tree Node to Running Object
60
2
Codon Creation
62
2
Conditions
64
2
Addln Management
66
4
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
Properties at Work
75
1
Property Persistence
76
3
Summary
79
2
Building the Application with Add-ins
81
26
Working with Codons
82
14
The ICommand Interface
82
3
Making Menus Work
85
8
Codon Overview
93
3
Wiring up Add-ins with Conditions
96
8
Condition Structure
97
1
Defining Conditions
98
2
Overview of Available Conditions
100
4
Summary
104
3
Providing Functionality with Workspace Services
107
28
Implementation Considerations
107
5
Requirements for Services
108
1
The ServiceManager
109
2
Defining Services
111
1
Common Services at your Service
112
21
File Utility Service
113
6
Property Service
119
1
Resource Service
119
1
String Parser Service
119
2
Ambience Service
121
2
Class Browser Icons Service
123
1
File Service
124
2
Project Service
126
5
Parser Service
131
2
Other Services
133
1
Summary
133
2
The User Interface
135
34
Display Management
136
30
The Workbench Window
136
1
Views
137
2
Pads
139
2
Views and Pads Applied - An Integrated HTML Help Viewer
141
1
The HTML View
142
6
Navigating the Help File
148
5
Layout Managers
153
13
The Current and Future Implementation
166
1
Summary
167
2
Internationalization
169
20
Handling Internationalization in SharpDevelop
171
9
Redrawing with Events
173
3
Accessing Resources
176
4
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
Summary
186
3
Document Management
189
30
Text Representation
190
9
Basic Sequence Data Structures
190
1
Arrays
190
2
Linked Lists
192
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
Representing Lines
199
7
Caret and Selection Management
206
4
The Text Model
210
2
Putting It All Together
212
4
Summary
216
3
Syntax Highlighting
219
16
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
Summary
233
2
Search and Replace
235
28
The Search Strategy
235
14
Inside Search and Replace
249
11
Basic Find and Replace Implementation
249
3
Using Algorithms
252
2
The Brute Force Algorithm
254
2
The Knuth-Morris-Pratt (KMP) Algorithm
256
1
Wildcard Search Strategy
257
3
Summary
260
3
Writing the Editor Control
263
28
Introduction to the Editor
263
2
The TextArea Control
265
14
Theory
265
1
Getting Started
266
6
Event Handling
272
5
Updating
277
2
The TextAreaPainter
279
6
Mouse Management
285
1
Folding
286
1
SharpPad
287
2
Summary
289
2
Writing the Parser
291
38
Need for a Parser
291
1
Parser and Language Theory
292
5
Basic Definitions and Theory
292
1
Grammar
292
3
Parsing
295
1
Technical Requirements
296
1
The SharpDevelop Parser
297
29
Design Decisions
297
1
Implementation
298
1
The Big Picture
298
1
Reflection Parsing for Assemblies
299
5
Persistent Parsing for the Framework Class Library
304
5
The C# Parser for the Editor
309
7
The Abstract Parser
316
2
Putting It All Together in the Parser Service
318
8
Summary
326
3
Code Completion and Method Insight
329
40
Resolving Matters
329
11
Code Completion
340
17
Method Insight
357
9
Summary
366
3
Navigating Code with the Class Scout and the Assembly Scout
369
44
The Class Scout
369
14
Implementing the Class Scout
370
13
The Assembly Scout
383
28
Browsing References with an Assembly Scout
383
2
Writing the Assembly Scout
385
26
Summary
411
2
The Designer Infrastructure
413
24
Forms Designer Overview
413
3
Implementation Considerations
414
1
Design Overview
415
1
The .NET Component Model
416
5
The Service Interfaces
418
1
.NET Designers
419
1
The Root Designer
420
1
Designer Host Implementation
421
13
Designer Host Services
431
1
The ComponentChangeService
431
1
The Name Creation Service
432
1
The Design Panel
433
1
Summary
434
3
Implementing a Windows Forms Designer
437
28
Designer Services
437
25
Toolbox Service
438
4
Menu Command Service
442
4
Executing the Standard Commands
446
1
Implementing a Key Event Handler
447
3
Selection Service
450
4
Additional Important Services
454
1
Designer Option Service
455
2
Dictionary Service
457
1
UI Service
457
3
Type Descriptor Filter Service
460
2
Unimplemented Services
462
1
Summary
462
3
Code Generation
465
34
Making Components Persistent
465
10
The XML Forms Persistence Format
466
1
Generating the XML
467
3
Loading the XML
470
4
The Designer Serialization Service
474
1
Generating C#/VB.NET Code
475
9
Round-tripping
484
12
Summary
496
3
Index
499