About this Course
The Advanced C# Programming course provides students with the knowledge and skills needed to develop applications using .NET Framework technologies with C# and Visual Studio. Students start with an accelerated language review, followed by core features of the Foundation Class Libraries (FCL), CLR memory management, events and delegates, async tasks, and dependency injection techniques. The class then covers development topics such as working with different System.IO classes, parsing XML data, and creating Windows Services. Finally, the course covers serializing data, exchanging data using WCF services, security classes, and transaction management.
This course is valuable for developers who are interested in enhancing their existing C# programming skills.
At Course Completion
- 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
1. Accelerated C# Concepts
- Object Oriented Programming
- 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
- Using System.Net Classes
- Pattern Matching with RegEx
- Dynamic Code Inspection/Invocation with Reflection
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
- Self-Hosted Services
- Modifying WCF Bindings
- Debugging Services
13. Working with Transactions
- Getting Started with Transactions
- ADO.NET Transactions
- Using TransactionScope
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:
CS214: C#5 Programming with Visual Studio 2013
Venue: LIVE Online
Live Online Training
Get the same training you expect in the classroom without leaving your office or home. These are NOT recorded classes. They are LIVE sessions with an expert instructor. We use the latest in video conferencing technologies and audio so you can confidently participate in any class just like being right there in person. We guarantee the effectiveness of our online training delivery approach that we will give you your money back if you are not totally satisfied. Ask us for a demo.
Online class requirements:
- Moderate to fast Internet
- A phone or computer headset is required in order to hear the instructor/moderator). You can use Computer Audio (VoIP) or you can dial in from a regular phone. For convenience, we recommend a hands-free headset or phone.
- Training software must be installed on your computer (trial versions are acceptable)
- RECOMMENDED: Dual Monitors or computers. For optimal online learning experience, we recommend participants have dual monitors or two computers. Your online classroom credentials allow you to join multiple times from multiple computers. Participants should use one monitor or computer to view the instructor’s shared screen and another monitor or computer to work with the software.
What happens when you enroll in an online class
When you register for an online class, you will receive a welcome email followed by login access to the Citrix GoToTraining virtual classroom. A workbook (printed copy or eBook) will be sent to you prior to the start of class.
Online Training Advantages
Convenience: You don’t have to travel and can attend from your home, office or anywhere with an internet connection. Our online classes are conducted using GoToTraining, a more robust version of the popular GoToMeeting screen sharing and conferencing platform. To accommodate multiple time zones, courses are typically scheduled from 10am – 5pm Eastern with a one-hour lunch break at 12:30 – 1:30 pm Eastern and a 10-minute break in the morning and afternoon. When conducting custom online course for your group, class times can be modified to accommodate your timezone.
Interactive Learning: Our online training is fully interactive. You can speak and chat with the instructor and classmates at any time. Various interactive techniques are used in every class. Our small class sizes (typically 4 – 8 students), allow our instructors to focus on individual performance and issues and to work closely with you to meet your unique needs. Classes are designed to be a hands-on learning experience, providing opportunities for you to try your new skills while the instructor is available for review, questions, and feedback. You have the option to give the instructor permission to view your computer to provide one-on-one assistance when needed.