C# Programming Certification Training Course

Prepare for the 70-483, Programming in C# Certification exam.

Upcoming Course Schedule

About this course

Learn more about the C# programming training certification course.

What is the course about

This training course teaches developers the programming skills that are required for to create Windows applications using the C# language. During their five days in the classroom students review the basics of C# program structure, language syntax, and implementation details, and then consolidate their knowledge throughout the week as they build an application that incorporates several features of the .NET Framework 4.5. At the end of the course, students should leave the class with a solid knowledge of C# and how to use it to develop .NET Framework 4.5 applications.


The course is full time 5 days.

Programming Experience

This course is intended for experienced developers who already have programming experience in C, C++, JavaScript, Objective-C, Microsoft Visual Basic®, or Java and understand the concepts of object-oriented programming.

This course is not designed for students who are new to programming; it is targeted at professional developers with at least one month of experience programming in an object-oriented environment.

Technical Skill

Developers attending this course should already have gained some limited experience using C# to complete basic programming tasks.

Private Training

This course can be offered privately to a group, team or company. A minimum of 4 delegates is required to schedule the course. The course can run onsite or on our premises. The prices for running the course on your site is R9 500 and R12 599 on our premises.

Public Training

The course is offered publicly. There is no set date for the course, the course is run on demand. The course needs a minimum of 4 delegates to run. We set tentative dates, the dates are confirmed once we have 4 confimred bookings for the course.

Course Schedule

Download the full course schedule below

Implement multithreading and asynchronous processing

Use the Task Parallel library (ParallelFor, Plinq, Tasks)
Create continuation tasks
Spawn threads by using ThreadPool
Unblock the UI
Use async and await keywords
Manage data by using concurrent collections

Synchronize resources
Implement locking
Cancel a long-running task
Implement thread-safe methods to handle race conditions

Iterate across collection and array items
Program decisions by using switch statements, if/then, and operators
Evaluate expressions

Create event handlers
Subscribe to and unsubscribe from events
Use built-in delegate types to create events
Create delegates
Lambda expressions
Anonymous methods

Handle exception types (SQL exceptions, network exceptions, communication exceptions, network timeout exceptions)
Catch typed vs. base exceptions
Implement try-catch-finally block
Throw exceptions
Determine when to rethrow vs. throw
Create custom exceptions

Create types

Create value types (structs, enum), reference types, generic types, constructors, static variables, methods, classes, extension methods, optional and named parameters, and indexed properties
Create overloaded and overriden methods

Box or unbox to convert between value types
Cast types
Convert types
Handle dynamic types
Ensure interoperability with unmanaged code, for example, dynamic keyword

Enforce encapsulation by using properties, by using accessors (public, private, protected), and by using explicit interface implementation

Design and implement an interface
Inherit from a base class
Create and implement classes based on the IComparable, IEnumerable, IDisposable, and IUnknown interfaces

Create and apply attributes
Read attributes
Generate code at runtime by using CodeDom and lambda expressions
Use types from the System.Reflection namespace (Assembly, PropertyInfo, MethodInfo, Type)

Manage the object lifecycle

Manage unmanaged resources
Implement IDisposable, including interaction with finalization
Manage IDisposable by using the Using statement
Manage finalization and garbage collection

Manipulate strings by using the StringBuilder, StringWriter, and StringReader classes
Search strings
Enumerate string methods
Format strings

Validate JSON data
Data collection types
Manage data integrity
Evaluate a regular expression to validate the input format
Use built-in functions to validate data type and content out of scope: writing regular expressions

What are Errors
Catching Errors and Exceptions
Raising Exceptions
Creating Your Own Exceptions
Throwing and Catching Exceptions

Choose an appropriate encryption algorithm
Manage and create certificates
Implement key management
Implement the System.Security namespace
Hashing data Encrypt streams

Manage assemblies

Version assemblies
Sign assemblies using strong names
Implement side-by-side hosting
Put an assembly in the global assembly cache
Create a WinMD assembly

Create and manage compiler directives
Choose an appropriate build type
Manage programming database files and symbols

Implement logging and tracing
Profiling applications
Create and monitor performance counters
Write to the event log

Read and write files and streams
Read and write from the network by using classes in the System.Net namespace
Implement asynchronous I/O operations

Retrieve data from a database
Update data in a database
Consume JSON and XML data
Retrieve data by using web services

