C# Programming Online Course

C# Programming Online Course in Angola


2KO Angola offers online Microsoft 70-483: Programming in C# courses in Angola. 2KO Africa also offers online courses to our international and local students. 2KO delivers cutting-edge IT products in the consulting and business services space, as well as offering top-rated training for various IT vendors. Our internationally recognised courses can be offered either as hands-on full time classes, or as online learning, enabling 2KO students the opportunity to study courses online world-wide, to ensure students have access to the best computer programming  training in Angola. 2KO Angola's Programming C# course provides full coverage of the programming skills required to create Windows applications using C#. This new and exciting course also provides knowledge on language syntax, C# program structure and implementation details. This new course provides you the needed training for building new data types, handling events, accessing a database, using remote data, integrating with unmanaged code, as well as the knowledge and skills to perform operations asyncrhonously, creating custom attributes and more.

This course brings together all the features of programming in C# using Visual Studio.

Some of the skills you will learn in this class are:

Describe the core syntax and features of C#

Implement the basic structure and essential elements of a typical desktop application

Encrypt and decrypt data by using symmetric and asymmetric encryption

Examine the metadata of types by using reflection, create and use custom attributes, generate code at runtime and manage assembly versions

Integrate unmanaged libraries and dynamic components into a C# application

Improve the throughput and response time of applications by using tasks and asynchronous operations

Build a graphical user interface by using XAML

Use the types in the System.Net namespace and WCF Data Services to access and query remote data

Create and use an entity data model for accessing a database and use LINQ to query and update data

Read and write data by using file input/output and streams and serialize/deserialize data in different formats

Use inheritance to create a class hierarchy, extend a .NET Framework class and create generic classes and methods

Create classes, define and implement interfaces and create and use generic collections

Create and call methods, catch/handle exceptions and describe the monitoring requirements of large applications

Microsoft 70-483: Programming in C# Course Curriculum


Module 1

C# and .NET Platform (4.5)

.NET Platform and Benefits

Platform Independence

.NET Building Blocks

Core C# Features

.NET Architecture

The .NET Assemblies

The Common Type System

CTS Type Members

Intrinsic CTS Data Types

Common Language Specification

Common Language Runtime and Common Object Runtime

Object Browser

Assembly Namespace Type Distinction (A.N.T)

.NET In Windows 8

Section Review

Test Our Knowledge


 Module 2

C# Programming

Console App Creation

Anatomy 101


Application Error Codes

Examining String Data

System.Console Class

System Data Types

Variable Declarations

C# Textual Data

Working with String Data

Data Type Conversions

Widening and Narrowing Conversions


The Variable Console

Using Implicit Typing

Iteration Constructs

Construct Control Flow

Methodology 101

Defining Methods

Parameter Method

Method Overload



Structures Types

Reference Types and Value Types

Nullable Types

Section Review

Test Our Knowledge


 Module 3

Object Orientated Programming with C#

C# Class Type

Room Class



The THIS Keyword

Observing Constructor Flow

The STATIC Keyword

Static Field Data

Static Methods

Static Constructors

Static Classes

OOP Triumvirate

OOP Encapsulation

OOP Inheritance

OOP Polymorphism


C# Encapsulation Services

Implementing Accessors and Mutaters

Creating a Static Property

Automatic Properties

Object Initialization Syntax

Constant Field Data

Inheritance and Polymorphism

Multiple Base Classes

The SEALED Keyword

Building Class Hierarchy

Sealed Classes

Containment and Delegation Model

Nested Types


Virtual and Override Keywords

Abstract Classes

The Polymorphic Interface

Method Shadowing

Class Casting Operations

The AS and IS Keywords


Overriding GetHashCode()

System.Object's Static Members

Structured Exception Handling

System Exception: TargetSite



Data Property

Custom Exceptions

Custom Exception Best Practices


The THROW Keyword

Inner Exceptions

The Finally Block

Identifying Unhandled Exceptions


Interface Types vs. Abstract Base Classes

Implementing an Interface

AS and IS Interface Keywords

Interface Parameters and Return Values

Arrays of Interface Types

Designing Interface Hierarchies

Multiple Inheritance with Interface Types

IEnumerable and IEnumerator Interfaces

Building Iterator Methods With The YIELD Keyword

Named Iterators

