The C#3.0 Programming Language
Course Summary
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 course is intended for developers who will use 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.
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.
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.
Prerequisites:
Delegates must understand the fundamentals of programming. Some prior exposure to object oriented programming would be beneficial but not required
Delegates will learn how to:
- Write efficient procedural code that includes sequence, selection and iteration constructs
- Create and use classes and structures (types), including fields, properties and methods
- Use private, internal, protected and public scope
- Create derived classes that inherit from custom-written or .NET Framework classes
- Create interfaces and apply techniques of polymorphism effectively and appropriately
- Build exception-handling into methods, to create robust, user-friendly applications
- 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
- Make use of the major new C# 3.0 feature – LINQ (Language Integrated Query)
- Use attributes to configure program behaviour and efficiently manage resources
- Version assemblies and know how .NET searches and loads the correct DLL’s
Course Outline
Module 1: Introduction to .NET & C#
The .NET Framework; The Common Language Runtime; The Common Type System; C# Features; Introduction to namespaces and assemblies
Module 2: Language Fundamentals
Procedures and statements; Data types; Declaring variables; Assignments; Conversion; Arithmetic and other operators; Control constructs
Module 3: 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
Module 4: Exception Handling
Errors vs. Exceptions; The ‘try’ block; Using ‘throw’; The ‘catch’ block; The ‘finally’ block; Creating your own exceptions; ‘checked’ and ‘unchecked’ expressions.
Module 5: Inheritance
Concept of inheritance; Extending a simple class; Polymorphism; ‘virtual’, ‘override’, ‘new’ and ‘sealed’ modifiers
Module 6: Abstract Classes & Interfaces
Abstract classes; Abstract methods, properties and indexers; Polymorphism with interfaces; Multiple interfaces
Module 7: Arrays & Indexers
Arrays; Array initialisers; Multi-dimensional arrays; Jagged arrays; Indexers; Standard collections; C# 2.0 Iterators
Module 8: Generic Types
The need for generics; Writing and using generic types; Applying constraints; Other aspects of generic programming; Nullable types; Generic collections
Module 9: Attributes
Attributed code explained; Using attributes; Custom attributes; Introduction to reflection
Module 10: 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
Module 11: Managing Resources
Garbage collection and its impacts; Finalizers; The ‘Dispose’ method; IDisposable interface; The using statement for deterministic resource management
Module 12: Delegates & Events
Delegates explained; Working with delegates; Creating your own delegate types; Events; Generic delegate EventHandler<T>; Anonymous delegates; Asynchronous invocation patterns; Late binding using delegates
Module 13: C# 3.0 Language Enhancements
Object & 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
Module 14: 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
Appendix Module : Operator Overloading
Why operator overloading is useful; When to overload Implicit conversions; explicit conversions
Upcoming Courses
This course is also available at your premises by appointment.
Related Courses
Related Certificates
None.





