Training Categories
Click on a link to see more about each course.
Course Outline
Dates Offered (click on the desired date to register):
This course is currently not scheduled for the near future.
Programming in C#
Course Number: CS1
Course Description: This 3-day course is designed for the experienced programmer. This course concisely covers the essentials of programming using Microsoft's C# programming language. The course begins with an introduction to .Net, which allows the participant to become quickly versed in the .NET environment; C# language essentials and object-oriented programming in C#; how C# relates to the .NET Framework and a succinct introduction to creating GUI programs using Windows Forms. The course is practical, with many example programs.
Objectives:
- Create, compile and run C# programs using .NET
- Write and understand C# language constructs, syntax and classes
- Leverage the architecture and namespaces of the .NET framework library
- Manage the Common Language Runtime (CLR) to integrate C# with VB and C++
- Develop .NET components in C# for desktop and distributed multitier applications
Benefits: In this course, you gain the skills needed to exploit the C# language and the .NET Framework to develop C# programs that are useful for a broad range of desktop and Web applications. You gain a thorough understanding of the C# language.
Target Audience: This course is valuable for developers and engineers who are interested in programming using C#. Experience with a modern procedural programming language, e.g., Visual Basic (VB) or C, is assumed. Experience with C++ or Java is helpful but not assumed.
Prerequisites: The student should be an experienced application developer or architect. Some background in object-oriented programming would be helpful.
Course Length: 3 days
CourseTopics:
INTRODUCTION TO THE C# LANGUAGE
The evolution of C#
- Comparing C, C++, Java, VB and C#
- Expressing C# models in UML
C# and the .NET infrastructure
- Common Language Runtime (CLR)
- Managed code philosophy
- Intermediate Language (IL) and metadata
LANGUAGE FUNDAMENTALS
Data types and control constructs
- Declaring and initializing variables
- Value and reference types
- Unicode characters and strings
Defining and calling methods
- The Main method specification
- Passing arguments and returning values
- The scope and lifetime of variables
- Static vs. instance methods
- Handling exceptions
Employing .NET library classes
- Avoiding collisions by using namespaces
- Performing input/output using the Console class and stream classes
DEVELOPING C# CLASSES
Defining classes
- Encapsulating attributes
- Writing properties with get and put
- Providing consistent initialization using constructors
- Overloading methods and constructors
- Achieving reuse through inheritance and polymorphism
Creating and using objects
- Allocating objects with new
- Passing initial values to constructors
- Choosing value or reference allocation
- Boxing and unboxing
- Invoking methods & accessing properties
INTERCONNECTING OBJECTS
Associating classes
- Manipulating references
- Passing handles
- Physical vs. logical equivalence
- Selecting collection library classes
Exposing interfaces
- Defining an interface specification
- Implementing an interface in a class
- Interface polymorphism
- Indexers, events and delegates
- Overloading operators
SIMPLIFYING COMPONENT DEVELOPMENT
Component features of .NET
- Manifests and assemblies
- Private vs. shared assemblies
- Deploying .NET components to the Global Assembly Cache (GAC)
Writing .NET components in C#
- Creating and calling custom components
- Inheriting from the System.ComponentModel.Component
- Producing .NET components: a set of guidelines and standards
Interfacing to ActiveX components
- Accessing COM/DCOM
- Tools for forward and backward compatibility
- Wrapping legacy ActiveX components
Integrating VB .NET, C++ and C#
- Harmonizing components through the CLR
- Accessing metadata
- Handling cross-language exceptions
IMPLEMENTING AND ENHANCING C# SOLUTIONS
Building multitier applications
- Generating user interfaces
- File I/O and serialization
- Accessing databases with ADO.NET
- DataSets, DataAdapters and Connections
- Distributing using networking and remoting
Advanced techniques
- Threading and synchronization
- Automating documentation with XML
- Attributes and reflection
- Programming with generics