The IClonable Interface

The IComparable Interface


Section Review

Test Our Knowledge


 Module 4

Advanced C# Concepts

Generics, Collections and Bears (Oh My!)

The System.Collections Namespace

Nongeneric Collections Classes

The Issue of Performance

The Issue of Type Safety

The System.Collections.Generic Namespace

The System.Collections.ObjectModel Namespace

Custom Generic Types

Custom Generic Structures and Classes

Delegates, Events and Lamda's

The .NET Delegate Type

Sending Object State Notifications Using Delegates

The Generic Action <> and Func <> Delegates

The EVENT Keyword

C# Anonymous Methods

Lambda Expressions


Advanced C# Features

The Index Operator

Overloading Indexer Methods

Understanding Operator Overloading

Understanding Custom Type Conversions

Understanding Extension Methods

Extending Types Implementing Specific Interfaces

Anonymous Types

Limitations of Anonymous Types

LINQ to Objects

The Core LINQ Assemblies

Applying LINQ Queries to Primitive Arrays

The Result of a LINQ Query

Investigating the C# LINQ Query Operators

insert slides above instructor 3

insert slides above instructor 5

The Internal Representation of LINQ Query

Understanding Object Lifetime

Classes, Objects and References

The CIL of new

Setting Object Reference to null

The Role of Application Roots

The System.GC Type

Forcing a Garbage Collection

Finalizable Objects

Resource wrapper?

Understanding Lazy Object Instantiation

Section Review

Test Our Knowledge


 Module 5

.NET Assemblies and Base Class Libraries

Building Object Libraries

Assemblies Promote Code Reuse

Insert slides above instructor 3

Understanding the Format of a .NET Assembly

Building a C# Client Application

Understanding Private Assemblies

The Role of the App.Config File

Global Assembly Cache

Understanding Strong Names

gacutil.exe Options

Configuring Shared Assemblies

The System.Configuration Namespace

Reflection, Late Binding and More!

Type Metadata

Understanding Reflection

Building a Custom Metadata Viewer

Reflecting on Shared Assemblies

Understanding Late Binding

The System.Activator Class

The Role of .NET Attributes

The System.Activator Class

Reflecting an Attribute Using Early Binding

Building an Extendable Application

Dynamically Speaking

The Role of the C# DYNAMIC Keyword

Limitations of the DYNAMIC Keyword

The Role of The Dynamic Language Runtime (DLR)

The Role of Expression Trees

Simplifying Late-Bound Calls Using Dynamic Types

Leveraging the Dynamic Keyword to Pass Arguments

Simplifying COM Interoperability Using Dynamic Data

The Role of Primary Interop Assemblies (PIAs)

Multithreaded, Parallel and Async Programming

The Problem of Concurrency

The Role of Thread Synchronization

Review of The .NET Delegate

The Role of The AsyncCallback Delegate

System Threading Namespace

Manually Creating Secondary Threads

Working Whith The ParameterizedThreadstart Delegate

Foreground and Background Threads and Concurrency Redux

insert slides above instructor 2

Synchronization Using the System.Threading.Monitor Type

CLR Thread Pool

Parallel Programing Library

Asynchronous Calls Under .NET 4.5

File I/O and Object Serialization

Exploring the System.IO Namespace

The Abstract Stream Class

Working with StreamWriters and StreamReaders

Working with BinaryWriters and BinaryReaders

Understanding Object Serialization

The Role Of Object Graphs

Insert slides above instructor: 10

Serializing Objects Using the BinaryFormatter

Controlling The Generated XML Data

Customizing Serialization

Data Access Overview

Section Review

Test Our Knowledge



 Module 6

Windows Presentation Foundation

WPF In A Nutshell

What is XAML?

WPF Trees

WPF Project Types and Navigation

The Goals of WPF

Better Use Of Graphics Hardware

Property Binding and Property Inheritance

Styles and Templates

Consistent Control Containment

Separate UI From Code-Behind

Disadvantages of WPF

WPF Fundamentals: Size and Position

Font Properties

Opacity Masks

Miscellaneous Properties


Grid. DockPanel Controls

Boarder and List View Controls

Combo Box and List Box Control

Property Basics

Resources and Styles

WPF Data Binding

Section Review

Test Our Knowledge

Program Closing

Recommended Reading