Query and manipulate data and objects by using LINQ

Query data by using operators (projection, join, group, take, skip, aggregate)
Create method-based LINQ queries
Query data by using query comprehension syntax
Select data by using anonymous types
Force execution of a query
Read, filter, create, and modify data structures by using LINQ to XML

Serialize and deserialize data by using binary serialization, custom serialization, XML Serializer, JSON Serializer, and Data Contract Serializer

Store and retrieve data by using dictionaries, arrays, lists, sets, and queues
Choose a collection type
Initialize a collection
Add and remove items from a collection
Use typed vs. non-typed collections
Implement custom collections
Implement collection interfaces

Download Course Outline
Course Pricing

Choose your training options. Attend a public or private training.

Public Training
  • Training at our center
  • Small class size
  • 5 days instructor led
  • Access to Slack channel
  • Access to materials website
  • 6 months after training support
  • Teamviewer, email and telephone support
  • Personalized feedback
  • Light lunches
Reserve Seat
Private Training - Onsite
  • Training on your site
  • Choose as many delegates as you want
  • 5 days instructor led
  • Access to Slack channel
  • Access to materials website
  • 6 months after training support
  • Teamviewer, email and telephone support
  • Personalized feedback
  • Customized course content
  • You provide the lunches
Enquire Now

Newsletter Sign Up

No Spam - Only latest news, price and activity updates
What people say about our courses

This is what our clients have to say

After attending the Xamarin training from Peruzal on our site, we were able to drastically accelerate our internal mobile app development efforts. Peruzal was a phone call away each time we needed support.
Jonathan Winnaar Scientist @ Institute for Maritime Technology
Came across your courses on Google search, after searching for Ruby training around South Africa. We were completely blown away with how much your trainers know stuff.
Divan Santan Infrastrucutre Engineer @ First National Bank
After our DBA left, we were left with noone with the skills to manage the research and scientific database Infrastrucutre. With Peruzal, we were able to get our team running in a matter of a week.
Encarni Colmenero Astronomer @ Southern African Large Telescope
Our team had different backgrounds, application programmers and astronomers with varied database interactions, we did not have formal training in the MySQL database. Peruzal delivered the training onsite and we were comfortable working with MySQL.
Lucian Botha Astronomy Information System Specialist @ South African Astronomical Observatory
“Coming from an academic background, with no prior exposure to programming, I had to develop an Android mobile app for tuition and research purposes. Peruzal helped me to build and implement the app in record time!”
Thuli Shandu Lecturer @ Univeristy of South Africa
Having years of experience in automation and embedded systems, we wanted our team to have experience in developing for Android. Peruzal did send a trainer onsite and we were blown away with the amount of information we had learnt in just 5 days
Cobus Smith Automation Manager @ ArcelorMittal

Answers to some of the most frequently asked questions.

Public Training
What is public training

With public training you attend the course with other delegates from other companies at our premises. If you would like private training we can arrange that the training be done at your premises, however, we require a minimum of 4 delegates for a private course.

What is private training

The training runs at your premises or you can come to us. We require a minimum of 4 delegates for a private training.

Refund Policy

Should you not be happy with the training, this should be raised within the first hour of training. We will try to resolve the issue and if we can't we refund 100% your money.

Cancelling Training

You can not cancel the course once you have booked. Please make sure that you have resolved your dates before making a booking. It takes a long time to organise the training, so we will not be able to refund once you book, however we can try to re-schedule the course at a later date for you.

Course Pricing
How much does the course cost?

The course price depends on whether the course will be on your site(private training) or at our offices(public). For a private course we require a minimum of 4 delegates in order to schedule the course.

How long does it take to complete the course

Most of our coruses are offered over 5 days full time, except for the Xamarin Cross Platform Mobile App Development course which is offered over 2 weeks. No part-time courses are offered at the moment.


We don't provide accomodation but we can help you find accomodation close to the center. We can also help you with arranging transport to pick you up from the airport.

Our preferred accomodation provider is AirBnb. We recommmend if its your first time, only book from a Super Host on AirBnB.

Certificate of Completetion

Our mobile app development courses are hands on, for you to receive a certificate of completion, you will need to demonstrate that you have master the concepts during the course by developing a production mobile application and deploying it to the Google Play or Apple store. No certificates of completion will be awarded without proof that you have developed and deployed your app to the relevant store.