1. Accelerated C# Concepts
- Object Oriented Programming
- Abstraction
- Polymorphism
- Inheritance
- Encapsulation
- Type Conversions
- Operator Overloading
- Using Attributes
2. Best Practices
- Exception Management
- String Manipulation
- Thread Synchronization
- Generics and Constraints
3. CLR Memory Management
- The Common Type System
- Understanding CLR Generations
- The role of IDisposable
- Using the CLR Profiler
4. Foundation Class Library Features
- System.IO Classes
- System.Net Classes
- System.Threading.Tasks
- System.Reflection Classes
5. Conditional Compilation
- Defining Debug Symbols
- Conditional Compilation using the Conditional Attribute
6. Events and Delegates
- What are Events, Delegates and Event Handlers?
- Working with Delegates and Events
- Creating Custom EventArgs Classes
- Using Lambda Expressions
- Using Func<T,TResult>
- The async and wait keywords
7. Using Dependency Injection
- What is Dependency Injection (DI)?
- What is an IoC container?
- The Role of Interfaces
- Dependency Injection Techniques
- Using an Ioc Container for DI
8. Monitoring, Debugging and Tracing
- Using the Debugger Class
- Tracing Operations
- Performance Counters
9. Working with XML Data
- Using System.Xml Classes
- Using XML APIs
- Monitoring XML files using Windows Services and the FileSystemWatcher
10. Serializing Data
- Binary serialization
- XML Serialization
11. .NET Security and Cryptography
- Symmetric and Asymmetric Encryption Techniques
- WindowsPrincipal and GenericPrincipal
12. Exposing Data with WCF
- Web Services Architecture
- Creating and Consuming a WCF Service
- Modifying WCF Bindings
- Debugging Services
13. Working with Transactions
- Getting Started with Transactions
- ADO.NET Transactions
- Using TransactionScope
This course is valuable for developers who are interested in enhancing their existing C# programming skills.
It is highly recommended that students take the C# Programming course before taking this course or have at least 6 months of hands-on programming experience with C# and feel comfortable working with C# syntax.
Before taking this course, students should successfully complete the following course or have equivalent experience:
- Learn best practices
- Review Object-oriented principles
- Learn how to build classes with custom events and delegates
- Understand how Func<T, TResult> and Action<T> can be used
- Understand the role of dependency injection
- Learn more about how the CLR manages memory
- Write asynchronous code with async and await
- Learn how to selectively compile code
- Drill into .NET XML parsing APIs
- Build distributed applications using Windows Communication Foundation (WCF)
- Apply transaction management technique