PředmětyPředměty(verze: 945)
Předmět, akademický rok 2023/2024
   Přihlásit přes CAS
Pokročilé programování v jazyce C# - NPRX038
Anglický název: Advanced C# Programming
Zajišťuje: Studijní oddělení (32-STUD)
Fakulta: Matematicko-fyzikální fakulta
Platnost: od 2020
Semestr: letní
E-Kredity: 6
Rozsah, examinace: letní s.:2/2, Z+Zk [HT]
Počet míst: neomezen
Minimální obsazenost: neomezen
4EU+: ne
Virtuální mobilita / počet míst pro virtuální mobilitu: ne
Stav předmětu: vyučován
Jazyk výuky: čeština
Způsob výuky: prezenční
Způsob výuky: prezenční
Je zajišťováno předmětem: NPRG038
Další informace: http://d3s.mff.cuni.cz/teaching/nprg038
Garant: Mgr. Pavel Ježek, Ph.D.
Třída: Informatika Bc.
Informatika Mgr. - volitelný
Kategorizace předmětu: Informatika > Programování
Prerekvizity : {NXXX014, NXXX015, NXXX016, NXXX017, NXXX018, NXXX022, NXXX023, NXXX024, NXXX025, NXXX030, NXXX031, NXXX033}
Korekvizity : NPRG035
Neslučitelnost : NPRG038
Záměnnost : NPRG038
Je neslučitelnost pro: NPRG038
Je záměnnost pro: NPRG038
Anotace -
Poslední úprava: doc. RNDr. Petr Hnětynka, Ph.D. (30.04.2019)
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#".
Literatura -
Poslední úprava: Mgr. Pavel Ježek, Ph.D. (04.09.2013)

Mark Michaelis, Eric Lippert: Essential C# 5.0, 4th Edition, Addison-Wesley Professional, 2012

Jeffrey Richter: CLR via C#, 4th Edition, Microsoft Press, 2012

Jon Skeet: C# in Depth, 3rd Edition, Manning Publications, 2013

Christian Nagel et al.: Professional C# 2008, Wrox, 2008

Serge Lidin: Expert .NET 2.0 IL Assembler, Apress, 2006

Mark E. Russinovich, David A. Solomon: Windows Internals 5th Edition, Microsoft Press, 2009

Microsoft Developer Network Library, http://msdn.microsoft.com/library/

Zdrojové kódy knihoven platformy .NET, http://referencesource.microsoft.com/

Sylabus -
Poslední úprava: Mgr. Pavel Ježek, Ph.D. (04.09.2013)

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#.

 
Univerzita Karlova | Informační systém UK