Course Duration: 4 1/2 days
Price: $18,500 for 12 students. Additional students: $750 per student. Price includes all course materials and texts. Instructor travel and lodging are extra.
Programming is a design skill. This 4 1/2 day course teaches VB.NET programming and emphasizes the design elements of a .NET program. We use a Responsibility-Driven approach to programming which helps you maintain a design-level view of an application while coping with myriad low-level details. We implement objects to play roles within an application, and position them within an application architecture according to their responsibilities. This architecture gives you a conceptual framework to guide your coding activities.
This course teaches:
- Mastering the VB.NET language syntax
- Using the library classes and frameworks: Collections, Threads, Streams, File I/O, and the Event-Delegate Framework.
- Debugging and handling errors.
- Applying VB.NET-specific programming styles, patterns, and idioms.
- Choosing an appropriate application architecture.
- Populating the application architecture with well-defined roles.
- Taking full advantage of encapsulation, inheritance, and polymorphism.
- Applying selected patterns from the most recent patterns literature
Course Outline
Section 1: Developing from a Candidate Model
- Role Stereotypes
- Application Architectures
- Developing a Candidate Object Model
- Design Patterns
- Understanding UML Diagrams
- Choosing a Control Style
Case Studies in Object Design
Section 2: The .NET Framework
- Survey of .NET Tools and Concepts
- Garbage Collection
- .NET Namespaces
- Using Value Types and Operators
- Using Reference Types
- Declaring Classes and Structs
- Declaring Member Variables
- Member Variable Idioms
- Defining Properties
Section 3: Representing Information
- Defining Specialized Constructors
- Constructor Chaining and other Idioms
- Defining Enums
- Defining Methods and Parameters
- Documenting with XML
- Method Idioms
- Defining Subclasses
- Overriding and Hiding Methods
- Applying Patterns for Object Creation
- Strategies for Unit Testing
Section 4: Structuring Objects
- Comparing Composition with Inheritance
- Using Interfaces
- Choosing between Interfaces and Abstract Classes
- Interface Idioms
- Using Arrays
- Choosing from Collections, Lists and Dictionaries
- Using Enumerators
- Casting from one Type to Another
- Defining Enumerable Objects
- Creating Indexable Objects
- Control Structures
- Testing for Equality
- Defining Static Variables and Methods
Section 5: Providing Services
- Comparing Objects
- Sorting Objects
- Command Pattern
- Using Streams and Writers
- Performing File I/O
- Using the Exception Classes
- Exception Idioms
- Eliminating Decisions with the Double Dispatch Pattern
Section 6: Event-Oriented Programming
- Using Events and Delegates
- Applying the Observer Pattern
- Multicasting Events
- Using Nested Classes
- Defining Type-Safe Constants
Section 7: Concurrent Programming
- Creating and Starting Threads
- Thread States
- ThreadStart Delegates
- Pausing and Resuming Threads
- Setting Thread Properties and Priorities
- Synchronizing Threads with a Monitor
- Thread Idioms
- Implementing the Active Object Pattern
The Best Way to Learn
People learn by doing. This course includes many cycles of hands-on work, followed by instructor-led clinics that reinforce C# coding and design concepts. Each learning cycle, which lasts between 1 hour and 2 hours, consists of:
- First, a lecture and demonstration of new concepts and techniques.
- Then, a series of quick hands-on explorations of the .NET class library.
- Where applicable, demonstration of relevant coding patterns.
- Then, a challenging programming exercise.
Finally, a group clinic that reinforces the best solutions. You present your work for review and comment. This discussion reinforces the object-oriented principles and programming idioms involved in the exercise.
Prerequisites
You should be familiar with programming concepts and be looking for a coherent way to approach a programming project.
For additional information, please contact us: training@wirfs-brock.com