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#".
Poslední úprava: Hnětynka Petr, doc. RNDr., Ph.D. (30.04.2019)
In this course students will explore .NET platform's advanced programming techniques and internals, and
specialized parts of standard .NET libraries. Successful completion of the course should give students a good
knowledge of the wide range of features provided by the .NET platform, and allow them to effectively use the
gained knowledge in real-life projects developed for .NET platform.
Course attendees are expected to have a good knowledge of the C# language and the key .NET platform
principles as covered by the course "NPRG035 Programming in C# Language".
Poslední úprava: Hnětynka Petr, doc. RNDr., Ph.D. (30.04.2019)
Literatura -
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/
Poslední úprava: Ježek Pavel, Mgr., 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/
Source code of platform libraries for .NET, http://referencesource.microsoft.com/
Poslední úprava: Ježek Pavel, Mgr., Ph.D. (04.09.2013)
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#.
Poslední úprava: Ježek Pavel, Mgr., Ph.D. (04.09.2013)
Strings, basics of the Unicode character set (UTF-8 and UTF-16 encodings, combining characters, etc.), Unicode support in .NET + support for application localization and related challenges.