Microsoft's .NET (Framework and Core) present developers with unprecedented opportunities. From web applications to desktop and mobile platform applications - all can be built with equal ease, using substantially the same skill-set. But to make the most of this potential, developers must have a thorough grasp of language skills, OO programming concepts and common techniques

This course concentrates on the C# programming language itself, to fully prepare delegates fully in readiness for using the .NET Framework/Core. No Object-Orientated knowledge is assumed - the course provides a suitable OO primer. From basic procedural syntax to sophisticated object-oriented programming techniques, delegates will learn how to write .NET applications with code that is robust and maintainable.

The course is presented as a mixture of lectures, demos and hands-on exercises. Practical sessions follow all main topics, designed to reinforce the points covered. Additional information is provided in appendices to extend the learning experience after the course has been completed.

Target Audience:

This intensive course is intended for developers who will use C# to write .NET Framework or .NET Core applications and who are relatively new to the C# programming language.

Read more


Delegates must understand the fundamentals of programming. Delegates can gain this level of knowledge by attending QA's 'Programming Foundations' (QAPROGFOU) course

Please note:

  • Delegates attending this course via Extended Classroom will be required to provide dual monitors.
  • Before attending this class delegates must have a Microsoft account (signing up one is free). The instructions on how to set up a Microsoft account can be found here.
Read more

Learning Outcomes

  • Write code that includes sequence, selection and iteration constructs
  • Create and use classes and structures (types), including fields, properties, methods, delegates and events
  • Use private, internal, protected and public visibility modifiers
  • Use exception-handling to create robust applications
  • Create derived classes that inherit from custom-written or .NET classes
  • Create interfaces and apply techniques of polymorphism effectively and appropriately
  • Work with generic types
  • Leverage the power of C# features
  • Use delegates
  • Understand the event handling paradigm
  • Use lambda expressions in C# code
  • Use LINQ (Language Integrated Query)
  • Understand their resource management obligations

In addition to the above, the following techniques are introduced during the course:

  • Test-Driven Development (using XUnit)
  • Dependency Injection (as used in .NET Core)
  • Introduction to Entity Framework (Core)
Read more

Course Outline

Module 1: Introduction to Object Orientation

  • This ensures all delegates have a grounding in the principles of Object Orientation.

Module 2: OO and C Sharp

  • Get started on how C# implements Object Orientation
  • Start using Unit Test (which we then use in many of the following chapters)

Module 3: Introduction to Visual Studio & C#

  • The .NET Framework; The Common Language Runtime; The Common Type System
  • C# Features; Introduction to references, namespaces and assemblies
  • How to debug in Visual Studio
  • Get to know your way around Visual Studio

Module 4: Syntax I

  • Classes
  • Methods, parameters, overloaded methods
  • Comments and identifiers
  • Built-In Types
  • Scope
  • Casts
  • If and ternary expressions
  • Loops

Module 5: Syntax 2

  • Properties
  • Constructors
  • Arrays

Module 6: Syntax 3

  • Value and Reference Types
  • Null references
  • Nullable types
  • ‘ref’ and ‘out’
  • Static
  • Enums
  • Extension methods
  • Partial classes

Module 7: Expressing Commonality

  • Setting the scene for inheritance, interface, generics, delegates

Module 8: Generics

  • Generic Collections
  • Generic Classes
  • Array range operators
  • Indexers

Module 9: Inheritance

  • Concept of inheritance; Substitutability; Extending a simple class
  • 'virtual', 'override' and 'sealed' modifiers
  • Polymorphism
  • Abstract classes
  • Upcasting and safe downcasting

Module 10: Console User Interfaces

  • Building user interfaces with the console
  • Using class libraries as part of a full application

Module 11: Interfaces

  • Polymorphism with interfaces
  • Multiple interfaces

Module 12: Dependency Injection

  • Benefits of DI
  • Scope

