BASTA 2014 - C# Fitness
21 September 2014 - .NET, Azure, C#
Tomorrow I will do a full-day workshop about C# at BASTA Germany. Over the years, the workshop has become a tradition and I am really looking forward to it. In this blog article I publish slides, code samples, and important links for attendees. Here is the workshop's abstract (German):
Mit einem Alter von über 12 Jahren kann man in der kurzlebigen IT Branche bei C# ohne weiteres bereits von einem Klassiker sprechen. Die Programmiersprache hat allerdings nichts von ihrer Aktualität eingebüßt. Ganz im Gegenteil, durch Dinge wie async/await hat sich C# an die Spitze der führenden Programmiersprachen katapultiert.
Rainer Stropek gestaltet seit vielen Jahren auf der BASTA Workshop über C#. Ein ganzer Tag, der nur der Frage gewidmet ist, wie man noch besseres C# schreiben und von welchen Neuerungen man profitieren kann. Fix auf der Agenda des Workshops finden sich diesmal folgende Themen:
- Performanceoptimierung in C# Anwendungen (z.B. Profiler, Tipps und Tricks rund um JITer, Garbage Collector & Co)
- Parallele und asynchrone Programmierung in C#
- Aspekte der funktionalen Programmierung in C#
- Modularisierung mit NuGet und Portable Class Libraries (PCL)
- Neuerungen in Visual Studio
Natürlich ergänzt Rainer die Tagesordnung wie immer kurzfristig um ganz aktuelle Themen rund um Visual Studio vNext, Projekt Roslyn, etc.
Machen Sie sich bereit für einen Tag mit vielen praktischen Tipps und jeder Menge Codebeispiele. Rainer setzt im Workshop Basiswissen über C# (mindestens Version 2, idealerweise Version 3) voraus. Ein eigener Laptop ist im Workshop nicht unbedingt Voraussetzung.
Optimizing Performance of C# Applications
Content
Optimizing performance of C# application will be the prime topic of the morning during the workshop. I will cover multiple scenarios:
- Identifying and removing performance problems in DB-related applications
I have summarized the sample I will use for DB-related application profiling in this separate blog article.
- Finding performance killers in parallel and async CPU-bound algorithms
I have summarized the sample I will use for parallel and async in this separate blog article.
- Hunting memory leaks
Tools
During the workshop I will use multiple tools inside and outside of Visual Studio. Here are the links:
- You can analyze performance in Visual Studio with the Visual Studio Performance Explorer
- If you need to dig deeper, PerfView will be of great help
- As an example of a commercial 3rd party profiling tool, I will use Red Gate's ANTS Profilers
- To analyze SQL-related issues, I use Microsoft SQL Server's Management Studio (if you don't have it, it comes for free with the SQL Express Edition)
Source Code
You can download the source code I use during the workshop in my GitHub repository:
- Code for DB-related sample
- Web and load test for DB-related sample
- Sample for parallel and sync programming as well as profiling of CPU-bound algorithms
- Command line and WPF test drivers for previous sample
- Memory leak hunting sample with leaks and without leaks
NuGet
Here you can download the NuGet slide deck I use during the workshop.