Students Will Learn |
- Building and Using Classes, Derived Classes, Abstract Classes and Sealed Classes
- Implementing .NET Interfaces and Custom Interfaces
- Working with Object-Based Collections and Generics Collections
- Defining and Using Synchronous and Asynchronous Delegates
- Firing Custom Events
- Working with Data Using ADO.NET and XML
- Making Queries using LINQ and PLINQ
- Building Multithreaded Applications
- Using the Parallel Task Library
- Building and Using Private and Shared Assemblies
- Working with Reflection
- Building and Consuming WCF Services
- Using Interoperability Services
- Understanding .NET Security
|
Course Description: This hands on course examines how to utilize advanced features the .NET Framework using the C# programming language in order to build sophisticated applications. It includes coverage of .NET 2.0 through .NET 4.0. The course begins by quickly reviewing .NET's Common Type System, and then examines nullable types, inferred types and dynamic data. Students then learn about object-oriented programming topics, including inheritance, abstract classes, sealed classes, partial classes and generics. Students also learn about many of the .NET interfaces and how they can take advantage of them.
Students learn how to manage data using .NET's object-based and generic collections. Students also learn about ADO.NET and how advanced features provide support for transaction management, connection pooling, and the management of disconnected DataSets. Students learn how to work with XML documents and make XPath queries. The course also illustrates how to use LINQ and covers LINQ to Objects, LINQ to SQL, LINQ to DataSets and LINQ to XML.
Students learn how to use synchronous and asynchronous delegates to call methods and manage callbacks. They also learn how to use delegates to fire custom events. Students also learn how to build multithreaded applications and synchronize access to shared resources. The course covers the Thread and ThreadPool classes as well as .NET 4.0's Task class and the Parallel Task Library. Students will also learn how to use PLINQ to optimize their queries on multi-core and multi-processor systems.
Students learn about .NET's support for n-tiered application development, including private and shared assemblies, and WCF. Students also learn how managed code can interact with unmanaged code via features like PInvoke and COM Interop.
The course examines how the .NET Framework uses reflection and how students can provide similar features within their applications.
The course concludes by examining the security capabilities of the .NET programming model and how to adjust the .NET security policy.
Other topics include: how and when to override System.Object methods; boxing and unboxing issues; when to use the String vs. StringBuilder types; working with cultures; .NET support for regular expressions; and creating and using custom attributes.
Comprehensive hands-on lab exercises using Visual Studio reinforce instructor lectures and build direct competence in the topics presented throughout the course.
|
|
Course Prerequisites: C# programming experience. |
|
Advanced .NET Framework Programming Using C# Course Overview |
|
Working with Types |
Working with Text |
- Understanding the Common Type System
- Value vs. Reference Types
- Nullable Types
- Inferred Types
- Dynamic Data
|
- Using Strings
- Using the StringBuilder
- Working with Cultures
- Working with Regular Expressions
|
Using XML |
Collections and Generics |
- Understanding XML and XML Schemas
- Using XmlReaders and XmlWriters
- Working with XmlDocuments
- Building XPath Queries
- Working with XPathDocuments
|
- Understanding .NET Collections
- Ordered vs. Unordered Collections
- Working with Object-Based Classes
- Working with Generic Collections
- Building Extension Methods
|
Object-Oriented Programming |
ADO.NET |
- Defining and Using Classes
- Working with Partial Classes
- Understanding Object Lifetime
- Building Class Hierarchies
- Defining Abstract Classes
- Defining Sealed Classes
- Overriding System
- Object Methods
- Building Forms using Visual Inheritance
- Defining and Implementing Interfaces
- Understanding .NET Interfaces
|
- Understanding the ADO.NET Object Model
- Connected vs. Disconnected Access
- Using Connections and Commands
- Using a DataReader to Work with Cursors
- Calling Stored Procedures
- Using Parameters
- Managing Connection Pooling
- Working with Transactions
- Using the Provider Factory
- Untyped vs. Typed DataSets
- Using DataAdapters with DataSets
- Using TableAdapters with Typed DataSets
- Filtering Data with DataViews
- Using XML with DataSets
- Binding Data to Controls
|
Delegates |
Working with LINQ |
- Understanding Delegates
- Single-cast vs. Multi-cast Delegates
- Defining Delegate Types
- Using Synchronous and Asynchronous Delegates
- Understanding the Relationship between Delegates and Events
- Defining and Raising Custom Events
- Handling Custom Events
|
- Understanding LINQ
- Making LINQ Queries
- Understanding LINQ Extension Methods
- Using LINQ to Collections
- Using LINQ to SQL
- Using LINQ to DataSets
- Using LINQ to XML
|
Working with Threads |
Working with the ThreadPool |
- Overview of Threading
- Creating Threads
- Passing Data to Threads
- Returning Data from Threads
- Managing Threads
- Problems with Threads
- Synchronizing Threads
|
- Understanding Thread Pooling
- Working with the ThreadPool Class
- Working with the Task Class
- Managing Tasks
- Managing the ThreadPool
|
Working with the Parallel Task Library |
Assemblies |
- Overview of Parallel Programming
- Using the Parallel Class
- Making PLINQ Queries
- Using Concurrent Collections
|
- Understanding .NET Assemblies
- Single-File vs. Multi-File Assemblies
- Private vs. Shared Assemblies
- Defining Strong Names
- Where is the Global Assembly Cache (GAC)?
- Building and Using Private Assemblies
- Building, Installing and Using Shared Assemblies
- Configuring Shared Assemblies
|
Reflection and Attribute Programming |
Windows Communication Foundation (WCF) |
- Understanding Attributes
- Using .NET Attributes
- Designing Custom Attributes
- Using Custom Attributes
- Understanding Reflection
- Extracting Type Information
- Using Reflection for Late Binding
|
- Understanding WCF
- Defining Service and Data Contracts
- Building a Service
- Hosting a Service
- Exposing Metadata
- Calling a WCF Service
|
.NET Interoperability Services |
Security |
- Interactions between Managed and Unmanaged Code
- Marshalling Data
- Using Platform Invocation Service (PInvoke)
- Using COM Servers from .NET
- Calling .NET Servers from Unmanaged Code
|
- Overview of .NET Security
- Working with Role-Based Security
- Working with Code Access Security
- Setting the Security Policy
- Using Cryptography
|
Student Testimonials |
"Course was interesting; gained a solid understanding of core advanced .NET topics; instructor was engaging, dynamic and challenging. Interacting with developers from different background was stimulating."
– Jothi |
|
"This course provided a great understanding of concepts and methodology for C# .NET. The small classroom size was extremely beneficial to the learning experience."
– Kani mozhi |
|
"This course was very helpful for me. I don't regularly code in C# but will be supporting and managing a future web service system written in C#. I now understand the structure of C# and feel confident that I'll be able to do my job. Thanks - good course!"
– Kiran Kumar
|