Charles Explorer logo
🇨🇿

Pokročilé programování v jazyce C#

Předmět na Matematicko-fyzikální fakulta |
NPRX038

Sylabus

Pokročilá práce s řetězci, základy znakové sady Unicode (kódování UTF-8, UTF-16, combining characters, atd.), podpora .NET pro Unicode, problémy související s lokalizací aplikací a jejich řešení v .NET

Vlákna, synchronizační primitiva (lock, Monitor, potomci WaitHandle), WinForms (WPF) threading model

.NET memory model, volatile operace a memory fences, lock-free a wait-free datové struktury v .NET

Koncept futures/promises a TPL (Task Parallel Library)

Základní sítová komunikace (BSD sockets).

Asynchronní volání metod a programování neblokujících operací (async/await)

Deklarativní způsoby programování a paralelizace aplikací: LINQ (to Objects), PLINQ.

Reflexe v prostředí .NET, metadata, CIL kód/assembler, generování kódu za běhu aplikace (lambda funkce a Expression Trees, CodeDOM, Mono.Cecil).

Persistence dat a serializace: příklady binární serializace, protocol buffers.

Základy aspektově orientovaného programování (AOP).

Aplikační domény a principy oddělení neznámého kódu v řízeném prostředí.

Pokročilé možnosti síťové komunikace: vzdálené volání objektů (.NET Remoting)

Dynamické programovací jazyky (IronPython, apod.) v prostředí .NET, vytváření dynamických objektů v C#.

Anotace

Cílem předmětu je posluchače seznámit s pokročilými technikami programování pro platformu .NET a se specializovanými částmi knihoven platformy .NET. Po absolvování předmětu by měli mít studenti široký přehled o funkcích poskytovanými knihovnami .NET a být schopni je efektivně využít v reálných projektech nad platformou

.NET.

Předpokládá se dobrá znalost jazyka C# a základních principů platformy .NET na úrovni předmětu "NPRG035

Programování v jazyce C#".