The Microsoft C# 3.0 Programming Language — A 4-Day Course
Course Synopsis
Microsoft's .NET Framework presents developers with unprecedented opportunities. From 'geo-scalable' web applications to desktop and mobile platform applications - all can be built with equal ease, using substantially the same skill-set. But to make the most of this potential, developers must have a thorough grasp of core language skills.
This four-day workshop concentrates on the C# programming language itself, to prepare delegates fully in readiness for exploring the .NET Framework. From basic procedural syntax to sophisticated object-oriented programming techniques, delegates will learn how to write .NET applications with code that is robust, maintainable and efficient.
Course Objectives
On completion of this course, delegates should be able to:
- Write efficient procedural code that includes appropriate sequence, selection and iteration constructs
- Create and use classes and structures (types), including fields, properties and methods using private, internal and public scope
- Create derived classes that inherit from custom-written or .NET Framework Library classes
- Create interfaces and apply techniques of polymorphism effectively and appropriately
- Build exception-handling into methods, to create robust, user-friendly application behaviour
- Work effectively with delegates and events and understand how they operate
- Leverage the power of C# features such as indexers and iterators
- Work with generic types, operator overloading and other advanced language capabilities
- Use attributes to configure program behaviour and efficiently manage resources
- Make use of the major new C# 3.0 feature - LINQ (Language Integrated Query)
- Version assemblies and know how .NET searches and loads the correct DLL's
Intended Audience
This course is intended for:
- Developers using C# to write .NET Framework applications and who are new to the C# programming language
- This includes those currently working with Visual Basic 6.0, C++ or Java.
Course Prerequisites
Before attending this course, students must:
- Understand the fundamentals of programming and have some prior exposure to object oriented programming.
Course Materials
The course is presented as a mixture of lectures and hands-on exercises. Practical sessions follow each topic, designed to reinforce the points covered. Additional information is provided in appendices to extend the learning experience after the course has been completed.
Publicly scheduled dates, locations, and prices
London — £1495 (+VAT)
- 3–6 Aug 2010
- 31 Aug–3 Sep 2010
- 5–8 Oct 2010
- 9–12 Nov 2010
- 7–10 Dec 2010
- 4–7 Jan 2011
- 7–10 Feb 2011
- 21–24 Mar 2011
- 18–21 Apr 2011
- 16–19 May 2011
- 13–16 Jun 2011
Reading — £1495 (+VAT)
- 31 Aug–3 Sep 2010
- 26–29 Oct 2010
Leicester — £1495 (+VAT)
- 17–20 Aug 2010
- 19–22 Oct 2010
Manchester — £1495 (+VAT)
- 24–27 Aug 2010
- 18–21 Oct 2010
- 13–16 Dec 2010
Leeds — £1495 (+VAT)
- 2–5 Aug 2010
- 24–27 Aug 2010
- 2–5 Nov 2010
- 1–4 Feb 2011
Outline Course Contents
Introduction to .NET amp; C#
- The .NET Framework
- The Common Language Runtime
- The Common Type System;
- C# Features
- Introduction to namespaces and assemblies
Language Fundamentals
- Procedures and statements
- Data types
- Declaring variables
- Assignments
- Conversion
- Arithmetic and other operators
- Control constructs
Types
- Type concepts
- Value and reference types
- Fields, properties and methods
- Accessibility modifiers
- Construction
- Assignment
- The simple types
- The 'null' reference
- Static and instance members
- Enumerated types
- Partial classes
- Static classes
Exception Handling
- Errors vs. Exceptions
- The 'try' block
- Using 'throw'
- The 'catch' block
- The 'finally' block;
- Creating your own exceptions
- 'checked' and 'unchecked' expressions
Inheritance
- Concept of inheritance
- Extending a simple class
- Polymorphism
- 'virtual', 'override', 'new' and 'sealed' modifiers
Abstract Classes & Interfaces
- Abstract classes
- Abstract methods, properties and indexers
- Polymorphism with interfaces
- Multiple interfaces
Arrays & Indexers
- Arrays
- Array initialisers
- Multi-dimensional arrays
- Jagged arrays
- Indexers
- Standard collections
- C# 2.0 Iterators
Generic Types
- The need for generics
- Writing and using generic types
- Applying constraints
- Other aspects of generic programming
- Nullable types
- Generic collections
Attributes
- Attributed code explained
- Using attributes
- Custom attributes
- Introduction to reflection
Namespaces & Assemblies
- Namespaces
- The 'using' statement for namespaces
- Assemblies
- DLLs at compile time and Run Time
- The Global Assembly Cache (GAC)
- Versioning using public/private key cryptography
Managing Resources
- Garbage collection and its impacts
- Finalizers
- The 'Dispose' method
- IDisposable interface
- The using statement for deterministic resource management
Delegates & Events
- Delegates explained
- Working with delegates
- Creating your own delegate types
- Events
- Generic delegate EventHandler
- Anonymous delegates
- Asynchronous invocation patterns
- Late binding using delegates
C# 3.0 Language Enhancements
- Object amp
- Collection initialisers
- Anonymous types
- 'var' & inferred data types
- Delegate type Func>A,R<
- Using lambda expressions
- Extension methods
- LINQ and how LINQ uses and relies on all these new C#3.0 language enhancements
Brief Introduction to ASP.NET & Windows Forms
- Putting the language into practice
- Creating a simple ASP.NET Web Forms application using ADO.NET
- Creating a simple Windows Forms application
- Using a Web Service
Operator Overloading
- Why operator overloading is useful
- When to overload
- Implicit conversions
- Explicit conversions
