Contact Us: 978.250.4983
Software Skills Training, Inc.

Advanced .NET Framework Programming Using C#

Attend face-to-face, remote-live or via on-demand training

Advanced .NET Framework Programming Using C#

Duration: 5 Days (Face-to-Face or Remote-Live), or 35 hours of coursework with personal facilitation over a four week span (On-Demand)

US Price: $2495 (Face-to-Face or Remote-Live), or $1495 (On-Demand)

Delivery Options: Attend face-to-face in the classroom, remote-live or via on-demand training

Registration: Click here to view upcoming schedules and register for face-to-face sessions, click here to register for live remote attendance sessions, or click here to register for on-demand training with a start date that is convenient for you.

Schedule View the course schedule

Description

This hands-on course examines how to utilize advanced features of C# and the .NET Framework in order to build sophisticated, scalable, high-performing applications. The course includes coverage of features available in .NET 4.0 through .NET 4.8.

The course begins by reviewing .NET's Common Type System, and then examines nullable types, inferred types and dynamic data. Advanced object-oriented programming topics include auto-implemented properties, inheritance, abstract classes, sealed classes, and generics, as well as how to implement many of the .NET interfaces in order to take advantage of .NET functionality.

Students learn how to use synchronous and asynchronous delegates to call methods using late binding, as well as how to use delegates to define and fire custom events and manage callbacks. The course shows how to build multithreaded applications and synchronize access to shared resources, including the Thread and ThreadPool classes as well as .NET 4.0's Task class and the Parallel Task Library. Coverage of the new .NET 4.5 Async and Await features is included.

Students learn how to work with data in .NET's collections, as well as how to create and use custom generic methods and collections. Database topics include how to use ADO.NET to manipulate data in databases and how advanced ADO.NET features provide support for transaction management, connection pooling, and the management of disconnected DataSets. Coverage includes how to work with XML documents and make XPath queries.

The course includes the use of LINQ to make queries of data, regardless of its location. Coverage includes using LINQ to Objects, LINQ to SQL, LINQ to DataSets and LINQ to XML, as well as how PLINQ can be used to make efficient queries on large sets of data located in memory.

Students learn about .NET's support for n-tiered application development, including encapsulating functionality in private and shared assemblies. Students also explore how to create and consume WCF services to build distributed systems.

The course includes coverage of attributes and reflection, and how to leverage attributes and reflection to design creative, robust solutions to common design problems.

Other topics include: overriding System.Object methods; boxing and unboxing issues; when to use the String vs. StringBuilder types; working with data in other cultures (internationalization); and pattern matching using regular expressions.

Comprehensive labs provide students with extensive experience coding with Visual Studio to practice with the topics presented throughout the course.

Prerequisites

C# programming experience.

Course Overview

Working with Types
  • Common Type System
  • Value vs. Reference Types
  • Using Nullable Types
  • Using Inferred Types
  • Working with Dynamic Data
Object-Oriented Programming
  • Defining and Using Classes
  • Understanding Partial Classes
  • Using Inheritance
  • Abstract Classes vs Sealed Classes
  • Understanding System.Object Methods
  • Understanding .NET Interfaces
  • Working with Interfaces
Working with Text
  • Using Strings and StringBuilder
  • Measuring Performance Using Stopwatch
  • Working with Data from Other Cultures
  • Using Pattern Matching and Regular Expressions
Collections and Generics
  • Understanding .NET Collections
  • Ordered vs. Unordered Collections
  • Managing Data with .NET Collections
  • Defining Generic Methods
  • Building and Using Generic Classes
  • Defining Extension Methods
Working with Delegates
  • Understanding Delegates
  • Single-cast vs. Multi-cast Delegates
  • Defining and Using Delegates
  • Working with Synchronous and Asynchronous Delegates
  • Understanding the Relationship Between Delegates and Events
  • Defining and Raising Custom Events
  • Handling Custom Events
Managing Data with ADO.NET
  • ADO.NET Object Model
  • Connected vs. Disconnected Access
  • Working with Data in Databases
  • Calling Stored Procedures
  • Working with Transactions
  • Managing Connection Pooling
  • Using the ADO.NET Provider Factory
  • Working with Untyped DataSets
  • Working with Typed DataSets
  • Managing DataViews
Working with XML Data
  • Understanding XML and XML Schemas
  • Using XML with DataSets
  • Using XmlReader and XmlWriter
  • Manipulating XML Data Using XmlDocument
  • Querying XML Data Using XPath
  • Working with XPathDocument
Working with LINQ
  • Understanding LINQ
  • Building LINQ Queries
  • LINQ and Extension Methods
  • Defining Data Layers Using LINQ
  • Using LINQ to Objects
  • Using LINQ to SQL
  • Using LINQ to DataSets
  • Using LINQ to XML
Working with Threads
  • Overview of Threading
  • Creating Threads
  • Passing Data to Threads
  • Returning Data from Threads
  • Managing Threads
  • Problems with Threads
  • Synchronizing Threads
  • Debugging Threads
  • Using Async and Await
Working with the ThreadPool
  • Understanding Thread Pooling
  • Managing the ThreadPool
  • Creating Threads Using the ThreadPool Class
  • Working with the Task Class
  • Managing Tasks
Working with the Parallel Task Library
  • Overview of Parallel Programming
  • Using the Parallel Class
  • Making PLINQ Queries
  • Using Concurrent Collections
Assemblies
  • Understanding .NET Assemblies
  • Private vs. Shared Assemblies
  • Where is the Global Assembly Cache (GAC)?
  • Building and Using Private Assemblies
  • Defining Strong Names
  • Building, Installing and Using Shared Assemblies
  • Configuring Assemblies
  • Targeting Multiple Versions of .NET
Working with Attributes
  • Understanding Attributes
  • Using .NET Attributes
  • Designing Custom Attributes
  • Using Custom Attributes
Using Reflection
  • Understanding Reflection
  • Extracting Type Information
  • Using Reflection for Late Binding
Windows Communication Foundation (WCF)
  • Understanding WCF
  • Defining Service and Data Contracts
  • Building a Service
  • Hosting a Service
  • Managing Endpoints
  • Exposing Metadata
  • Calling a WCF Service
 

Related Training

Course
Windows Forms Programming Using C#
Windows Forms Programming for Experienced C# Programmers

Training Locations

Choose a city below to view a schedule for in-person classes. Courses may also be taken via our Online Remote Attendance and On-Demand training options.