Course Outline
Session 1: SOLID Principles and Clean Code
- Examination of SOLID principles, including Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion
- Application of SOLID principles to C# codebases for government use
- Establishment of clean code principles and industry best practices
- Refactoring strategies to enhance code maintainability and readability
Session 2: Developing Layered Applications
- Analysis of the layered architecture pattern
- Implementation of separation of concerns within C# applications
- Design and execution of presentation, business logic, and data access layers
- Integration of Dependency Injection (DI) in layered application architectures
Session 3: Generic Covariance and Contravariance
- Exploration of covariance and contravariance mechanisms in C#
- Utilization of generic interfaces and delegates utilizing covariance and contravariance
- Interpretation of in and out keywords in generic type parameters
- Practical demonstrations and applicable scenarios for covariance and contravariance
Session 4: LINQ and Advanced Querying
- Assessment of LINQ fundamentals
- Comprehensive review of LINQ query operators
- Application of LINQ to complex data structures and custom types
- Evaluation of performance factors and optimization methodologies
Session 5: IDisposable and Managing Resources
- Comprehension of the IDisposable interface and the Dispose pattern
- Execution of proper resource management and cleanup procedures
- Employment of the using statement and IDisposable pattern in C# environments
- Management of unmanaged resources and finalization processes
Session 6: Weak Events and Memory Management
- Implementation of weak event patterns in C# for event handling
- Prevention of memory leaks through weak references
- Understanding of memory management structures in .NET and the garbage collector
- Strategies for optimizing memory usage and minimizing memory leaks for government systems
Session 7: Form Philosophy and UI Design Patterns
- Principles governing the design and organization of forms in C# applications
- MVVM (Model-View-ViewModel) and alternative UI design patterns
- Execution of data binding and commanding in WPF applications
- Management of user input and validation within forms
Session 8: Parallel Programming with Threads, Tasks, and Async/Await
- Overview of parallel programming concepts
- Creation and management of threads in C#
- Utilization of the Task Parallel Library (TPL) for parallel processing
- Asynchronous programming implementation using async and await keywords
Requirements
- Participants are expected to possess a foundational understanding of C# programming concepts, including variables, data types, control flow, and basic object-oriented programming principles
Testimonials (3)
It was 1-on-1 so the training was specialized to my specific needs. Shane highlighted elements of WPF/C# that could potentially be beneficial to my development projects.
Warren Nolan - Northrop Grumman
Course - Programming in WPF
Nice and friendly. Very knowledgeable. Would recommend Shane to others.
Joshua - California State University Bakersfield
Course - Programming in C# with Visual Studio 2022
I gained new knowledge and I'm pretty confident about it. Nothing unclear.