.NET development: advanced C# programming
Your application requirements need to become clear, maintainable code. With C#, structure your development approach and connect technical decisions to expected functionality. Strengthen your ability to design, test and evolve applications independently.
- Duration
- 5 days 35 hours
- Code
- DEV-PAC Code
Presentation
This advanced C# training programme develops the key concepts of application development on the Windows .NET platform. Across 11 modules, you will begin with a brief architecture review and explore advanced features. You will then learn to optimise C# code and develop applications as services, including selecting an architecture and components.
You will explore LINQ and its approach to data queries in .NET, as well as using Windows Forms. You will also learn to implement custom services and programming techniques, particularly multithreading in C#.
This 5-day course enables you to design and deploy a Windows service, optimise your application code and write multithreaded programs. You will also implement SOAP and REST web services, use sockets for network programming and work with WCF, WPF and LINQ in a C# development environment.
Objectives
By the end of this advanced C# course, you will be able to:
- Explore and develop applications or services with Windows Presentation Foundation (WPF) and ASP.NET.
- Understand the role of web services (WCF, REST and SOAP) and integrate them into development.
- Run applications as services.
- Explore and use LINQ for data processing.
- Develop custom service applications.
- Work with sockets and multithreading.
- Install Windows Deployment Services (WDS).
Program
Module 1: review and advanced use of .NET
- Overview of .NET version 5 architecture.
- The role of C# in the .NET framework.
- New features in .NET 6.
- Comparing C# code with C++ and Java.
- The Roslyn compiler and C# compiler options in .NET projects.
- Creating a dynamic-link library (DLL).
- Review of C# fundamentals.
Module 2: optimising C# code
- Processes, threads and handles for optimisation.
- Requirements for code execution: access tokens, access control, virtualisation, etc.
- Processing modules, assemblies and types with CLR profiling APIs.
- Using the heap and stack with .NET and its components.
- Advantages and disadvantages of unmanaged code.
- Using pointers in C#.
- Introduction to and analysis of unmanaged code.
Practical exercises:
- Use unmanaged components.
Module 3: creating and building a Windows service
- Comparing a Windows service with a service application: demonstration.
- Introduction to ServiceBase functions: OnStart, OnRestart, OnStop, OnPause, etc.
Module 4: choosing a web service architecture
- Main types of web services.
- Installing .NET services on an IIS web server.
- Creating a SOAP web service.
- Using SOAP and WSDL.
- Creating a REST web service.
- Using a REST web service in AJAX with jQuery.
Practical exercises:
- Create and deploy an ASP.NET architecture for data exchange with ADO.NET.
- Create and deploy a REST architecture for data exchange with Entity Framework.
Module 5: network interaction with sockets
- Review of networking terminology.
- TCP and UDP development concepts.
- Defining sockets for application development.
- Introduction to Sockets functions: listen, bind, accept, send, receive, etc.
- Implementing data transmission and reception.
- Server-side and client-side C# code.
- Using connection pooling for multiple clients.
- Implementation with .NET Remoting.
Practical exercises:
- Create a client-server application.
Module 6: integrating Windows Communication Foundation (WCF)
- Introduction to service-oriented architecture (SOA).
- Implementing a WCF service contract interface.
- Introduction to and use of endpoints.
- Creating and configuring a server-based WCF service.
- Bidirectional communication.
- Creating and configuring a WCF service without a server.
Practical exercises:
- Create a chat application with WCF.
Module 7: integrating Windows Presentation Foundation (WPF)
- Overview of Windows Presentation Foundation.
- Review of Windows Forms.
- Implementing WPF.
- Establishing a migration and compatibility plan.
- Overview of Blend and WPF tools.
- Setting up asynchronous and sleep functions.
- Implementing layout and user controls.
- Introduction to data binding.
- Creating a service application using the Visual Studio Windows Service project template.
- Configuring service properties: canShutdown and canStop.
- Starting a Windows service.
- Testing the service from the dashboard.
Practical exercises:
- Create and start a Windows service.
- Monitor the service through Windows logs.
Module 8: multithreading in C# with .NET
- Parallel programming concepts.
- Composition and structure of a multithreaded program.
- Thread management techniques.
- Common operations in a C# program.
- The thread lifecycle.
- Programming with threads and thread pools.
- Introduction to parallelism and the Task Parallel Library.
- Implementing parallel loops.
- Technical aspects of C# multithreading: memory, blocking, synchronisation, etc.
- Using Visual Studio 2022 tools.
Practical exercises:
- Set up and configure threads within a Windows service.
Module 9: understanding communication in .NET
- Main communication systems.
- Core .NET infrastructure.
- Main APIs: sockets, web services, WCF, etc.
- The importance of delegates in network programming.
- Data interaction with data binding.
Practical exercises:
- Create a WPF contact manager.
Module 10: creating custom user controls
- Setting up an event handler.
- Configuring attributes: Category, Browsable, DefaultEvent, etc.
- Using user controls through Windows Forms.
- Validating user input.
- Drag-and-drop use of custom user controls.
- Creating dynamic user controls.
- Adding design-time support and additional functionality to custom user controls.
Practical exercises:
- Create WPF user controls for the contact manager.
Module 11: programming with LINQ
- Introduction to Language Integrated Query.
- Using query and processing functions beyond conventional databases.
- Using LINQ in a C# application.
- Managing object collections with LINQ to Objects.
- Managing XML documents with LINQ to XML.
- Mapping C# types to database records with LINQ to SQL.
- Querying datasets with LINQ to DataSet.
- Creating queries from a conceptual model with LINQ to Entities.
- Optimising LINQ performance.
Practical exercises:
- Implement business classes and a database with LINQ to Entities.
- Process data with LINQ.
- Search an XML file using LINQ to XML.
Audience
This course is intended for:
- Developers and application designers who want to master C#.
Prerequisites
To attend this advanced C# course, you should:
- Understand C# programming fundamentals.
- Have basic knowledge of object-oriented programming and its fundamental principles.
Teaching and assessment methods
- Initial skills assessment
- Training materials provided to participants
- Continuous assessment throughout the course
- End-of-course feedback questionnaire
- Combination of theory and practical application
- Attendance records
- Post-course follow-up evaluation
- Quiz / multiple-choice questions
- Practical exercises
Course highlights
Dates and sessions
Choose the date and delivery format that suit you.
No upcoming sessions are currently available.
Session alerts
Course content offered in partnership with Softeam Institute (in French).
fr
en