.NET was designed with some specific goals in mind. We'll explore what these goals are and how the .NET Framework helps us in attaining those goals.
When you create a program in .NET it needs to follow a couple of rules. We'll look at the structure of an application and which parts are necessary during runtime.
One of the most basic parts of OO programming is designing a blueprint (called class) and during runtime creating an object out of that. In this module we will talk about the real fundamentals of .NET programming. We create variables to store numbers, text and complex objects and try to use operators on them. We'll explore the ways in which you create a class and add state and behavior to objects.
Each object you instantiate from a class needs to be constructed. We'll explore how .NET solves this problem.
Whether you're trying to store numbers, text or objects, you need to put them into variables. These variables will inevitably end up somewhere in memory. By knowing where in memory each type of variable gets stored, we can predict what will happen to them.
From time to time you need some functionality that is not part of one object, but instead part of a complete class. This allows you to use methods without creating an object, or storing data that is reachable for every object. In .NET we call this static members and classes.
A very important aspect of OO programming is being able to inherit functionality from a basic concept. We'll explore how we can use Inheritance to extend a class and add functionality to it.
On top of Inheritance comes this marvel in OO programming. It allows us to add different functionality based on a generic idea. When using a database connection you just want to know that you can open, close and execute a query on it. However when you want to really implement it, you need to decide wheter it should open a connection to Sql Server, Oracle or some other database system. With polymorphism this is an easy feat to accomplish.
Since .NET 2.0 there is a concept added to the framework called Generics. It allows us to create non-finished types, to be filled in when we use it. In this way we can create a List of T, where the "T" can be filled in with whatever we want.
Whenever something unexpected happens (like a network cable being unplugged from a machine), we want our programs to handle this behavior in a user-friendly way. With Exceptions we can react fittingly when these problems occur.
One of the most difficult aspects of .NET programming is to be able to store functions in a variable. That is exactly what delegates allow us to do. This concept is used in lots of locations, especially when using asynchronous programming. Events are based on delegates, so whenever something interesting happens in a UI (eg. mouse click) and we want to react on it, we need delegates to handle it correctly.
.NET 3.5 introduced a couple of features that make the life of developers a hell of a lot easier. We'll explore them in this chapter.
LINQ allows to write queries that is very familiar to SQL queries. This makes certain operations like filtering and sorting data very easy. This concept is used in lots of locations, whether it is to connect to SQL databases of reading data from Active Directory.
In this module you will get a broad overview of Azure, and the different options for getting your applications in the cloud.
Topics:
This course teaches you how to start programming with the C# language and the Microsoft .NET Framework. You will get familiar with the C# language syntax and the .NET Object Oriented concepts, such as classes, objects, inheritance, polymorphism...
This training targets developers with no or limited C# experience. A basic understanding of programming - in whatever language - is advised. You will leave the training with sufficient knowledge to make the next step and to start learning web or windows development.