Module 13: Delegates and Lambdas

  • Refresh of generic methods and classes
  • Generic delegates (Func, Action, Predicate)
  • Lambdas

Module 14: LINQ

  • The language features behind LINQ
  • The LINQ API and query pattern
  • Groups, Joins, Projections, Aggregations, ‘let’

Module 15: More LINQ

  • ...a continuation

Module 16: Intro to Entity Framework

  • A brief primer on Entity Framework Core
  • Code First
  • Database First

Module 17: Handling Exceptions

  • Errors vs. Exceptions
  • The 'try', 'catch', 'finally' paradigm
  • Using 'throw'
  • Creating your own exceptions
  • 'checked' and 'unchecked' expressions.

Module 18: Putting It All Together, including Windows Forms

  • Consolidate what we have done and show how it fits into
  • a Windows Forms app (Framework)
  • a web app (Core)

Module 19: Consuming Events

  • Understanding events in .NET
  • Writing event handlers

Module 20: Producing Events

  • The event conventions
  • Raising custom events

Module 21: Garbage Collection

  • Garbage collection and its impact
  • Finalizers; The 'Dispose' pattern; IDisposable
  • The 'using' statement

Module 20: The Way Ahead

  • Review
  • Related Learning
Read more

Why choose QA

Special Notices

Please note, Effective 2nd of March 2020, this course will be on .NET Core 3.0/C# 8 and Visual Studio 2019.

Dates & Locations

Software Engineering learning paths

Want to boost your career in software engineering? Click on the roles below to see QA's learning pathways, specially designed to give you the skills to succeed.

= Required
= Certification
Front End Developer
Back End Developer Java
Back End Developer .NET
Cloud Developer AWS
Cloud Developer Azure

Frequently asked questions

See all of our FAQs

How can I create an account on myQA.com?

There are a number of ways to create an account. If you are a self-funder, simply select the "Create account" option on the login page.

If you have been booked onto a course by your company, you will receive a confirmation email. From this email, select "Sign into myQA" and you will be taken to the "Create account" page. Complete all of the details and select "Create account".

If you have the booking number you can also go here and select the "I have a booking number" option. Enter the booking reference and your surname. If the details match, you will be taken to the "Create account" page from where you can enter your details and confirm your account.

Find more answers to frequently asked questions in our FAQs: Bookings & Cancellations page.

How do QA’s virtual classroom courses work?

Our virtual classroom courses allow you to access award-winning classroom training, without leaving your home or office. Our learning professionals are specially trained on how to interact with remote attendees and our remote labs ensure all participants can take part in hands-on exercises wherever they are.

We use the WebEx video conferencing platform by Cisco. Before you book, check that you meet the WebEx system requirements and run a test meeting (more details in the link below) to ensure the software is compatible with your firewall settings. If it doesn’t work, try adjusting your settings or contact your IT department about permitting the website.

Learn more about our Virtual Classrooms.

How do QA’s online courses work?

QA online courses, also commonly known as distance learning courses or elearning courses, take the form of interactive software designed for individual learning, but you will also have access to full support from our subject-matter experts for the duration of your course. When you book a QA online learning course you will receive immediate access to it through our e-learning platform and you can start to learn straight away, from any compatible device. Access to the online learning platform is valid for one year from the booking date.

All courses are built around case studies and presented in an engaging format, which includes storytelling elements, video, audio and humour. Every case study is supported by sample documents and a collection of Knowledge Nuggets that provide more in-depth detail on the wider processes.

Learn more about QA’s online courses.

When will I receive my joining instructions?

Joining instructions for QA courses are sent two weeks prior to the course start date, or immediately if the booking is confirmed within this timeframe. For course bookings made via QA but delivered by a third-party supplier, joining instructions are sent to attendees prior to the training course, but timescales vary depending on each supplier’s terms. Read more FAQs.

When will I receive my certificate?

Certificates of Achievement are issued at the end the course, either as a hard copy or via email. Read more here.

Contact Us

Please contact us for more information