COMPLETE C#

Course Description  
This course is designed to expose experienced software developers to the C# programming language and the core APIs of the .NET platform. The course will begin by exposing attendees to the syntax and semantics of the C# programming language and Object Oriented Programming (OOP) concepts. Students will gain an understanding of the .NET type system (classes, structure, enums, interfaces and delegates), assembly configuration, file IO operations and the role of type metadata. Once the foundational topics have been addressed, the remainder of the class will introduce the role of Windows Forms, ADO.NET, and ASP.NET.

Course Length: 5 Days
Course Tuition: $1890 (US)
Prerequisites
Familiarity with the Windows XP/Windows Vista OS and experience using graphical IDEs to build and debug software application. Some exposure to OOP concepts is recommended but not required.
Course Outline  


• The Philosophy of .NET
Remembering the World of COM
COM Problems and .NET Solutions
The .NET Universe
The Role of the Common Type System (CTS)
The Role of the Common Language Specification (CLS)
The Role of the Common Language Runtime (CLR)
The Role of .NET Namespaces
The Role of Common Intermediate Language
The Role of Assemblies, Manifests and ILDasm
Paths to Managed Code: A Survey of .NET Languages
The CLI: The Basis of .NET ‘s Platform Independence
Building C# Applications Using csc.exe

• C# Language Fundamentals
The Anatomy of a Basic C# Application
Defining a Custom C# Class Type
Partial Class Definitions
Field Initialization
Constructors and Finalizers
C# Decision Constructs
Looping Constructs
Parameter Modifiers
Method Overloading
Exception Handling
Building Custom Exceptions

• Object Oriented Programming with C#
Encapsulation and Class Development
Defining Static Members
Static Class Definitions
Constant and the readonly Modifier
The Role of the ‘this’ Keyword
Implementation Inheritance
Implementing the Employee Base Class
Implementing the WageEmployee Class
Implementing the SalesEmployee Class
Implementing the Manager Class
Abstract Methods and Classes
Interfaces and Polymorphism
Explicit Interface Implementation
Interfaces versus Abstract Classes
Multiple Interface Inheritance
Type Casting
Inheritance and Composition
Defining Nested Types

• .NET Programming Fundamentals
Value Types and Reference Types
The Role of System.Object
Overriding Various Members of System.Object
The System.Data Types
Understanding Nullable Data Types
.NET String Formatting syntax
String Manipulation
Array Manipulation
Defining Enumerations
Defining Custom Namespaces
Understanding Delegates
Using Events

• Understanding Generics
Understanding the Role of Generics
Issues with Boxing and Unboxing
Issues with Custom Collection
Consuming Generic Types
Creating Custom Generic Methods
Building Custom Generic Types
Constraining Type Parameters

• Understanding .NET Assemblies
An Overview of .NET Assemblies
Building a Single File Assembly
Building a Client Application
Cross-Language Inheritance
Exploring the Manifest
Understanding Private Assemblies
Authoring Application Configuration Files
Understanding Shared Assemblies
Creating a Strongly Named Assembly
Installing a Strongly Named Assembly to the GAC
Versioning Policies and Shared Assemblies
Redirecting Assembly Request
Understanding Publisher Policy
Using the <codeBase> Element


• Programming with Windows Forms
An Overview of the System.Windows.Forms.dll Assembly
Building a Main Window by Hand
The Application Class
The Form Hierarchy
Adding Controls to a Form by Hand
The Control.ControlCollection Type
Handling Mouse Events
Handling Keyboard Events
Handling Paint Messages
Visual Studio Windows Application Project Workspaces
Working with the Windows Forms Designer
Working with Additional Designer Tools
Handling Events with the VS IDE
Working with the ‘Strip’ controls
Working with the MaskedTextBox
Working with the WebBrowser Widget
Creating Modal Dialog Boxes
Windows Form Inheritance

• Reflection and Attribute-Based Programming
Understanding Reflection
Investigating System.Type
Fun with System.Type
Examining the System.Reflection Namespace
Dynamically Loading an Assembly
Late Binding
Attribute-Based Programming
Assembly-Level Attributes
Building Custom Attributes
Restricting Attribute Usage
Attribute Reflection

• File IO and Object Serialization
The System.IO Namespace
The Abstract FileSystemInfo Type
The DirectoryInfo Type
The DriveInfo Type
Understanding the Stream Concept
Working with StreamReaders and StreamWriters
Working with BinaryReaders and BinaryWriters
Reading and Writing Binary Data
Object Serialization
Understanding Object Graphs
Configuring Objects for Serialization
Serializing an Object Graph to File
Serializing an Object Graph to a SOAP Message

• Introducing ADO.NET
Why Another Data Access API?
The System.Data.dll Assembly
The Role of ADO.NET Data Providers
The DataReader
Inserting New Data Using Command Objects
Deleting Data Using Command Objects
Updating Data Using Command Objects
Working with Individual Parameter Objects
Calling Stored Procedures
ADO.NET: The Disconnected layer
DataSets, DataTables, DataRows, and DataColumns
Understanding the DataAdapter
Modifying Data in a DataSet
The Role of the CommandBuilder Object
Adding Table Relationships
Consuming Table Relationships
Filtering the DataSet

• Advanced ADO.NET
Understanding ADO.NET Data Provider Factories
Working with the Connection String Builder
Working with the <connectionString> Element
DataTables as Data Readers

• Introducing ASP.NET
Problems with Class ASP
Benefits of ASP.NET
The ASP.NET Namespaces
The Role of the ASP.NET Development Web Server
Building a Simple ASP.NET Web Page with Visual Studio
The Code-Page Development Model
Understanding Web Controls
Working with Web Form Controls
The Derivation of a Web Form Control
Understand the Issue of State Management
Working with Application and Session Data

Contact us for course schedules or more information.





Questions? Call Today!
800-735-7418