CS03 - C# Programming Workshop - 3 Days

Course Description

This course covers all major aspects of programming with C# using the Microsoft Visual Studio IDE. It is aimed at programmers who are already able to code with simple C# applications and wish to broaden their knowledge with a greater understanding of the C# API.


Pre-requisites

An understanding of programming with C# or C++ is required. Students must be able to code simple Applications and Classes. Knowledge of this can be gained by attending the C# Primer course CS02.


Objectives

The aim of this course is to give students a fully rounded general knowledge of programming with C#. Whereas the C# Primer (CS02) course provides basic skills, this course moves onto more advanced topics including Advanced Programming topics, Collections, Threads, I/O and Windows Applications.

During the course the student will write many applications and classes ensuring that the statements taught are fully understood and practical experience is gained.

The course is taught using Microsoft's Visual Studio IDE. The skills needed to use this software are presented as part of the course.

On completion of this course the student will be able to:

  • Take advantage of and understand Interfaces and Delegates
  • Understand and use Collections, ArrayLists and Dictionaries
  • Create and handle Exceptions
  • Use the C# Input/Output classes
  • Understand and use Serialization to achieve persistence
  • Understand multi-threading and synchronization and use the various techniques available to create separate threads
  • Create Windows Based applications


Environment

Development will be performed using:

  • Microsoft Visual Studio


Customisation

For on-site courses (i.e. at your premises), we are more than happy to tailor the course agenda to suit your exact requirements. In many cases, we are able to build your in-house standards and naming conventions into the delivered course.


Course Details

ABSTRACT CLASSES AND INTERFACES
Abstract Classes and Methods
Interfaces
Defining an Interface
Implementing an Interface
Explicitly Implementing An Interface

ERROR HANDLING
C# Exceptions
Try / Catch Processing
The Finally Block
Passing Exceptions Up the Stack
The Throw Statement
Re-Throwing Exceptions
User Defined Exceptions

ADVANCED C# CONCEPTS
Delegates
Delegates: Anonymous Methods
Delegates: Lambda Expressions
Extensions Methods (.NET 3.0)
Operator Overloading
Indexers

COLLECTIONS
Collection Interfaces and Implementations
Generics
Summary Of Collection Implementations
Using Collection Classes - ArrayLists
Using Collection Initializers
Other ArrayList Methods
Generic List
Traversing Collections
Filtering Items From A List
Using Collection Classes - Hashtables
Looping around Hashtables
Generic Dictionaries
Dictionary Exceptions

LINQ TO OBJECTS
The Basics
LINQ with Custom Types
The Select Statement
GroupBy & Distinct

SORTING OBJECTS
Sorting Objects
The IComparable Interface
IComparers
SortedDictionary and SortedList
SortedList
SortedList
SortedDictionary

C# I/O
File and Directory manipulation
Simple Reading and Writing
Classes to Read / Write
BinaryReader
BinaryWriter
Serialization - Persistence of Objects
Serialization With XML

THREADS & SYNCHRONISATION
What is a Thread?
Creating Threads
Thread and ThreadStart
ParameterizedThreadStart
ThreadPool
CountdownEvent
ManualResetEvent
Delegates and Threads
Thread Synchronization
Thread Priority

ASYNCHRONOUS PROGRAMMING
Introduction to Async and Await
Using Async and Await

INTRODUCTION TO VISUAL APPLICATIONS
Forms, Controls, Menus, Dialogs, Common Dialogs
Laying out forms
Delegates and Events
Constituent and Custom Controls
Custom Events


Course Format

Practical sessions make up a large part of the course, allowing delegates to demonstrate and reinforce the lectures given. During these sessions the delegate will build a simple but complete application.

Examples are used extensively, ranging from simple code 'snippets' to full applications with complete 'real world' functionality. These are supplied at the start of the course and it is encouraged that the delegates execute and 'experiment' with these under the instructor's guidance as they are introduced.

These examples are available to take away, along with the delegate's own work.

The comprehensive Student Guide supplied is fully indexed serving as a useful reference tool long after the course has finished. Delegates will also be able to access a free help-line with technical questions relating to topics covered on the course.


Course Enquiry