Overview
This 5-day, lecture-and-lab course presents object-oriented programming with Visual C# 2008. Key topics include the Visual C# 2008 Express IDE (or Visual Studio 2008), classes, objects, encapsulation, interfaces, inheritance, polymorphism, abstract classes, creating class libraries, Language Integrated Query (LINQ), generic collections, event-driven programming, Windows Forms graphical user interfaces (GUIs), Windows Presentation Foundation (WPF) GUI and graphics, exception handling, file processing and generics. The object-oriented concepts in this course are presented with a focus on the differences between C# and other programming languages. Students create Visual C# applications, understand C# object-oriented programming, learn to use various .NET Framework Class Library classes and participate in extensive laboratory assignments for hands on experience. After taking this course, students will be prepared to take VC#300—Advanced Visual C# 2008.
Prerequisites
- Object-oriented programming in a language such as C++ or Java.
Introduction
Review of C# syntax and concepts presented in the following chapters of Visual C# 2008 How to Program, 3/e:
- Chapter 2—Introduction to the Visual C# 2008 Express IDE
- Chapter 3—Introduction to C# Applications
- Chapter 4—Introduction to Classes and Objects
- Chapter 5—Control Statements: Part 1
- Chapter 6—Control Statements: Part 2
- Chapter 7—Methods: A Deeper Look
- Chapter 8—Arrays
Introduction to LINQ and Generic Collections
- Querying an Array Using LINQ
- Introduction to Collections
- Querying a Generic Collection Using LINQ
- Deitel LINQ Resource Center
Classes and Objects: A Deeper Look
- Time Class Case Study
- Controlling Access to Members
- Referring to the Current Object’s Members with the this Reference
- Indexers
- Time Class Case Study: Overloaded Constructors
- Default and Parameterless Constructors
- Composition
- Garbage Collection and Destructors
- static Class Members
- readonly Instance Variables
- Time Class Case Study: Creating Class Libraries
- Class View and Object Browser
Object-Oriented Programming: Inheritance
- Base Classes and Derived Classes
- protected Members
- Relationship between Base Classes and Derived Classes
- Creating and Using a CommissionEmployee Class
- Creating a BasePlusCommissionEmployee Class without Using Inheritance
- Creating a CommissionEmployee–BasePlusCommissionEmployee Inheritance Hierarchy
- CommissionEmployee–BasePlusCommissionEmployee Inheritance Hierarchy Using protected Instance Variables
- CommissionEmployee–BasePlusCommissionEmployee Inheritance Hierarchy Using private Instance Variables
- Class object
Polymorphism, Interfaces & Operator Overloading
- Polymorphism Examples
- Demonstrating Polymorphic Behavior
- Abstract Classes and Methods
- Case Study: Payroll System Using Polymorphism
- Operator is and Downcasting
- Summary of the Allowed Assignments Between Base Class and Derived Class Variables
- sealed Methods and Classes
- Case Study: Creating and Using Interfaces
- Common Interfaces of the .NET Framework Class Library
- Operator Overloading
Exception Handling
- Exception Handling Overview
- Example: Divide by Zero Without Exception Handling
- Handling DivideByZeroExceptions and FormatExceptions
- Enclosing Code in a try Block
- Catching Exceptions
- Uncaught Exceptions
- Termination Model of Exception Handling
- Flow of Control When Exceptions Occur
- .NET Exception Hierarchy
- Determining Which Exceptions a Method Throws
- finally Block
- Exception Properties
- User-Defined Exception Classes
Graphical User Interfaces with Windows Forms
- Windows Forms
- Event Handling
- A Simple Event-Driven GUI
- Another Look at the Visual Studio Generated Code
- Delegates and the Event-Handling Mechanism
- Other Ways to Create Event Handlers
- Locating Event Information
- Control Properties and Layout
- Labels, TextBoxes and Buttons
- GroupBoxes and Panels
- CheckBoxes and RadioButtons
- PictureBoxes
- ToolTips
- NumericUpDown Control
- Mouse-Event Handling
GUI with Windows Presentation Foundation
- Windows Presentation Foundation (WPF)
- XML Basics
- Structuring Data
- XML Namespaces
- Declarative GUI Programming Using XAML
- Creating a WPF Application in Visual Basic Express
- Laying Out Controls
- General Layout Principles
- Layout in Action
- Event Handling
- Commands and Common Application Tasks
- WPF GUI Customization
- Using Styles to Change the Appearance of Controls
- Customizing Windows
- Defining a Control’s Appearance with Control Templates
- Data-Driven GUIs with Data Binding
WPF Graphics and Multimedia
- Controlling Fonts
- Basic Shapes
- Polygons and Polylines
- Brushes
- Transforms
- WPF Customization: A Television GUI
- Animations
Files and Streams
- Classes File and Directory
- Creating a Sequential-Access Text File
- Reading Data from a Sequential-Access Text File
- Serialization
- Creating a Sequential-Access File Using Object Serialization
- Reading and Deserializing Data from a Sequential-Access File
Generics
- Motivation for Generic Methods
- Generic Method Implementation
- Type Constraints
- Overloading Generic Methods
- Generic Classes
- Notes on Generics and Inheritance
Collections
- Introduction
- Collections Overview
- Class Array and Enumerators
- Generic Class SortedDictionary
- Generic Class LinkedList
Optional Object-Oriented Design (OOD) with the Unified Modeling Language (UML) Case Study
An optional topic for our object-oriented programming classes is our case study on object-oriented design using the UML in which we design and fully implement the software for a simple automated teller machine (ATM). We introduce a subset of the UML 2.0, then guide the reader through an end-to-end first object-oriented design and implementation experience which ends with a walkthrough of the complete code.
Price
- $12,995 lecture fee for up to 20 students maximum. Add $1,000 for international or custom classes.
- Client purchases the books, at its own expense, directly from Pearson (the publisher) at the discounted Deitel rate.
- Instructor Travel Reimbursement (if travel is required).
Courses in the Visual C# 2008 Curriculum
