You are previewing C# 2008 For Programmers Third Edition Deitel® Developer Series.
O'Reilly logo
C# 2008 For Programmers Third Edition Deitel® Developer Series

Book Description

The professional programmer’s Deitel® guide to C# and the powerful Microsoft® .NET Framework

Written for programmers with a background in C++, Java or other high-level languages, this book applies the Deitel signature live-code approach to teaching programming and explores Microsoft’s C# language and .NET Framework 3.5 in depth. The book is updated for Visual Studio® 2008 and C# 3.0, and presents C# concepts in the context of fully tested programs, complete with syntax shading, code highlighting, line-by-line code descriptions, and program outputs. The book features 200+ C# applications with about 20,000 lines of proven C# code, and hundreds of tips that will help you build robust applications.

Start with a concise introduction to C# using an early classes and objects approach, then rapidly move on to more advanced topics, including the .NET Framework 3.5, LINQ, WPF, ASP.NET AJAX, WCF web services and Silverlight™. You’ll enjoy the Deitels’ classic treatment of object-oriented programming and the OOD/UML™ ATM case study, including a complete C# implementation. When you’re finished, you’ll have everything you need to build next-generation Windows applications, web applications and web services.

TheDeitel® Developer Series isdesigned for practicing programmers. The series presents focused treatments of emerging technologies, including .NET, Java™, web services, Internet and web development, and more.      

