Introduction to C# and .NET

Course:  CSHNI
Duration:  5 Days
Level:  I
Course Summary

This course provides an intensive architectural overview of the Microsoft .NET Development environment and the Common Language Runtime (CLR) using C# as the language of choice. It focuses on understanding how to develop applications and reusable classes that take advantage of the features exposed through the CLR. Specifically it will introduce you to the object model of .NET and more generally to the .NET Framework including ADO.NET, and Windows Forms Programming. We can use either Visual Studio .NET 2008, or Visual Studio 2010.

« Hide The Details
Topics Covered In This Course

Introduction to .NET: Terms and Definitions (from a programmer???s viewpoint)

  • Application Domain
  • Assemblies
  • Digital Signing
  • Global Assembly Cache
  • Namespaces and Modules
  • User Defined Types: enums, structs, classes, interfaces and delegates
  • Components of all types

Introduction to Types (Value Types vs Reference Types)

  • Static vs Instance
  • Constants, Fields and Methods (and nested types)
  • Exploring Enums
  • Structures vs Classes
  • Special Methods
    • Constructors
    • Static Constructors
    • Destructors
    • Properties
    • Indexers
    • Operators (and Operator Overloading)
    • Converters (as a special form of operator overloading)
  • Managing Memory
    • Static Region
    • Stack
    • Managed Heap
    • Garbage Collection
  • Controlling Program Execution
    • Conditional constructs
    • Looping constructs
    • Debugging and Tracing constructs
  • Working with Types
    • Object
    • Assignment
    • Parameters
    • Nullable Types
    • Dynamic Types

Implementing Classes and Polymorphic Behavior in C#

  • Virtual Functions
  • Overriding vs Overloading
  • Abstract Classes
  • Sealed and New functions
  • Casting and determining type
  • Interfaces
  • Explicit Implementation

System.Collections as an Example

  • IEnumerable
  • IEnumerator
  • ICollection
  • IList and IDictionary
  • ArrayList and Hashtable
  • Generics and the 2008 Collection Classes for Type Safe Collections

Delegates and Events

  • Definition of Delegates
  • Examples and Case Study
  • Definition of Events
  • Procedure for exposing Events
  • Windows Forms as a case study of Events
  • Events vs Virtual Functions
  • Anonymous Methods and Lambda Functions

Debugging and Exception Processing

  • Errors vs Exceptions
  • Throwing Exceptions
  • Catching Exceptions
  • Finally clauses
  • Interacting with the debugger

System.IO

  • The stream class
  • System.Text.Encoders and Decoders
  • Readers and Writers
    • BinaryReader/Writer
    • TextReader/Writer
  • System.File and System.Directory
  • System.FileWatcher

Database (ADO.NET)

  • Connected Model
    • IDbConnection
    • IDBCommand
    • IDataRecord
    • IDataReader
  • Disconnected Model
    • DataSet
    • DataAdaptors
    • Typed DataSets
  • Using LINQ (Lambda Functions Revisited)
  • Entity Framework (.Net 4.0)

Windows Forms

  • Introduction and Basic control usage
  • Visual Inheritance
  • Creating Controls
  • Data Binding

Deployment

  • Private Assemblies
  • Signing Assemblies
  • Installing Assemblies into the GAC
  • Versioning Assemblies

Security

  • Code Access Security Demo
What You Can Expect

At the end of this course, the attendee will be able to:

  • Describe Terms and Technologies in .NET including:
    • Application Domains
    • Assemblies
    • Digital Signatures
    • Global Assembly Cache
    • Namespaces and Modules
    • Types ??? Enumerations, Structures, Classes, Interfaces, and Delegates
    • Meta Data and Attributes
  • Describe basic features of C# like:
    • Variables
    • Managed Objects
    • Flow Control Constructs
  • Create efficient and reusable types in .NET using techniques such as:
    • Static and Instance
    • Constant and Read-only
    • Fields and Properties
    • Constructors and Finalizers
    • Operators and Operator Overloading
    • Implicit and Explicit Converters
    • Indexers
    • Ordinary, Virtual and Sealed Methods
  • Effectively Manage resources using CLR features like:
    • Garbage Collection
    • Polymorphism and Casting
    • Explicit Interfaces
  • Describe usage patterns for basic .NET Framework namespaces and features:
    • System.Collections
    • System.IO
    • System.Data (ADO.NET)
    • System.Windows.Forms(Windows Forms)
Who Should Take This Course

The primary audience for this course is the Professional Developer who is trying to learn the Microsoft .NET programming environment. Secondary Audiences would include Testing, Support, and Help desk personnel who need a broad understanding of these technologies. Additional Audiences might include the Management of teams of such individuals.

Recommended Prerequisites

Attendees of this course should have familiarity with basic programming constructs and knowledge of a programming language such as COBOL, FORTRAN, Assembler, C, C++, Java, BASIC or similar work experience.

Attendees will have the best experience when all attendees are at a similar experience level and have a similar programming background. When a class is composed of differing levels of expertise, remedial instruction may be required both in class and in additional sessions before or after the regular sessions.

« Hide The Details
Related Courses
Code Course Title Duration Level
CSHWEB
C# Web Development
5 Days
I
Details
NETCSH
Programming the .Net Framework with C#
5 Days
I
Details
CSHNWF
C# .NET Programming and WinForm Applications
5 Days
I
Details
CSADV
Advanced Development Topics In Visual C#
4 Days
II
Details

Every student attending a Verhoef Training class will receive a certificate good for $100 toward their next public class taken within a year.

You can also buy "Verhoef Vouchers" to get a discounted rate for a single student in any of our public or web-based classes. Contact your account manager or our sales office for details.

Schedule For This Course
There are currently no public sessions scheduled for this course. We can schedule a private class for your organization just a couple of weeks from now. Or we can let you know the next time we do schedule a public session.
Notify me the next time this course is confirmed!
Can't find the course you want?
Call us at 800.533.3893, or
email us at info@verhoef.com