Detail předmětu
Seminář C#
ICS Ak. rok 2021/2022 letní semestr 4 kredity
Syntaxe jazyka C#. Objektová orientace. Objektový model, objekty, třídy. Visual Studio. Ladění a profilace. Návrhové vzory. Grafické uživatelská rozhraní, WPF. Asynchronní programování - procesy, vlákna, úlohy. Dotazování nad persistentními daty pomocí LINQ a ORM Entity Framework.
Garant předmětu
Koordinátor předmětu
Jazyk výuky
Zakončení
Rozsah
- 26 hod. seminář
- 13 hod. projekty
Bodové hodnocení
- 100 bodů projekty
Zajišťuje ústav
Cvičící
Stránky předmětu
Získané dovednosti, znalosti a kompetence z předmětu
Studenti se seznámí s moderními přístupy při vývoji software na platformě .NET v jazyce C#. Po úspěšném zvládnutí předmětu budou srozuměni s dobrými programátorskými praktikami, které se v praxi na této platformě využívají. Vybaveni nezbytnou znalostí základních návrhových vzorů a jejich implementací vzhledem ke specifickým rysům jazyka C# a běžně používaných knihoven, absolventi budou připraveni na započetí své kariéry coby .NET vývojáře.
Práce v týmu naučí studenty vzájemné koordinaci a správnému přístupu k softwarovému vývoji. Základy objektově orientovaného programování, konstruktů používaných v C#, návrhových vzorů a práci s persistentními daty pomocí přístupu ORM.
Cíle předmětu
Cílem je naučit studenty základy objektově orientovaného programování v jazyce C#.
Proč je předmět vyučován
Předmět si klade za cíl zvýšit uplatnění studentů, kteří vidí svoji kariéru coby programátorů, při hledání zaměstnání po studiu. C# se dlouhodobě dostává do popředí s popularizací .NET platformy a nově i .NET Core díky multiplatformnosti. Jedná se o moderní jazyk s vysokou úrovní abstrakce, který není jen objektový, ale obsahují i prvky funkcionálního programování. Student si během kurzu vyzkouší práci v týmu na projektu, který vyžaduje nejen funkční kód, ale dbá i na správný návrh, týmovou spolupráci při verzování kódu a klade důraz na použití návrhových vzorů. Po absolvování je student schopný samostatně vytvořit desktopovou aplikaci s připojením do databáze za kterou se nebude muset v budoucnu stydět.
Doporučené prerekvizity
- Základy programování (IZP)
Požadované prerekvizitní znalosti a dovednosti
Základní znalosti imperativního programování (jazyk C), algoritmizace a verzování kódu.
Technické vybavení
- Visual Studio Comunity / Rider / VS Code
- [Resharper]
Literatura studijní
- MARTIN, R. C., & MARTIN, M. (2006). Agile principles, patterns, and practices in C. Pearson Education.
- MARTIN, Robert C. Clean code: a handbook of agile software craftsmanship. Pearson Education, 2009.
- MARTIN, R. C., & MARTIN, M. (2006). Agile principles, patterns, and practices in C. Pearson Education.
- MARTIN, Robert C. Clean code: a handbook of agile software craftsmanship. Pearson Education, 2009.
- BISHOP, J. (2007). C# 3.0 Design Patterns: Use the Power of C# 3.0 to Solve Real-World Problems. " O'Reilly Media, Inc.".
- BISHOP, J. (2007). C# 3.0 Design Patterns: Use the Power of C# 3.0 to Solve Real-World Problems. " O'Reilly Media, Inc.".
- GAMMA, Erich. Design patterns: elements of reusable object-oriented software. Pearson Education India, 1995.
- ALBAHARI, Joseph; ALBAHARI, Ben.; C# 7.0 in a Nutshell: The Definitive Reference. O'Reilly Media, Inc., 2017.
- ALBAHARI, Joseph; ALBAHARI, Ben.; C# 7.0 in a Nutshell: The Definitive Reference. O'Reilly Media, Inc., 2017.
Osnova seminářů
- Úvod do jazyka C# a platformy .NET, základní syntaxe jazyka, instalace a představení Visual Studia.
- Úvod do objektově orientovaného programování a pokročilé konstrukce v jazyce C# - výjimky, události, delegáty, lambda výrazy a generika.
- Představení základních knihovních funkcí (BCL) a dotazování za pomocí vestavěného nástroje LINQ nad datovými zdroji (kolekcemi, XML, MSSQL). (Ing. Tibor Jašek, MSP)
- Propojení aplikace s databází pro zajištění persistence pomocí ORM rozšíření Entity Framework s návrhovými vzory UnitOfWork a Repository.
- Psaní čistého, udržovatelného kódu s respektováním Clean Code, S.O.L.I.D. zásad. Ukázky refaktorizace a práce s legacy kódem. (Martin Dybal, Microsoft MVP)
- Návrhový vzor Model-View-ViewModel (MVVM) a architektura desktopových aplikací. Mapování databázových entit na modelové třídy. (Bc. Michal Mrnuštík, MSP)
- Continous Integration v prostředí Azure DevOps a testování aplikací - smoke, unit, integrační, UI a akceptační testy. (Ing. Jiří Pokorný, Solarwinds)
- Základní koncepty tvorby uživatelského rozhraní pomocí Windows Presentation Foundation (WPF).
- Návrhové vzory pro práci s vytvářením, strukturováním a chováním - Gang of Four (GoF) v kontextu C#. (Martin Dybal, Microsoft MVP)
- WPF za pomoci MVVM, tvorba komponenty a stylování aplikací. (Ing. Roman Jašek, Microsoft MVP)
- Nástroje pro správu paměti a profilaci výkonu. (Velikonoční pondělí - odpadá)
- Paralelní a asynchronní programování, proces, vlákno, úloha z pohledu C# a použitého frameworku .NET.
- Multiplatformní programování .NET Standard, .NET Core. Konteinerizace aplikací pomocí Docker a jejich orchestrace Kubernetes, Docker Swarm.
Osnova ostatní - projekty, práce
Průběžná kontrola studia
- Odevzdání projektu rozdělené do tří částí během semestru.
- Každá část bude samostatně hodnocena a student obdrží zpětnou vazbu ke své práci, kterou zapracuje do následující fáze.
- Bodové rozdělení dle fází: 20, 30, 50 bodů.
- Výsledný projekt bude hodnocený v třetí fázi při obhajobě.
Kontrolovaná výuka
- Vypracování týmového projektu v rozsahu 5 členů v prostředí Azure DevOps.
- Cílem je vytvořit plně funkční desktopovou aplikaci, podle OOP principů, komunikující s databází.
- Hodnocení projektu zohlední správné použití S.O.L.I.D, CleanCode zásad probíraných na přednáškách.
- V případě řádně ohlášené a doložené překážky ve studiu může student požádat o odložení termínu odevzdání u kterékoliv části projektu.
Podmínky zápočtu
- Získat nejméně 1 bod z každého odevzdání
- Získat nejméně 50% bodů z projektu
Způsob kontaktu s vyučujícím
Oficiálním kontaktním kanálem je email odeslaný z fakultní adresy vyučujícím dle karty předmětu.
Zařazení předmětu ve studijních plánech