ÚVOD / Studijní obory / Sylaby / Vývoj v C#

Vývoj v C#

Cílem předmětu je seznámit studenty s vývojem objektově orientovaných aplikací v jazyce C# na platformě Microsoft Windows .NET. Studenti získávají základní přehled frameworku .NET a podrobně se seznamují s jeho nejdůležitějšími součástmi. Nedílnou součástí je seznámení s vývojovým prostředím Visual Studia a jeho nástroji pro „rapidní vývoj“ komplexních aplikací, včetně tvorby dokumentace, lokalizace do různých jazyků, testování aplikací a ClickOnce deploymentu.
Studenti se v předmětu rovněž seznamují s pokročilejšími principy programování, jako jsou vícevláknové aplikace spolu s tématy sdílení zdrojů, napojení aplikace na databázi spolu s transakčním zpracováním, práce s formátem XML a jeho definice přes XSD a pokročilejšími technikami programování jako jsou lambda výrazy a anonymní programování. Součástí výuky jsou idoporučené praktiky programování, zapojení návrhu aplikace do její tvorby, kooperace s formátem UML, způsoby testování a ladění aplikací a efektivním odstraňování chyb.

Sylabus předmětu

  1. Základní principy platformy .NET. Přehled historie vývoje programovacích jazyků C, C++, Java, C#. Charakter jazyka, pojmy kompilace, interpretace a virtualní stroj, bytecode (CLI), virtuální stroj (CLR). Generace programovacích jazyků. Architektura C# a její vývoj spolu s .NET frameworkem. Automatická správa paměti a garbage collector (GC). Common type system (CTS) a jeho použití. Výhody Common Language Specification (CLS). Princip Just-in-time kompilace (JIT). Hlavní součásti .NET frameworku a srovnání s Javou.
  2. Struktura programu a objekty v C#. Třídy a objekty v C#, instanční proměnné, metody a vlastnosti. Dědičnost, zapouzdření, přístup k prvkům, vlastnosti, nullové typy, konstruktor, destruktor.
  3. Rozšíření objektové struktury. Rozšíření objektové struktury o abstraktní třídy, dědičnost, rozhraní, is, as, typeof, zapečetěné třídy, internal, vnořené třídy, struktury, přetěžování operátorů, zabalení, vybaleni, boxing, unboxing.
  4. Typový systém C# a základní jazykové konstrukce. Imperativní programování, deklarativní programování, objektově orientované programování, statické typování, typy, přetypování, programovací elementy, kolekce, generické kolekce
  5. Výjimky a vstupně výstupní operace. Princip použití výjimek jako obecného schématu zacházení s chybovými stavy a definice vlastních výjimek. Vstupně výstupní operace, serializace a deserializace.
  6. XML Data. Připomenutí definice formátu XML a jeho souvislost s objektovým modelem. Základní koncepce práce s XML kontinuální parsing a DOM. Definice XSD schémat a rozšíření analogie XML/XSD s OOP. Definice prvků XSD, podmínek a restrikcí. Validace dokumentu v C#.NET. 
  7. Delegáty a události. Pojem delegát a možnost odkazu na metody. Využití základních delegátů a jejich skládání. Rozšíření na události a jejich dědičnost. Anonymní metody a typy, reflexe a klonování. 
  8. Genericita. Genericita a její použití v C#. Rozšíření základní genericity pomocí klauzule where, lambda výrazy, atributy, reflexe.
  9. Práce s relačními databázemi. Komponenta ADO.NET a principy připojené a odpojené aplikace, připojení ke specifické databázi a následná obecná práce. Metody použití SQL příkazů a základní prvky SQL, parametry a uložené procedury. Transakce a transakční zpracování. Odpojená správa pomocí DataTable, dynamické vytváření a synchronizace s datovým zdrojem. 
  10. LINQ - LINQ a jeho použití v C#. Základy LINQ a dotazování pod ním. Linq to Objects, LINQ to SQL.
  11. Vlákna. Princip vícevláknového běhu programu. Definice vlákna v C# a různé vlastnosti vláken. Popis hlubší synchronizace a jejich problémů. Řešení synchronizace monitory a kritickou sekcí, problém čekání na zámek, přepínání vláken a Mutexy. Speciální vlákna typu démon, bazének vláken, asynchroní delegáti a třída Timer. 
  12. Vývoj formulářových aplikací. Úvod do Windows Forms (WF). Detailní struktura projektu ve Visual Studiu 2008. Zdroje, nastavení a obecná konfigurovatelnost aplikace. Základní popis prvků WF, obecné vlasnosti a události nad prvky a jejich správa ve VS 2008. Tvorba základních prvků Label, LinkLabel, Button, ComboBox, ListBox, CheckBox, RadioButton, CheckedListBox, TextBox, RichTextBox, MaskedTextBox, NumericUpDown. Popis Menu a dalších aplikačních lišt, popis progress baru. Rozvržení aplikace a kontejnery. Vazba na data a DataSource a DataBindings. Multiple Document Interface. Úvod do XAML a WPF.

Organizace výuky

Prezenční forma

Výuka probíhá ve 12 přednáškách a 12 seminářích po 1,5 hod.

Kombinovaná forma

Výuka probíhá ve 3 tutoriálech po 3 hod.

Doporučená literatura

Základní učební texty a pomůcky

  • Učební texty k předmětu Vývoj v C# (intranetová učební pomůcka), Unicorn College
  • ALBAHARI, J., ALBAHARI, B.: C# 5.0 in a Nutshell: The Definitive Reference. O'Reilly Media, 2012.