PB069 – Vývoj desktopových aplikací v C#/.NET RNDr. Jaroslav PELIKÁN, Ph.D. katedra počítačových systémů a komunikací Fakulta informatiky Masarykovy univerzity Botanická 68a, 602 00 BRNO Kanc. A209, : +420 – 549 495 751 E-mail: pelikan@fi.muni.cz http://www.fi.muni.cz/usr/pelikan
Cíle předmětu (1) Seznámit studenty se základními postupy a technikami používanými při tvorbě pro-gramů určených pro práci v prostředí ope-račních systémů MS Windows Předmět je zaměřen na vývoj jednoduchých aplikací společně s jejich grafickým uživa-telským rozhraním 17/10/2017
Cíle předmětu (2) Na konci tohoto kurzu student bude: znát principy a zásady událostmi řízeného progra-mování seznámen s vývojovým prostředím MS Visual Studio, rozhraním Windows Forms a s Windows Presentation Foundation znát pravidla pro tvorbu grafických uživatelských rozhraní aplikací schopen používat základní třídy rozhraní Windows Forms a Windows Presentation Foundation schopen vytvářet aplikace pracující v prostředí MS Windows společně s jejich grafickým uživatelským rozhraním 17/10/2017
Používané technologie Výuka probíhá s využitím: programovacího jazyka C# (C++) platformy MS .NET Framework rozhraní Windows Forms rozhraní Windows Presentation Foundation vývojového prostředí MS Visual Studio: studenti Fakulty informatiky mohou získat Visual Studio Community 2015 prostřednictvím Microsoft Imagine (přístup přes Autentizované služby na stránce http://fadmin.fi.muni.cz/ a odkaz MSDN AA) 17/10/2017
Vstupní předpoklady Znalost: základů programování a algoritmizace syntaxe programovacího jazyka C# v rozsahu předmětu PV178 Úvod do vývoje v C#/.NET operačního systému MS Windows (na uživatelské úrovni) znalost principů OOP 17/10/2017
Osnova (1) Událostmi řízené programování Model programu pro MS Windows: programové rozhraní Windows API Programovací jazyk C# – opakování: objektově orientované programování v C#: datový typ třída – členy třídy Principy OOP – opakování: zapouzdření dědičnost polymorfismus 17/10/2017
Osnova (2) Windows Forms: Zásady tvorby uživatelského rozhraní hierarchie tříd třídy reprezentující ovládací prvky: práce s formuláři a ovládacími prvky reakce na události práce s grafikou dialogová okna standardní dialogy práce se schránkou (clipboard) Zásady tvorby uživatelského rozhraní 17/10/2017
Osnova (3) Windows Presentation Foundation (WPF): hierarchie tříd jazyk XAML rozložení (layout) třídy reprezentující ovládací prvky nové koncepty ve WPF zdroje (resources), styly, spouště (triggers) práce s grafikou data binding šablony (templates) – ovládacích prvků, datové 17/10/2017
Osnova (4) Tisk z prostředí MS Windows Práce s výpočtovými vlákny: multithreading a GUI Práce s registry Zkouška 17/10/2017
Zkouška Hodnocení předmětu se bude skládat z: Výsledné hodnocení: hodnocení práce během semestru: 2 průběžné písemky v C#/.NET (max. 20 bodů): ve Windows Forms (max. 10 bodů) ve Windows Presentation Foundation (max. 10 bodů) tvorba samostatného projektu (max. 10 bodů) hodnocení závěrečné zkoušky: 1 písemka v C#/.NET (max. 20 bodů) Výsledné hodnocení: A: 47 – 50 bodů D: 35 – 38 bodů B: 43 – 46 bodů E: 31 – 34 bodů C: 39 – 42 bodů F: 30 bodů a méně 17/10/2017
Požadavky ke zkoušce Získat zápočet ze cvičení Požadavky k zápočtu: maximálně 2 neomluvené neúčasti na cvičení za semestr při ukončení předmětu zápočtem: napsání obou průběžných písemek na min. 5 bodů vytvoření samostatného projektu na min. 5 bodů při ukončení předmětu zkouškou: získat dohromady (za písemky i projekt) min. 15 bodů Získat zbývající potřebný počet bodů u závě-rečné zkoušky 17/10/2017
Důležité poznámky (1) K vykonání zkoušky je nezbytné mít v poz-námkových blocích na ISu zapsáno, že byly splněny veškeré požadavky na zápočet Bodové hodnocení ze semestru je vstupním bodovým hodnocením pro udělení známky ze zkoušky a není možné bez něj zkoušku vyko-nat V poznámkovém bloku Zápočet musí být zap-sáno Z (nejpozději 12 hodin před začátkem zkoušky) 17/10/2017
Důležité poznámky (2) Možnost opravy průběžné písemky: v průběhu semestru je možné využít jednoho opravného termínu průběžné písemky opravný termín bude na konci výukového období, popř. začátkem zkouškového období v rámci opravného termínu je možné, aby si student opravil bodové hodnocení z jedné své průběžné písemky Změny ukončení předmětu budou povolová-ny pouze do začátku zkouškového období 17/10/2017
Důležité poznámky (3) Studenti opakující předmět, kteří mají zápo-čet z minulého roku, jsou povinni: cvičení absolvovat splnit veškeré požadavky v něm kladené získat tak zápočet znovu (zápočty z minulého roku se v žádném případě neuznávají) 17/10/2017
Důležité poznámky (4) Během zkouškové i průběžné písemky je možné používat: elektronickou nápovědu k: MS Visual Studiu Windows API, Windows Forms a WPF libovolnou literaturu a poznámky z přednášek Během písemek není možné používat: již hotové programové celky (ve zdrojovém ani přeloženém tvaru) výpisy programů, které nejsou součástí elektro-nických nápověd a již publikovaných materiálů 17/10/2017
Literatura (1) Pelikán, Jaroslav: Prezentace k přednáškám z před-mětu PB069 Vývoj desktopových aplikací v C#/.NET, http://www.fi.muni.cz/usr/pelikan Griffiths, Ian – Adams, Matthew – Liberty, Jesse: Programming C# 4.0, O’Reilly Media 2010, ISBN: 978-0-596-15983-2 Sharp, John: Microsoft Visual C# 2010, Computer Press 2010, ISBN: 978-80-251-3147-3 Petzold, Charles: Programování Microsoft Windows Forms v jazyce C#, Computer Press 2006, ISBN: 80-251-1058-3 17/10/2017
Literatura (2) Sells, Chris – Griffiths, Ian: Programming WPF, O’Reilly Media 2007, ISBN: 978-0-596-51037-4 MacDonald, Matthew: Pro WPF in C# 2010: Windows Presentation Foundation in .NET 4.0, Apress 2010, ISBN: 978-1-4302-7205-2 Nathan, Adam – Lehenbauer, Daniel: Windows Presentation Foundation Unleashed, Sams Publishing 2007, ISBN: 0-672-32891-7 Petzold, Charles: Programování ve Windows, Computer Press 1999, ISBN: 80-7226-206-8 17/10/2017
Rysy MS Windows Možnost multitaskingu a multithreadingu Možnost Clipboardu, DDE a OLE Více dostupné operační paměti Strojově nezávislá grafika Přímá podpora jednotlivých zařízení (tiskárna, myš, ...) Podpora pro vytváření menu, ikon, bitových map, dialogových rámců atd. 17/10/2017
Program pro MS Windows (1) Operační systém MS Windows je založen na událostmi řízené architektuře (event-driven architecture) S veškerými uživatelskými vstupy (z kláves-nice, myši, ...) se zachází jako s událostmi Pro každou událost Windows generují zprávu (message): např. při stisku levého tlačítka myši je generována zpráva WM_LBUTTONDOWN Těchto zpráv je ve Windows cca 300 17/10/2017
Program pro MS Windows (2) Pro vývoj programů MS Windows 95 (98, Me, NT, 2000, XP, Vista, 7, 8, 10) poskytují tzv. Windows API (Windows Application Programming Interface) Windows API obsahuje více než 1000 funkcí, které je možné při tvorbě programu využít Vzhledem k velkému množství těchto funkcí a velkému počtu parametrů, které vyžadují, je (byla) tvorba programu poměrně náročná 17/10/2017
Program pro MS Windows (3) Program pro Windows pracuje obvykle v ná-sledujících základních krocích: registrace okenní třídy vytvoření hlavního okna aplikace provádění cyklu, který očekává příchod události (zprávy) v okamžiku příchodu zprávy následuje její předání obslužné funkci okna cyklus končí s příchodem zprávy ukončující aplikaci 17/10/2017