The course focuses on C# program structure, language syntax, and implementation detailswith .NET Framework 4.0. This course describes the new enhancements in the C# 4.0 language by using Visual Studio 2010.
In this course, lower-intermediate level programmers gain the knowledge and skills they need to develop C# applications for the Microsoft .NET Framework 4.0. The course highlights the structure of C# 4.0 programs, language syntax, and implementation details. This course is not mapped to any exam.
Before attending this course, students must have:
- At least 12 months experience working with an Object Oriented language
- Have C++ or Java knowledge:
- Creating Classes
- Inheritance and Abstraction
- Knowledge of the Visual Studio IDE.
Module 1: Introducing C# and the .NET Framework
- This module explains the .NET Framework, and using C# and Visual Studio 2010 for building .NET Framework applications.
- Introduction to the .NET Framework
- Creating Projects Within Visual Studio 2010
- Writing a C# Application
- Building a Graphical Application
- Documenting an Application
- Running and Debugging Applications by Using Visual Studio 2010
Module 2: Using C# Programming Constructs
- This module explains the syntax of basic C# programming constructs.
- Declaring Variables and Assigning Values
- Using Expressions and Operators
- Creating and Using Arrays
- Using Decision Statements
- Using Iteration Statements
Module 3: Declaring and Calling Methods
- This module explains how to create and call methods.
- Defining and Invoking Methods
- Specifying Optional Parameters and Output Parameters
Module 4: Handling Exceptions
- This module explains how to catch exceptions and handle them. Students will also learn how to throw exceptions.
- Handling Exceptions
- Raising Exceptions
Module 5: Reading and Writing Files
- This module explains how to perform basic file I/O operations in a C# application.
- Accessing the File System
- Reading and Writing Files by Using Streams
Module 6: Creating New Types
- This module explains how to create and use new types (enumerations, classes, and structures)
- Creating and Using Enumerations
- Creating and Using Classes
- Creating and Using Structs
- Comparing References to Values
Module 7: Encapsulating Data and Methods
- This module explains how to control the visibility and lifetime of members in a type.
- Controlling Visibility of Type Members
- Sharing Methods and Data
Module 8: Inheriting From Classes and Implementing Interfaces
- This module explains how to use inheritance to create new reference types
- Using Inheritance to Define New Reference Types
- Defining and Implementing Interfaces
- Defining Abstract Classes
Module 9: Managing the Lifetime of Objects and Controlling Resources
- This module explains how to manage the lifetime of objects and control the use of resources.
- Introduction to Garbage Collection
- Managing Resources
Module 10: Encapsulating Data and Defining Overloaded Operators
- This module explains how to create properties and indexers to encapsulate data, and how to define operators for this data.
- Creating and Using Properties
- Creating and Using Indexers
- Overloading Operators
Module 11: Decoupling Methods and Handling Events
- This module explains how to decouple an operation from the method that implements an operation, and how to use these decoupled methods to handle asynchronous events.
- Declaring and Using Delegates
- Using Lambda Expressions
- Handling Events
Module 12: Using Collections and Building Generic Types
- This module introduces collections, and describes how to use Generics to implement type-safe collection classes, structures, interfaces, and methods.
- Using Collections
- Creating and Using Generic Types
- Defining Generic Interfaces and Understanding Variance=
- Using Generic Methods and Delegates
Module 13: Building and Enumerating Custom Collection Classes
- This module explains how to implement custom collection classes that support enumeration.
- Implementing a Custom Collection Class
- Adding an Enumerator to a Custom Collection Class
Module 14: Using LINQ to Query Data
- This module explains how to query in-memory data by using LINQ.
- Using the LINQ Extension Methods and Query Operators
- Building Dynamic LINQ Queries and Expressions
Module 15: Integrating Visual C# Code with Dynamic Languages and COM Components
- This module explains how to integrate code written by using a dynamic language such as Ruby and Python, and technologies such as COM, into a C# application
- Integrating C# Code with Ruby and Python
- Accessing COM Components from C#
After completing this course, students will be able to:
- Explain the purpose of the .NET Framework, and understand how to use C# and Visual Studio 2010 to build .NET Framework applications.
- Understand the syntax of basic C# programming constructs.
- Create and call methods in a C# application.
- Catch, handle and throw exceptions.
- Perform basic file IO operations in a C# application.
- Create and use new types (enumerations, classes, and structures), and understand the differences between reference types and value types.
- Control the visibility and lifetime of members in a type.
- Use inheritance to create new reference types.
- Manage the lifetime of objects and control the use of resources.
- Define properties and indexers to encapsulate data, and define operators for this data.
- Decouple an operation from the method that implements an operation, and use these decoupled operations to handle asynchronous events.
- Use collections to aggregate data, and use Generics to implement type-safe collection classes, structures, interfaces, and methods.
- Implement custom collection classes that support enumeration.
- Query in-memory data by using LINQ.
- Integrate code written by using a dynamic language such as Ruby and Python, or technologies such as COM, into a C# application
This course is intended for experienced developers who already have programming experience in C, C++, Visual Basic, or Java and understand the concepts of object-oriented programming.
This course is not designed for new programmers; it is targeted at professional developers with at least 12 months experience of programming in an object-oriented environment.