- Tel: +44 (0)1275 859666
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
- Interfaces
- ERROR HANDLING
- C# Exceptions
- Try / Catch Processing
- The Finally Block
- Passing Exceptions Up the Stack
- The Throw Statement
- Re-Throwing Exceptions
- User Defined Exceptions
- Try / Catch Processing
- ADVANCED C# CONCEPTS
- Delegates
- Delegates: Anonymous Methods
- Delegates: Lambda Expressions
- Extensions Methods (.NET 3.0)
- Operator Overloading
- Indexers
- Delegates: Anonymous Methods
- 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
- Generics
- LINQ TO OBJECTS
- The Basics
- LINQ with Custom Types
- The Select Statement
- GroupBy & Distinct
- LINQ with Custom Types
- SORTING OBJECTS
- Sorting Objects
- The IComparable Interface
- IComparers
- SortedDictionary and SortedList
- SortedList
- SortedList
- SortedDictionary
- The IComparable Interface
- C# I/O
- File and Directory manipulation
- Simple Reading and Writing
- Classes to Read / Write
- BinaryReader
- BinaryWriter
- Serialization - Persistence of Objects
- Serialization With XML
- Simple Reading and Writing
- THREADS & SYNCHRONISATION
- What is a Thread?
- Creating Threads
- Thread and ThreadStart
- ParameterizedThreadStart
- ThreadPool
- CountdownEvent
- ManualResetEvent
- Delegates and Threads
- Thread Synchronization
- Thread Priority
- Creating Threads
- ASYNCHRONOUS PROGRAMMING
- Introduction to Async and Await
- Using 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
- Laying out forms
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.