!!! Mediawiki has been upgraded !!!
Slack integration has been disabled for now due to an incompatibility.
If you want to testdrive the new skin (Tweeki), make sure your language settings are set to 'en - English' in your preferences!


From Brixel - Hackerspace Hasselt
Jump to: navigation, search

Project: C# Tutorial
Description: An introduction to C#
Status: New
Participants: Berend
Projectcode: https://github.com/Brixel/CSharp-tutorial/tree/master
Expertise: C#, Git
Edit tags: C-Sharp-Tutorial


This tutorial includes a couple of 1 hour sessions, increasing in difficulty. In the linked GitHub repository you'll find the code used in the tutorial. The first session of this tutorial will take place on the 29th of November 2016, our third Workshopday. This session will take about 1.5 to 2 hours.

Required attributes to follow the sessions:

  • A laptop, running Visual Studio 2015 (Community Edition is free and should be enough)
  • A git-client (optional)

Basic understanding of programming is not really required.

This tutorial

Getting used to Visual Studio 2015/2017

Visual Studio is an IDE (Integrated Development Environment) supporting multiple programming languages including the obvious VB.NET, C#. But also C, C++ and even Javascript and other derivatives (like node.js) are supported. Also included is Git-support.

Basic programming

In the initial phase of this tutorial, we learn to use the typical C# syntax. How to use if/switch statements, but also for- and while loops. This ends up in a simple console application asking your name and your birthdate and then telling your age.

Advanced programming (a.k.a. Object Oriented programming a.k.a. How do I reuse my code)

At some point, your application will grow and you might and up with some duplicate code. This isn't too bad, but for maintenance this is a drama. Introducing: Object Oriented programming. You'll create objects with you can interact with, and some objects have different functionality based on their type. Also included in this part, using inheritance to operate with multiple levels of code. This is also a minor form of Domain Driven Design, however there's no real purpose for this.

The use of databases (or how to persist your data) (Sql Server)

Create a website alongside your application (HTML, CSS and some JS)

Refactor your application to use a design pattern to ease up your code and to further improve maintenance, readability and teamwork (MVC)

Add an Android client to interact with the data of your application. Also introduces a REST API (using WebAPI)