Practical, example-rich coverage of:

  • .Net Framework 3.5

  • Types, Arrays, LINQ to Objects

  • Exception Handling

  • LINQ, Object/Collection Initializers

  • OOP: Classes, Inheritance, Polymorphism, Interfaces

  • WinForms, WPF, XAML, Event Handling

  • WPF Graphics/Multimedia, Silverlight

  • Lists, Queues, Stacks, Trees

  • Generic Collections, Generic Methods and Classes

  • XML®, LINQ to XML

  • Database, SQL, LINQ to SQL

  • ASP.NET 3.5, ASP.NET AJAX

  • Web Forms, Web Controls

  • WCF Web Services

  • OOD/UML 2 CASE STUDY

  • And more

  • Visit www.deitel.com to:

  • Download code examples

  • Check out the growing list of programming, Web 2.0, and software-related Resource Centers

  • To receive updates for this book, subscribe to the free Deitel® Buzz Online e-mail newsletter at www.deitel.com/newsletter/subscribe.html

  • Read archived issues of the Deitel® Buzz Online

  • Visit www.deitel.com/training for information on Deitel’s Dive Into® Series corporate training courses delivered on-site worldwide

  • Pre-Publication Reviewer Testimonials

    “The ultimate, comprehensive book that teaches you how to program using the latest Microsoft technologies. Excellent explanations, lots of examples, all the necessary theoretical background and all the latest technologies for desktop, web and databases. The best overview of Silverlight.“

    –Kirill Osenkov, Microsoft

    “An excellent, true objects-first book. Excellent introduction to collections. The generics material is a real asset.“
    –Gavin Osborne, Saskatchewan Institutue of Applied Science & Technology

    “The early Introduction to Classes and Objects is brilliant. Coverage of ASP.NET 3.5 is exceptional. Includes a great introduction to ASP.NET AJAX.“

    –José Antonio González Seco, Parliament of Andalusia

    “Great chapter on polymorphism.“

    –Eric Lippert, Microsoft

    “Illustrates the best practices of C# programming. Teaches how to ‘program in the large,’ with material on object-oriented programming and software engineering principles.“

    –Mingsheng Hong, Cornell University

    “Excellent introduction to the world of .NET, using the Deitels’ live-code approach and real-world examples.“

    –Bonnie Berent, Microsoft C# MVP

    “Excellent chapter on exceptions. Very good chapter on Winforms GUIs.“

    –Marcelo Guerra Hahn, Microsoft

    “Perfect for professionals. Thorough introductions to the debugger and LINQ.“

    –Vinay Ahuja, Microsoft

    “The TV/video viewer will enthuse readers and help them see how complex graphics effects can be created easily in WPF. A good example of data binding in WPF.“

    —Ged Mead, Microsoft MVP, DevCity.Net

    “An excellent introduction to XML, LINQ to XML and related technologies.“

    —Helena Kotas, Microsoft

    “Good overview of relational databases. It hits on the right LINQ to SQL idioms.“

    —A

    Table of Contents

    1. Copyright
      1. Dedication
    2. Deitel® Series Page
      1. Deitel® Developer Series
      2. How to Program Series
      3. Simply Series
      4. CourseSmart Web Books
      5. LiveLessons Video Learning Products
    3. Deitel Resource Centers
    4. Preface
      1. New and Updated Features
      2. Features
        1. Early Classes and Objects Approach
        2. Tuned Treatment of Object-Oriented Programming in Chapters 10–12
        3. Case Studies
        4. Integrated GradeBook Case Study
        5. The Unified Modeling Language (UML)—Using the UML 2.0 to Develop an Object-Oriented Design of an ATM
        6. Object-Oriented Programming
        7. Visual Studio 2008 Debugger
      3. Dependency Chart
      4. Teaching Approach
      5. A Tour of the Optional Case Study on Object-Oriented Design with the UML
      6. Software for the Book
        1. Windows Vista and Windows XP
        2. Other Software Requirements
      7. Deitel® Buzz Online Free E-mail Newsletter
      8. The Deitel Online Resource Centers
      9. Acknowledgments
        1. C# 2008 for Programmers, 3/e, Reviewers
        2. C# for Programmers, 2/e, Reviewers
      10. About the Authors
      11. About Deitel & Associates, Inc.
    5. Before You Begin
      1. Font and Naming Conventions
      2. A Note Regarding Software for the Book
      3. Hardware and Software Requirements for the Visual Studio 2008 Express Editions
      4. Desktop Theme Settings for Windows Vista Users
      5. Desktop Theme Settings for Windows XP Users
      6. Viewing File Extensions
      7. Notes to Windows XP Users Regarding the Segoe UI Font Used in Many Applications
      8. Obtaining the Code Examples
      9. Installing the Software
      10. Miscellaneous Notes
    6. 1. Introduction
      1. 1.1. Introduction
      2. 1.2. Microsoft’s Windows® Operating System
      3. 1.3. C, C++ and Java
        1. C
        2. C++
        3. Java
      4. 1.4. Visual C#
      5. 1.5. Key Software Trend: Object Technology
      6. 1.6. The Internet and the World Wide Web
      7. 1.7. Extensible Markup Language (XML)
      8. 1.8. Introduction to Microsoft .NET
      9. 1.9. The .NET Framework and the Common Language Runtime
      10. 1.10. Test-Driving a C# Advanced Painter Application
      11. 1.11. (Only Required Section of the Case Study) Software Engineering Case Study: Introduction to Object Technology and the UML
        1. Basic Object-Technology Concepts
        2. Classes, Fields and Methods
        3. Introduction to Object-Oriented Analysis and Design (OOAD)
        4. History of the UML
        5. What Is the UML?
        6. Section 1.11 Self-Review Exercises
        7. Answers to Section 1.11 Self-Review Exercises
      12. 1.12. Wrap-Up
      13. 1.13. Web Resources
    7. 2. Dive Into® Visual C# 2008 Express
      1. 2.1. Introduction
      2. 2.2. Overview of the Visual Studio 2008 IDE
        1. Introduction to Microsoft Visual C# 2008 Express Edition
        2. Links on the Start Page
        3. Customizing the IDE and Creating a New Project
      3. 2.3. Menu Bar and Toolbar
      4. 2.4. Navigating the Visual Studio IDE
        1. 2.4.1. Solution Explorer
        2. 2.4.2. Toolbox
        3. 2.4.3. Properties Window
      5. 2.5. Using Help
      6. 2.6. Using Visual Programming to Create a Simple Program that Displays Text and an Image
      7. 2.7. Wrap-Up
      8. 2.8. Web Resources
    8. 3. Introduction to C# Applications
      1. 3.1. Introduction
      2. 3.2. A Simple C# Application: Displaying a Line of Text
      3. 3.3. Creating a Simple Application in Visual C# Express
        1. Creating the Console Application
        2. Modifying the Editor Settings to Display Line Numbers
        3. Setting Code Indentation to Three Spaces per Indent
        4. Changing the Name of the Application File
        5. Writing Code and Using IntelliSense
        6. Saving the Application
        7. Compiling and Running the Application
        8. Running the Application from the Command Prompt
        9. Syntax Errors, Error Messages and the Error List Window
      4. 3.4. Modifying Your Simple C# Application
        1. Displaying a Single Line of Text with Multiple Statements
        2. Displaying Multiple Lines of Text with a Single Statement
      5. 3.5. Formatting Text with Console.Write and Console.WriteLine
      6. 3.6. Another C# Application: Adding Integers
      7. 3.7. Arithmetic
      8. 3.8. Decision Making: Equality and Relational Operators
      9. 3.9. (Optional) Software Engineering Case Study: Examining the ATM Requirements Document
        1. Requirements Document
        2. Analyzing the ATM System
        3. Use Case Diagrams
        4. Designing the ATM System
        5. Web Resources
        6. Recommended Readings
        7. Software Engineering Case Study Self-Review Exercises
        8. Answers to Software Engineering Case Study Self-Review Exercises
      10. 3.10. Wrap-Up
      11. 3.11. Web Resources
    9. 4. Introduction to Classes and Objects
      1. 4.1. Introduction
      2. 4.2. Classes, Objects, Methods, Properties and Instance Variables
      3. 4.3. Declaring a Class with a Method and Instantiating an Object of a Class
        1. Class GradeBook
        2. Adding a Class to a Visual C# Project
        3. Class GradeBookTest
        4. UML Class Diagram for Class GradeBook
      4. 4.4. Declaring a Method with a Parameter
        1. More on Arguments and Parameters
        2. Updated UML Class Diagram for Class GradeBook
        3. Notes on using Directives
      5. 4.5. Instance Variables and Properties
        1. GradeBook Class with an Instance Variable and a Property
        2. Access Modifiers public and private
        3. Setting and Getting the Values of private Instance Variables
        4. GradeBook Class with a Property
        5. get and set Accessors
        6. Using Property CourseName in Method DisplayMessage
        7. GradeBookTest Class That Demonstrates Class GradeBook
      6. 4.6. UML Class Diagram with a Property
      7. 4.7. Software Engineering with Properties and set and get Accessors
      8. 4.8. Auto-Implemented Properties
        1. Code Snippets for Auto-implemented Properties
      9. 4.9. Value Types vs. Reference Types
      10. 4.10. Initializing Objects with Constructors
        1. Adding the Constructor to Class GradeBook’s UML Class Diagram
      11. 4.11. Floating-Point Numbers and Type decimal
        1. Real-Number Precision and Storage Requirements
        2. Account Class with an Instance Variable of Type decimal
        3. AccountTest Class to Use Class Account
        4. set and get Accessors with Different Access Modifiers
        5. UML Class Diagram for Class Account
      12. 4.12. (Optional) Software Engineering Case Study: Identifying the Classes in the ATM Requirements Document
        1. Identifying the Classes in a System
        2. Modeling Classes
        3. Software Engineering Case Study Self-Review Exercises
        4. Answers to Software Engineering Case Study Self-Review Exercises
      13. 4.13. Wrap-Up
    10. 5. Control Statements: Part 1
      1. 5.1. Introduction
      2. 5.2. Control Structures
        1. Sequence Structure in C#
        2. Selection Structures in C#
        3. Repetition Structures in C#
        4. Summary of Control Statements in C#
      3. 5.3. if Single-Selection Statement
      4. 5.4. if...else Double-Selection Statement
        1. Conditional Operator (?:)
          1. Nested if...else Statements
        2. Dangling-else Problem
        3. Blocks
      5. 5.5. while Repetition Statement
      6. 5.6. Counter-Controlled Repetition
        1. Implementing Counter-Controlled Repetition in Class GradeBook
        2. Class GradeBookTest
        3. Notes on Integer Division and Truncation
      7. 5.7. Formulating Algorithms: Sentinel-Controlled Repetition
        1. Implementing Sentinel-Controlled Repetition in Class GradeBook
        2. Program Logic for Sentinel-Controlled Repetition vs. Counter-Controlled Repetition
        3. Explicitly and Implicitly Converting Between Simple Types
      8. 5.8. Formulating Algorithms: Nested Control Statements
        1. AnalysisTest Class That Demonstrates Class Analysis
      9. 5.9. Compound Assignment Operators
      10. 5.10. Increment and Decrement Operators
      11. 5.11. Simple Types
      12. 5.12. (Optional) Software Engineering Case Study: Identifying Class Attributes in the ATM System
        1. Identifying Attributes
        2. Modeling Attributes
        3. Software Engineering Case Study Self-Review Exercises
        4. Answers to Software Engineering Case Study Self-Review Exercises
      13. 5.13. Wrap-Up
    11. 6. Control Statements: Part 2
      1. 6.1. Introduction
      2. 6.2. Essentials of Counter-Controlled Repetition
      3. 6.3. for Repetition Statement
      4. 6.4. Examples Using the for Statement
        1. Application: Summing the Even Integers from 2 to 20
        2. Application: Compound-Interest Calculations
      5. 6.5. do...while Repetition Statement
      6. 6.6. switch Multiple-Selection Statement
        1. GradeBook Class with switch Statement to Count A, B, C, D and F Grades
        2. GradeBookTest Class That Demonstrates Class GradeBook
        3. switch Statement UML Activity Diagram
      7. 6.7. break and continue Statements
        1. break Statement
        2. continue Statement
      8. 6.8. Logical Operators
        1. Conditional AND (&&) Operator
        2. Conditional OR (||) Operator
        3. Short-Circuit Evaluation of Complex Conditions
        4. Boolean Logical AND (&) and Boolean Logical OR (|) Operators
        5. Boolean Logical Exclusive OR (^)
        6. Logical Negation (!) Operator
        7. Logical Operators Example
      9. 6.9. (Optional) Software Engineering Case Study: Identifying Objects’ States and Activities in the ATM System
        1. State Machine Diagrams
        2. Activity Diagrams
        3. Software Engineering Case Study Self-Review Exercises
        4. Answers to Software Engineering Case Study Self-Review Exercises
      10. 6.10. Wrap-Up
    12. 7. Methods: A Deeper Look
      1. 7.1. Introduction
      2. 7.2. Packaging Code in C#
      3. 7.3. static Methods, static Variables and Class Math
        1. Math Class Constants PI and E
        2. Why Is Method Main Declared static?
        3. Additional Comments about Method Main
      4. 7.4. Declaring Methods with Multiple Parameters
        1. Implementing Method Maximum by Reusing Method Math.Max
        2. Assembling Strings with String Concatenation
      5. 7.5. Notes on Declaring and Using Methods
      6. 7.6. Method-Call Stack and Activation Records
      7. 7.7. Argument Promotion and Casting
      8. 7.8. The .NET Framework Class Library
      9. 7.9. Case Study: Random-Number Generation
        1. Rolling a Six-Sided Die
        2. Rolling a Six-Sided Die 6000 Times
        3. 7.9.1. Scaling and Shifting Random Numbers
        4. 7.9.2. Random-Number Repeatability for Testing and Debugging
      10. 7.10. Case Study: A Game of Chance (Introducing Enumerations)
      11. 7.11. Scope of Declarations
      12. 7.12. Method Overloading
        1. Declaring Overloaded Methods
        2. Distinguishing Between Overloaded Methods
        3. Return Types of Overloaded Methods
      13. 7.13. Recursion
        1. Recursive Factorial Calculations
      14. 7.14. Passing Arguments: Pass-by-Value vs. Pass-by-Reference
      15. 7.15. (Optional) Software Engineering Case Study: Identifying Class Operations in the ATM System
        1. Identifying Operations
        2. Modeling Operations
        3. Operations of Class BankDatabase and Class Account
        4. Operations of Class Screen
        5. Operations of Class Keypad
        6. Operations of Class CashDispenser and Class DepositSlot
        7. Operations of Class ATM
        8. Identifying and Modeling Operation Parameters
        9. Software Engineering Case Study Self-Review Exercises
        10. Answers to Software Engineering Case Study Self-Review Exercises
      16. 7.16. Wrap-Up
    13. 8. Arrays
      1. 8.1. Introduction
      2. 8.2. Arrays
      3. 8.3. Declaring and Creating Arrays
        1. Resizing an Array
      4. 8.4. Examples Using Arrays
        1. Creating and Initializing an Array
        2. Using an Array Initializer
        3. Calculating a Value to Store in Each Array Element
        4. Summing the Elements of an Array
        5. Using Bar Charts to Display Array Data Graphically
        6. Using the Elements of an Array as Counters
        7. Using Arrays to Analyze Survey Results
      5. 8.5. Case Study: Card Shuffling and Dealing Simulation
        1. Class Card
        2. Class DeckOfCards
        3. Shuffling and Dealing Cards
      6. 8.6. foreach Statement
        1. Implicitly Typed Local Variables
      7. 8.7. Passing Arrays and Array Elements to Methods
      8. 8.8. Passing Arrays by Value and by Reference
      9. 8.9. Case Study: Class GradeBook Using an Array to Store Grades
        1. Storing Student Grades in an Array in Class GradeBook
        2. Class GradeBookTest That Demonstrates Class GradeBook
      10. 8.10. Multidimensional Arrays
        1. Rectangular Arrays
        2. Jagged Arrays
        3. Creating Two-Dimensional Arrays with Array-Creation Expressions
        4. Two-Dimensional Array Example: Displaying Element Values
        5. Common Multidimensional-Array Manipulations Performed with for Statements
      11. 8.11. Case Study: Class GradeBook Using a Rectangular Array
        1. Storing Student Grades in a Rectangular Array in Class GradeBook
        2. Class GradeBookTest That Demonstrates Class GradeBook
      12. 8.12. Variable-Length Argument Lists
      13. 8.13. Using Command-Line Arguments
      14. 8.14. (Optional) Software Engineering Case Study: Collaboration Among Objects in the ATM System
        1. Identifying the Collaborations in a System
        2. Interaction Diagrams
        3. Communication Diagrams
        4. Sequence of Messages in a Communication Diagram
        5. Sequence Diagrams
        6. Software Engineering Case Study Self-Review Exercises
        7. Answers to Software Engineering Case Study Self-Review Exercises
      15. 8.15. Wrap-Up
    14. 9. Introduction to LINQ and Generic Collections
      1. 9.1. Introduction
        1. LINQ Providers
      2. 9.2. Querying an Array Using LINQ
        1. Using LINQ to Query an Array of Employee Objects
        2. Using a Generic Method to Display LINQ Query Results
        3. Notes About Type Parameters and Generic Methods
      3. 9.3. Introduction to Collections
      4. 9.4. Querying a Generic Collection Using LINQ
      5. 9.5. Wrap-Up
      6. 9.6. Deitel LINQ Resource Center
    15. 10. Classes and Objects: A Deeper Look
      1. 10.1. Introduction
      2. 10.2. Time Class Case Study
        1. Time1 Class Declaration
        2. Using Class Time1
        3. Notes on the Time1 Class Declaration
      3. 10.3. Controlling Access to Members
      4. 10.4. Referring to the Current Object’s Members with the this Reference
      5. 10.5. Indexers
      6. 10.6. Time Class Case Study: Overloaded Constructors
        1. Class Time2 with Overloaded Constructors
        2. Class Time2’s Constructors
        3. Notes Regarding Class Time2’s Methods, Properties and Constructors
        4. Using Class Time2’s Overloaded Constructors
      7. 10.7. Default and Parameterless Constructors
      8. 10.8. Composition
      9. 10.9. Garbage Collection and Destructors
      10. 10.10. static Class Members
      11. 10.11. readonly Instance Variables
      12. 10.12. Software Reusability
      13. 10.13. Data Abstraction and Encapsulation
      14. 10.14. Time Class Case Study: Creating Class Libraries
        1. Steps for Declaring and Using a Reusable Class
        2. Step 1: Creating a public Class
        3. Step 2: Adding the namespace Declaration
        4. Step 3: Compiling the Class Library
        5. Step 4: Adding a Reference to the Class Library
        6. Step 5: Using the Class from an Application
      15. 10.15. internal Access
      16. 10.16. Class View and Object Browser
        1. Using the Class View Window
        2. Using the Object Browser
      17. 10.17. Object Initializers
      18. 10.18. Time Class Case Study: Extension Methods
        1. Extension Method Notes
      19. 10.19. Delegates
      20. 10.20. Lambda Expressions
      21. 10.21. Anonymous Types
        1. Anonymous Types in LINQ
      22. 10.22. (Optional) Software Engineering Case Study: Starting to Program the Classes of the ATM System
        1. Visibility
        2. Navigability
        3. Implementing the ATM System from Its UML Design
        4. Software Engineering Case Study Self-Review Exercises
        5. Answers to Software Engineering Case Study Self-Review Exercises
      23. 10.23. Wrap-Up
    16. 11. Object-Oriented Programming: Inheritance
      1. 11.1. Introduction
      2. 11.2. Base Classes and Derived Classes
      3. 11.3. protected Members
      4. 11.4. Relationship between Base Classes and Derived Classes
        1. 11.4.1. Creating and Using a CommissionEmployee Class
        2. 11.4.2. Creating a BasePlusCommissionEmployee Class without Using Inheritance
        3. 11.4.3. Creating a CommissionEmployee–BasePlusCommissionEmployee Inheritance Hierarchy
        4. 11.4.4. CommissionEmployee–BasePlusCommissionEmployee Inheritance Hierarchy Using protected Instance Variables
        5. 11.4.5. CommissionEmployee–BasePlusCommissionEmployee Inheritance Hierarchy Using private Instance Variables
      5. 11.5. Constructors in Derived Classes
      6. 11.6. Software Engineering with Inheritance
      7. 11.7. Class object
      8. 11.8. Wrap-Up
    17. 12. Polymorphism, Interfaces and Operator Overloading
      1. 12.1. Introduction
      2. 12.2. Polymorphism Examples
      3. 12.3. Demonstrating Polymorphic Behavior
      4. 12.4. Abstract Classes and Methods
      5. 12.5. Case Study: Payroll System Using Polymorphism
        1. 12.5.1. Creating Abstract Base Class Employee
        2. 12.5.2. Creating Concrete Derived Class SalariedEmployee
        3. 12.5.3. Creating Concrete Derived Class HourlyEmployee
        4. 12.5.4. Creating Concrete Derived Class CommissionEmployee
        5. 12.5.5. Creating Indirect Concrete Derived Class BasePlusCommissionEmployee
        6. 12.5.6. Polymorphic Processing, Operator is and Downcasting
        7. 12.5.7. Summary of the Allowed Assignments Between Base-Class and Derived-Class Variables
      6. 12.6. sealed Methods and Classes
      7. 12.7. Case Study: Creating and Using Interfaces
        1. 12.7.1. Developing an IPayable Hierarchy
        2. 12.7.2. Declaring Interface IPayable
        3. 12.7.3. Creating Class Invoice
        4. 12.7.4. Modifying Class Employee to Implement Interface IPayable
        5. 12.7.5. Modifying Class SalariedEmployee for Use with IPayable
        6. 12.7.6. Using Interface IPayable to Process Invoices and Employees Polymorphically
        7. 12.7.7. Common Interfaces of the .NET Framework Class Library
      8. 12.8. Operator Overloading
      9. 12.9. (Optional) Software Engineering Case Study: Incorporating Inheritance and Polymorphism into the ATM System
        1. Implementing the ATM System Design Incorporating Inheritance
        2. ATM Case Study Wrap-Up
        3. Software Engineering Case Study Self-Review Exercises
        4. Answers to Software Engineering Case Study Self-Review Exercises
      10. 12.10. Wrap-Up
    18. 13. Exception Handling
      1. 13.1. Introduction
      2. 13.2. Exception-Handling Overview
      3. 13.3. Example: Divide by Zero without Exception Handling
        1. Running the Application
        2. Analyzing the Results
      4. 13.4. Example: Handling DivideByZeroExceptions and FormatExceptions
        1. 13.4.1. Enclosing Code in a try Block
        2. 13.4.2. Catching Exceptions
        3. 13.4.3. Uncaught Exceptions
        4. 13.4.4. Termination Model of Exception Handling
        5. 13.4.5. Flow of Control When Exceptions Occur
      5. 13.5. .NET Exception Hierarchy
        1. 13.5.1. Class SystemException
        2. 13.5.2. Determining Which Exceptions a Method Throws
      6. 13.6. finally Block
        1. Moving Resource-Release Code to a finally Block
        2. Demonstrating the finally Block
        3. Throwing Exceptions Using the throw Statement
        4. Rethrowing Exceptions
        5. Returning After a finally Block
        6. The using Statement
      7. 13.7. Exception Properties
        1. Property InnerException
        2. Other Exception Properties
        3. Demonstrating Exception Properties and Stack Unwinding
        4. Throwing an Exception with an InnerException
        5. Displaying Information About the Exception
      8. 13.8. User-Defined Exception Classes
      9. 13.9. Wrap-Up
    19. 14. Graphical User Interfaces with Windows Forms: Part 1
      1. 14.1. Introduction
      2. 14.2. Windows Forms
      3. 14.3. Event Handling
        1. 14.3.1. A Simple Event-Driven GUI
        2. 14.3.2. Another Look at the Visual Studio Generated Code
        3. 14.3.3. Delegates and the Event-Handling Mechanism
          1. Delegates
          2. Indicating the Method that a Delegate Should Call
        4. 14.3.4. Other Ways to Create Event Handlers
          1. Using the Properties Window to Create Event Handlers
        5. 14.3.5. Locating Event Information
      4. 14.4. Control Properties and Layout
        1. Using Visual Studio To Edit a GUI’s Layout
      5. 14.5. Labels, TextBoxes and Buttons
      6. 14.6. GroupBoxes and Panels
      7. 14.7. CheckBoxes and RadioButtons
        1. CheckBoxes
        2. RadioButtons
      8. 14.8. PictureBoxes
        1. Using Resources Programmatically
      9. 14.9. ToolTips
      10. 14.10. NumericUpDown Control
      11. 14.11. Mouse-Event Handling
      12. 14.12. Keyboard-Event Handling
      13. 14.13. Wrap-Up
    20. 15. Graphical User Interfaces with Windows Forms: Part 2
      1. 15.1. Introduction
      2. 15.2. Menus
      3. 15.3. MonthCalendar Control
      4. 15.4. DateTimePicker Control
      5. 15.5. LinkLabel Control
      6. 15.6. ListBox Control
      7. 15.7. CheckedListBox Control
      8. 15.8. ComboBox Control
      9. 15.9. TreeView Control
      10. 15.10. ListView Control
      11. 15.11. TabControl Control
      12. 15.12. Multiple Document Interface (MDI) Windows
        1. MDI Parent Form
        2. MDI Child Form
      13. 15.13. Visual Inheritance
        1. Creating a Base Form
        2. Deriving From a Base Form
      14. 15.14. User-Defined Controls
        1. Sharing Custom Controls with Other Developers
      15. 15.15. Wrap-Up
    21. 16. GUI with Windows Presentation Foundation
      1. 16.1. Introduction
      2. 16.2. Windows Presentation Foundation (WPF)
        1. Introduction to XAML
      3. 16.3. XML Basics
        1. Viewing and Modifying XML Documents
        2. Processing XML Documents
        3. Validating XML Documents
        4. Formatting and Manipulating XML Documents
      4. 16.4. Structuring Data
        1. Viewing an XML Document in Internet Explorer
        2. XML Markup for a Business Letter
      5. 16.5. XML Namespaces
        1. Differentiating Elements with Namespaces
        2. Specifying a Default Namespace
        3. Namespaces in XML Vocabularies
      6. 16.6. Declarative GUI Programming Using XAML
      7. 16.7. Creating a WPF Application in Visual C# Express
      8. 16.8. Laying Out Controls
        1. 16.8.1. General Layout Principles
        2. 16.8.2. Layout in Action
          1. GroupBox Control
          2. StackPanel Control
          3. Grid Control
          4. Canvas Control
          5. DockPanel Control
          6. Layout in Design Mode
      9. 16.9. Event Handling
        1. Mouse and Keyboard Events
        2. Routed Events
      10. 16.10. Commands and Common Application Tasks
        1. Menus and Toolbars
      11. 16.11. WPF GUI Customization
      12. 16.12. Using Styles to Change a Control’s Appearance
        1. Dependency Properties
      13. 16.13. Customizing Windows
      14. 16.14. Defining a Control’s Appearance with Control Templates
        1. Triggers
        2. Functionality
      15. 16.15. Data-Driven GUIs with Data Binding
        1. Bindings
        2. Data Templates
        3. Data Views
        4. Asynchronous Data Binding
      16. 16.16. Wrap-Up
      17. 16.17. Web Resources
    22. 17. WPF Graphics and Multimedia
      1. 17.1. Introduction
      2. 17.2. Controlling Fonts
      3. 17.3. Basic Shapes
      4. 17.4. Polygons and Polylines
      5. 17.5. Brushes
        1. ImageBrush
        2. VisualBrush and MediaElement
        3. Gradients
      6. 17.6. Transforms
      7. 17.7. WPF Customization: A Television GUI
        1. WPF Bitmap Effects
        2. Creating Buttons on the TV
        3. Creating the TV Interface
        4. Creating the Reflection of the TV Screen
        5. Skewing the GUI Components to Create a 3-D Look
        6. Examining the Code-Behind Class
      8. 17.8. Animations
      9. 17.9. (Optional) 3-D Objects and Transforms
        1. Creating the 3-D Object
        2. Using a Brush on the Surface of a 3-D Object
        3. Defining a Camera and a Light Source
        4. Animating the 3-D Object
      10. 17.10. Wrap-Up
    23. 18. Strings, Characters and Regular Expressions
      1. 18.1. Introduction
      2. 18.2. Fundamentals of Characters and Strings
      3. 18.3. string Constructors
      4. 18.4. string Indexer, Length Property and CopyTo Method
      5. 18.5. Comparing strings
      6. 18.6. Locating Characters and Substrings in strings
      7. 18.7. Extracting Substrings from strings
      8. 18.8. Concatenating strings
      9. 18.9. Miscellaneous string Methods
      10. 18.10. Class StringBuilder
      11. 18.11. Length and Capacity Properties, EnsureCapacity Method and Indexer of Class StringBuilder
      12. 18.12. Append and AppendFormat Methods of Class StringBuilder
      13. 18.13. Insert, Remove and Replace Methods of Class StringBuilder
      14. 18.14. Char Methods
      15. 18.15. Card Shuffling and Dealing Simulation
      16. 18.16. Introduction to Regular-Expression Processing
        1. 18.16.1. Simple Regular Expressions and Class Regex
          1. Regular-Expression Character Classes and Quantifiers
        2. 18.16.2. Complex Regular Expressions
        3. 18.16.3. Validating User Input with Regular Expressions and LINQ
        4. 18.16.4. Regex Methods Replace and Split
      17. 18.17. Wrap-Up
    24. 19. Files and Streams
      1. 19.1. Introduction
      2. 19.2. Data Hierarchy
      3. 19.3. Files and Streams
      4. 19.4. Classes File and Directory
        1. Demonstrating Classes File and Directory
        2. Searching Directories with LINQ
      5. 19.5. Creating a Sequential-Access Text File
        1. Class BankUIForm
        2. Class Record
        3. Using a Character Stream to Create an Output File
      6. 19.6. Reading Data from a Sequential-Access Text File
      7. 19.7. Case Study: Credit Inquiry Program Using LINQ
      8. 19.8. Serialization
      9. 19.9. Creating a Sequential-Access File Using Object Serialization
        1. Defining the RecordSerializable Class
        2. Using a Serialization Stream to Create an Output File
      10. 19.10. Reading and Deserializing Data from a Binary File
      11. 19.11. Wrap-Up
    25. 20. XML and LINQ to XML
      1. 20.1. Introduction
      2. 20.2. Document Type Definitions (DTDs)
        1. Creating a Document Type Definition
        2. Defining Elements in a DTD
        3. Defining Attributes in a DTD
        4. Character Data vs. Parsed Character Data
        5. Defining Empty Elements in a DTD
        6. Well-Formed Documents vs. Valid Documents
      3. 20.3. W3C XML Schema Documents
        1. Validating Against an XML Schema Document
        2. Creating an XML Schema Document
        3. Defining an Element in XML Schema
        4. A Closer Look at Types in XML Schema
        5. Automatically Creating Schemas using Visual Studio
      4. 20.4. Extensible Stylesheet Language and XSL Transformations
        1. A Simple XSL Example
        2. Using XSLT to Sort and Format Data
        3. Summary of XSL Style-Sheet Elements
      5. 20.5. LINQ to XML: Document Object Model (DOM)
        1. Reading an XML Document with an XDocument
      6. 20.6. LINQ to XML Class Hierarchy
      7. 20.7. LINQ to XML: Namespaces and Creating Documents
      8. 20.8. XSLT with Class XslCompiledTransform
        1. Performing an XSL Transformation in C# Using the .NET Framework
      9. 20.9. Wrap-Up
      10. 20.10. Web Resources
    26. 21. Databases and LINQ to SQL
      1. 21.1. Introduction
      2. 21.2. Relational Databases
      3. 21.3. Relational Database Overview: Books Database
        1. Authors Table of the Books Database
        2. Titles Table of the Books Database
        3. AuthorISBN Table of the Books Database
        4. Foreign Keys
        5. Entity-Relationship Diagram for the Books Database
      4. 21.4. SQL
        1. 21.4.1. Basic SELECT Query
        2. 21.4.2. WHERE Clause
        3. 21.4.3. ORDER BY Clause
        4. 21.4.4. Retrieving Data from Multiple Tables: INNER JOIN
        5. 21.4.5. INSERT Statement
        6. 21.4.6. UPDATE Statement
        7. 21.4.7. DELETE Statement
          1. SQL Wrap-Up
      5. 21.5. LINQ to SQL
      6. 21.6. LINQ to SQL: Extracting Information from a Database
        1. 21.6.1. Creating LINQ to SQL Classes
          1. Step 1: Creating the Project
          2. Step 2: Adding a Database to the Project
          3. Step 3: Generating the LINQ to SQL classes
        2. 21.6.2. Creating Data Bindings
          1. Step 1: Adding a Data Source
          2. Step 2: Create GUI Elements
          3. Step 3: Connect the BooksDataContext to the AuthorBindingSource
          4. Step 4: Saving Modifications Back to the Database
          5. Step 5: Configuring the Database File to Persist Changes
          6. Testing the Application
      7. 21.7. More Complex LINQ Queries and Data Binding
        1. Step 1: Creating the Project
        2. Step 2: Creating the LINQ to SQL Classes
        3. Step 3: Creating a DataGridView to Display the Titles Table
        4. Step 4: Adding a ComboBox to the Form
        5. Step 5: Programming an Event Handler for the ComboBox
        6. Step 6: Customizing the Form’s Load Event Handler
        7. Step 7: Saving Changes
        8. Testing the Application
        9. The BooksDataContext’s Log Property
      8. 21.8. Retrieving Data from Multiple Tables with LINQ
      9. 21.9. Creating a Master/Detail View Application
        1. Step 1: Creating the Project
        2. Step 2: Creating LINQ to SQL Classes
        3. Step 3: Creating GUI Elements
        4. The Master/Detail Application
      10. 21.10. Programming with LINQ to SQL: Address-Book Case Study
        1. Step 1: Creating the Project
        2. Step 2: Creating LINQ to SQL Classes and Data Source
        3. Step 3: Indicating that the IDE Should Create a Set of Labels and TextBoxes to Display Each Row of Data
        4. Step 4: Dragging the Address Data-Source Node to the Form
        5. Step 5: Making the AddressID TextBox ReadOnly
        6. Step 6: Connecting the BindingSource to the DataContext
        7. Step 7: Running the Application
        8. Step 8: Adding Controls to Allow Users to Specify a Last Name to Locate
        9. Step 9: Programming an Event Handler that Locates the User-Specified Last Name
        10. Step 10: Allowing the User to Return to Browsing All Rows of the Database
        11. Data Binding in the AddressBook Application
      11. 21.11. Wrap-Up
      12. 21.12. Tools and Web Resources
    27. 22. ASP.NET 3.5 and ASP.NET AJAX
      1. 22.1. Introduction
      2. 22.2. Simple HTTP Transactions
        1. URIs
        2. Parts of a URL
        3. Making a Request and Receiving a Response
        4. HTTP Headers
        5. HTTP GET and POST Requests
        6. Client-Side Caching
      3. 22.3. Multitier Application Architecture
      4. 22.4. Creating and Running a Simple Web-Form Example
        1. 22.4.1. Examining an ASPX File
        2. 22.4.2. Examining a Code-Behind File
        3. 22.4.3. Relationship Between an ASPX File and a Code-Behind File
        4. 22.4.4. How the Code in an ASP.NET Web Page Executes
        5. 22.4.5. Examining the XHTML Generated by an ASP.NET Application
        6. 22.4.6. Building an ASP.NET Web Application
          1. Step 1: Creating the Web Application Project
          2. Step 2: Examining the Solution Explorer of the Newly Created Project
          3. Step 3: Examining the Toolbox in Visual Web Developer
          4. Step 4: Examining the Web Forms Designer
          5. Step 5: Examining the Code-Behind File in the IDE
          6. Step 6: Renaming the ASPX File
          7. Step 7: Renaming the Class in the Code-Behind File and Updating the ASPX File
          8. Step 8: Changing the Title of the Page
          9. Step 9: Designing the Page
          10. Step 10: Adding Page Logic
          11. Step 11: Running the Program
          12. Windows Firewall Settings
      5. 22.5. Web Controls
        1. 22.5.1. Text and Graphics Controls
          1. Adding an XHTML Table to a Web Form
          2. Setting the Color of Text on a Web Form
          3. Examining Web Controls on a Sample Registration Form
          4. CSS Inline Styles and Embedded Style Sheets
        2. 22.5.2. AdRotator Control
          1. Demonstrating the AdRotator Web Control
          2. Connecting Data to an AdRotator Control
          3. Examining an XML File Containing Advertisement Information
        3. 22.5.3. Validation Controls
          1. Validating Input in a Web Form
          2. Using RequiredFieldValidator Controls
          3. Using RegularExpressionValidator Controls
          4. Examining the Code-Behind File for a Web Form That Receives User Input
          5. Examining the Client-Side XHTML for a Web Form with Validation
      6. 22.6. Session Tracking
        1. Personalization
        2. Privacy
        3. Recognizing Clients
        4. 22.6.1. Cookies
          1. Using Cookies to Provide Book Recommendations
          2. Adding and Linking to a New Web Form
          3. Writing Cookies in a Code-Behind File
          4. Displaying Book Recommendations Based on Cookie Values
          5. Code-Behind File That Creates Book Recommendations From Cookies
        5. 22.6.2. Session Tracking with HttpSessionState
          1. Adding Session Items
          2. Displaying Recommendations Based on Session Values
          3. Code-Behind File That Creates Book Recommendations from a Session
      7. 22.7. Case Study: Connecting to a Database in ASP.NET
        1. 22.7.1. Building a Web Form That Displays Data from a Database
          1. Step 1: Creating the Project
          2. Step 2: Creating the Form for User Input
          3. Step 3: Adding a GridView Control to the Web Form
          4. Step 4: Adding a Database to an ASP.NET Web Application
          5. Step 5: Binding the GridView to the Messages Table of the Guestbook Database
          6. Step 6: Modifying the Columns of the Data Source Displayed in the GridView
          7. ASPX File for a Web Form That Interacts with a Database
        2. 22.7.2. Modifying the Code-Behind File for the Guestbook Application
      8. 22.8. Case Study: Secure Books Database Application
        1. 22.8.1. Examining the Completed Secure Books Database Application
        2. 22.8.2. Creating the Secure Books Database Application
          1. Step 1: Creating the Website
          2. Step 2: Setting Up the Website’s Folders
          3. Step 3: Configuring the Application’s Security Settings
          4. Step 4: Examining the Autogenerated web.config Files
          5. Step 5: Creating a Master Page
          6. Step 6: Creating a Content Page
          7. Step 7: Adding a CreateUserWizard Control to a Content Page
          8. Step 8: Creating a Login Page
          9. Step 9: Creating a Content Page That Only Authenticated Users Can Access
          10. Step 10: Customizing the Secure Page
          11. Step 11: Connecting the CreateUserWizard and Login Controls to the Secure Page
          12. Step 12: Generating LINQ to SQL Classes Based on the Books.mdf Database
          13. Step 13: Adding a DropDownList Containing Authors’ First and Last Names
          14. Step 14: Creating a GridView to Display the Selected Author’s Books
          15. Step 17: Examining the Markup in Books.aspx
      9. 22.9. ASP.NET AJAX
        1. 22.9.1. Traditional Web Applications
        2. 22.9.2. Ajax Web Applications
        3. 22.9.3. Examining an ASP.NET AJAX Application
          1. ScriptManager Control
          2. Grouping Information in Tabs Using the TabContainer Control
          3. Partial-Page Updates Using the UpdatePanel Control
          4. Adding Ajax Functionality to ASP.NET Validation Controls Using Ajax Extenders
          5. Additional ASP.NET Information
      10. 22.10. New ASP.NET 3.5 Data Controls
      11. 22.11. Wrap-Up
      12. 22.12. Web Resources
    28. 23. Windows Communication Foundation (WCF) Web Services
      1. 23.1. Introduction
      2. 23.2. WCF Services Basics
      3. 23.3. Simple Object Access Protocol (SOAP)
      4. 23.4. Representational State Transfer (REST)
      5. 23.5. JavaScript Object Notation (JSON)
      6. 23.6. Publishing and Consuming SOAP-Based Web Services
        1. 23.6.1. Creating a WCF Web Service
        2. 23.6.2. Code for the WelcomeSOAPXMLService
        3. 23.6.3. Building a SOAP-Based Web Service
          1. Step 1: Creating the Project
          2. Step 2: Examining the Newly Created Project
          3. Step 3: Modifying and Renaming the Code-Behind File
          4. Step 4: Examining the SVC File
          5. Step 5: Modifying the SVC File
          6. Step 6: Examining the Web.config File
          7. Step 7: Modifying the Web.config File
        4. 23.6.4. Deploying the WelcomeSOAPXMLService
          1. Web Services Description Language
        5. 23.6.5. Creating a Client to Consume the WelcomeSOAPXMLService
          1. Step 1: Opening the Add Service Reference Dialog
          2. Step 2: Specifying the Web Service’s Location
          3. Step 3: Renaming the Service Reference’s Namespace
          4. Step 4: Adding the Service Reference
          5. Step 5: Viewing the Service Reference in the Solution Explorer
        6. 23.6.6. Consuming the WelcomeSOAPXMLService
      7. 23.7. Publishing and Consuming REST-Based XML Web Services
        1. 23.7.1. Creating a REST-Based XML Web Service
          1. Step 1: Adding the WebGet Attribute
          2. Step 2: Modifying the Web.config File
        2. 23.7.2. Consuming a REST-Based XML Web Service
      8. 23.8. Publishing and Consuming REST-Based JSON Web Services
        1. 23.8.1. Creating a REST-Based JSON Web Service
        2. 23.8.2. Consuming a REST-Based JSON Web Service
      9. 23.9. Blackjack Web Service: Using Session Tracking in a SOAP-Based Web Service
        1. 23.9.1. Creating a Blackjack Web Service
        2. 23.9.2. Consuming the Blackjack Web Service
      10. 23.10. Airline Reservation Web Service: Database Access and Invoking a Service from ASP.NET
        1. Creating a Web Form to Interact with the Airline Reservation Web Service
      11. 23.11. Equation Generator: Returning User-Defined Types
        1. Defining Class Equation
        2. 23.11.1. Creating the REST-Based XML EquationGenerator Web Service
        3. 23.11.2. Consuming the REST-Based XML EquationGenerator Web Service
        4. 23.11.3. Creating the REST-Based JSON EquationGenerator Web Service
        5. 23.11.4. Consuming the REST-Based JSON EquationGenerator Web Service
      12. 23.12. Wrap-Up
      13. 23.13. Deitel Web Services Resource Centers
    29. 24. Silverlight, Rich Internet Applications and Multimedia
      1. 24.1. Introduction
      2. 24.2. Platform Overview
      3. 24.3. Silverlight Runtime and Tools Installation
      4. 24.4. Building a Silverlight WeatherViewer Application
        1. Differences Between WPF and Silverlight
        2. Introduction to the WeatherViewer Application
        3. 24.4.1. GUI Layout
        4. 24.4.2. Obtaining and Displaying Weather Forecast Data
          1. Using the WebClient Class to Invoke a Web Service
          2. Using LINQ to XML to Process the Weather Data
          3. Using Data Binding to Display the Weather Data
        5. 24.4.3. Custom Controls
      5. 24.5. Animations and the FlickrViewer
        1. FlickrViewer Example
      6. 24.6. Images and Deep Zoom
        1. The DeepZoomCoverCollage Example
        2. 24.6.1. Getting Started With Deep Zoom Composer
        3. 24.6.2. Creating a Silverlight Deep Zoom Application
          1. Zooming a MultiScaleImage
          2. Panning a MultiScaleImage
          3. Determining the Title of the Clicked Cover
      7. 24.7. Audio and Video
      8. 24.8. Isolated Storage
      9. 24.9. Silverlight Demos and Web Resources
      10. 24.10. Wrap-Up
    30. 25. Data Structures
      1. 25.1. Introduction
      2. 25.2. Simple-Type structs, Boxing and Unboxing
        1. Simple-Type structs
        2. Boxing and Unboxing Conversions
      3. 25.3. Self-Referential Classes
      4. 25.4. Linked Lists
        1. Linked-List Implementation
        2. Method InsertAtFront
        3. Method InsertAtBack
        4. Method RemoveFromFront
        5. Method RemoveFromBack
        6. Method Display
        7. Linear and Circular Singly Linked and Doubly Linked Lists
      5. 25.5. Stacks
        1. Stack Class That Inherits from List
        2. Stack Class That Contains a Reference to a List
      6. 25.6. Queues
        1. Queue Class That Inherits from List
      7. 25.7. Trees
        1. Basic Terminology
        2. Binary Search Trees
          1. 25.7.1. Binary Search Tree of Integer Values
        3. Inorder Traversal Algorithm
        4. Preorder Traversal Algorithm
        5. Postorder Traversal Algorithm
        6. Duplicate Elimination
          1. 25.7.2. Binary Search Tree of IComparable Objects
      8. 25.8. Wrap-Up
    31. 26. Generics
      1. 26.1. Introduction
      2. 26.2. Motivation for Generic Methods
      3. 26.3. Generic-Method Implementation
      4. 26.4. Type Constraints
        1. IComparable< T > Interface
        2. Specifying Type Constraints
        3. Analyzing the Code
      5. 26.5. Overloading Generic Methods
      6. 26.6. Generic Classes
        1. Creating Generic Methods to Test Class Stack< T >
      7. 26.7. Wrap-Up
    32. 27. Collections
      1. 27.1. Introduction
      2. 27.2. Collections Overview
      3. 27.3. Class Array and Enumerators
      4. 27.4. Nongeneric Collections
        1. 27.4.1. Class ArrayList
        2. 27.4.2. Class Stack
        3. 27.4.3. Class Hashtable
          1. Problems with Nongeneric Collections
      5. 27.5. Generic Collections
        1. 27.5.1. Generic Class SortedDictionary
        2. 27.5.2. Generic Class LinkedList
      6. 27.6. Wrap-Up
    33. A. Operator Precedence Chart
    34. B. Simple Types
      1. Additional Simple Type Information
    35. C. Number Systems
      1. C.1. Introduction
      2. C.2. Abbreviating Binary Numbers as Octal and Hexadecimal Numbers
      3. C.3. Converting Octal and Hexadecimal Numbers to Binary Numbers
      4. C.4. Converting from Binary, Octal or Hexadecimal to Decimal
      5. C.5. Converting from Decimal to Binary, Octal or Hexadecimal
      6. C.6. Negative Binary Numbers: Two’s Complement Notation
    36. D. ATM Case Study Code
      1. D.1. ATM Case Study Implementation
      2. D.2. Class ATM
        1. Implementing the Operation
        2. Authenticating the User
        3. Performing Transactions
        4. Creating Transactions
      3. D.3. Class Screen
      4. D.4. Class Keypad
      5. D.5. Class CashDispenser
      6. D.6. Class DepositSlot
      7. D.7. Class Account
        1. public Read-Only Properties of Class Account
        2. public Methods of Class Account
      8. D.8. Class BankDatabase
        1. private Utility Method GetAccount
        2. public Methods
      9. D.9. Class Transaction
      10. D.10. Class BalanceInquiry
      11. D.11. Class Withdrawal
        1. Overriding abstract Method Execute
        2. Displaying Options With private Utility Method DisplayMenuOfAmounts
      12. D.12. Class Deposit
        1. Overriding abstract Method Execute
        2. Getting Deposit Amount with private Utility Method PromptForDepositAmount
      13. D.13. Class ATMCaseStudy
      14. D.14. Wrap-Up
    37. E. UML 2: Additional Diagram Types
      1. E.1. Introduction
      2. E.2. Additional Diagram Types
    38. F. ASCII Character Set
    39. G. Unicode®
      1. G.1. Introduction
      2. G.2. Unicode Transformation Formats
      3. G.3. Characters and Glyphs
      4. G.4. Advantages/Disadvantages of Unicode
      5. G.5. Using Unicode
      6. G.6. Character Ranges
    40. H. Using the Visual C# 2008 Debugger
      1. H.1. Introduction
      2. H.2. Breakpoints and the Continue Command
      3. H.3. DataTips and Visualizers
      4. H.4. The Locals and Watch Windows
      5. H.5. Controlling Execution Using the Step Into, Step Over, Step Out and Continue Commands
      6. H.6. Other Debugging Features
        1. H.6.1. Edit and Continue
        2. H.6.2. Exception Assistant
        3. H.6.3. Just My Code™ Debugging
        4. H.6.4. Other Debugger Features
    41. Inside Front Cover
      1. DEITEL®DEVELOPER SERIES Cover Theme
      2. The Rock and Roll Hall of Fame and Museum—Cleveland, Ohio
      3. About Deitel & Associates, Inc.