Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework úvod, historie, základy.net framework, programovací jazyky, vývojové prostředky
Úvod strana 2 Cíl předmětu Seznámit se s vývojem aplikací pro platformu Microsoft.Net Framework pomocí jazyka C# Zaměření předmět je zaměřen na základy jazyka C# a tvorbu objektově orientovaného robustního kódu problematika je vysvětlována na malých desktopových aplikacích vývoj aplikací probíhá ve Visual Studio 2012
Motivace strana 3 Proč se učit programovat pro.net? osvědčený koncept (od r. 2002) značně rozšířeno v praxi, uplatnění na trhu práce rychlý a jednoduchý vývoj dobrá podpora vývoje, široká programátorská základna.net platforma nabízí velkou řadu funkcí které pokrývají širokou škálu oblastí jsou přímo součástí knihovny tříd.net šetří významně čas
Motivace strana 4 Jazyk C# je elegantní, vysokoúrovňový jazyk, umožňující využívat uvedenou funkcionalitu.net neklade vysoké nároky na programátora nabízí mnoho zjednodušujících konstrukcí Umím-li.Net a C# mohu snadno přejít na další programovací jazyky např. Visual Basic.Net
strana 5 Proč ne? podpora pouze firmou MS, hrozí ukončení podpory? o směřování platformy nerozhoduje konsorcium nepřívětivá licenční politika serverů MS (webové aplikace)
Osnova předmětu strana 6 1. Platforma.Net Framework 2. Základy jazyka C# 3. Objektový návrh v jazyce C# (1) 4. Objektový návrh v jazyce C# (2) 5. Výjimky a Sdružení dat (struktury, pole, výčty) 6. Kolekce (generické, negenerické, vlastní) 7. Grafické rozhraní (WF, WPF) 8. Soubory (datové, textové, xml) 9. Základy ADO.Net a WCF 10. Úvod do programování pro Windows Phone
Studijní materiály strana 7 Slajdy a zápisy z přednášek Projekty předkládané ve výuce Nápověda Visual Studia, MSDN Evjen B. a kol., C# 2008 Programujeme profesionálně, Praha: Computer Press, 2009 Petzold Ch., Mistrovství ve Windows Presentation Foundation, Praha: Computer Press, 2008 Evjen B., Scott H., ASP.NET 3.5 v jazycích C# a Visual Basic, Praha: Computer Press, 2009
Forma výuky a ukončení předmětu strana 8 Forma výuky Přednášky 1x 2h týdně Cvičení 1x 2h týdně, komentovaný ukázkový kód Samostatná práce na projektu Konzultace Ukončení předmětu Projekt, max. 50 bodů Závěrečný test, max. 50 bodů Známky A 85b, B 77b, C 70b, D 62b, E 55b
Co je to.net Framework? strana 9.Net Framework tvoří 4 základní části: 1. Běhové prostředí (CLR) Common language runtime 2. Společný typový systém (CTS) Common type system 3. Společná specifikace jazyka (CLS) Common language specification 4. Knihovna tříd (FCL, BCL) základní a bázová (formalismus) Framework class library, Base class library
1) Běhové prostředí CLR strana 10 představuje hlavní část platformy kód aplikace vytvořené pro.net je vždy spuštěn pod kontrolou CLR, tzv. managed code stará se o alokaci paměti, vyčištění paměti (garbage collector), obhospodařuje nízkoúrovňové konstrukce jako ukazatele atd. instalace i prostřednictvím windows update co máme nainstalováno? c:\windows\microsoft.net\framework\ c:\windows\microsoft.net\framework64\
2) Společný typový systém CTS strana 11
3) Společná specifikace jazyka strana 12 Soubor požadavků kladených na progr. jazyk, jehož pomocí bude možné tvořit aplikace pro.net Jsou-li splněny, pak syntakticko-sémantická struktura umožní využít všech výhod řízeného prostředí Visual Basic, C#, C++/CLI, J#, Iron Python, Windos Powershell, a mnoho dalších!
4) Knihovna tříd strana 13
Běh aplikací strana 14 MSIL = microsoft intermediate language ekvivalent byte code (bajtového jazyka) Java JIT = just in time kompilace
Jazyk IL strana 15 Vždy se překládá pomocí JIT, nikoliv najednou, ale až v okamžiku potřeby dané části aplikace Poskytuje nezávislost na platformě, umožňuje spolupráci více jazyků Klíčové vlastnosti: objektová orientace a použití rozhraní silné odlišení hodnotových a referenčních typů silná typová kontrola dat, podpora CTS automatická správa paměti (garbage collector) zabezpečení ošetření chyb pomocí výjimek uplatnění atributů (Reflexe)
Nezávislost.Net framework na platformě strana 16.Net framework 4.5 úplná implementace pouze některé OS Windows Projekt Mono (firma Novell) v.4.0.0, přímo obsahuje kód.net Core projektu aktuálně téměř implementuje.net 4.5, mimo WPF, WWF a WCF pro OS Unix, Linux, MacOS, FreeBSD, OS X, Solaris a MS Windows.Net compact framework pro Win CE.Net micro framework pro speciální hwd.net for Windows Phone 8
Historie.Net framwork strana 17 Gener Číslo verze Datum Vývojový nástroj Distribuce se systémem ace vydání 1.0 1.0.3705.0 2002-02-13 Visual Studio.NET N/A 1.1 1.1.4322.573 2003-04-24 Visual Studio.NET Windows Server 2003 2003 2.0 2.0.50727.42 2005-11-07 Visual Studio 2005 Windows Server 2003 R2 3.0 3.0.4506.30 2006-11-06 Expression Blend Windows Vista, Windows Server 2008 3.5 3.5.21022.8 2007-11-19 Visual Studio 2008 Windows 7, Windows Server 2008 R2 4.0 4.0.30319.1 2010-04-12 Visual Studio 2010 N/A 4.5 4.5.50709.1792 2012-08-15 Visual Studio 2012 Windows 8, Windows 9 Server 2012 4.5.1 2014-05-05 Visual Studio 2013 Windows 8.1 4.6 2015-07-20 Visual Studio 2015 Windows 10, Windows Server 2016
strana 18 Poslední verze.net Framework 4.6 zveřejněna 10.7.2015 podpora vyšších DPI ve WPF ASP.Net 4.6 podporuje HTTP/2 na Win10, rozšířené async API vylepšený Garbage Collector zlepšení podpory SSL ve WCF Spojeno s uvedením nové verze VS a specifikace jazyků C# a VB
Klíčová funkcionalita jednotlivých generací strana 19 WinForms klasická okna aplikací ve Windows ASP Active Server Pages ADO ActiveX Data Objects WPF - Windows Presentation foundation WCF - Windows Communitaciton foundation WF - Windows Workflow Foundation CardSpace umožňuje bezpečnou správu identit LINQ Language Integrated Query
Jazyky pro.net framework strana 20 Existují desítky jazyků C#, Visual Basic.Net, C++/CLI, F#, J#, IronPython, Windows PowerShell, ad.. každý splňující Common Language Specification Visual Basic.Net r. 2002 přerušena zpětná kompatibilita s VB6 C++/CLI vytvořený firmou MS v roce 2005, standard ECMA-372 využití od VS 2005
Jazyk C# strana 22 Vytvořen firmou MS speciálně pro.net Není součástí.net Framework nabízí některé funkce, které nejsou součástí frameworku a naopak Neustále uváděny nové specifikace jazyka C# aktuálně verze 6.0 C# nebo Visual C#
Jazyk C# strana 23 Rok uvedení verze jazyka implementováno v 2002 C# v1.0 Visual studio.net 2003 C# v1.2 Visual studio 2003 2005 C# v2.0 Visual studio 2005 2007 C# v3.0 Visual studio 2008 2010 C# v4.0 Visual studio 2010 2012 C# v5.0 Visual studio 2012 2015 C# v6.0 Visual studio 2015 ECMA standardizuje do verze C# 2.0, dále uvádí standard pouze firma MS: http://www.microsoft.com/enus/download/details.aspx?id=7029
Jazyk C# - klíčové vlastnosti strana 24 plný přístup ke knihovně základních tříd.net plná podpora tříd OOP vč. dědičnosti, rozhraní a virtuálních funkcí konzistentní a vhodně definovaná sada základních typů integrovaná podpora automatického generování dokumentace ve formátu XML automatické uvolňování dynamicky přidělované paměti možnost označit třídy nebo metody uživatelsky definovanými atributy
Jazyk C# - klíčové vlastnosti strana 25 v případě potřeby jsou dostupné ukazatele a přímý přístup do paměti, ale jazyk je navržen takovým způsobem, že lze bez nich pracovat téměř ve všech situacích podpora vlastností a událostí ve stylu jazyka Visual Basic pouhou změnou možností překladače můžete překládat buď spustitelný soubor, nebo knihovnu komponent.net pomocí jazyka C# lze psát dynamické stránky ASP.NET a webové služby založené na XML
Vývojové prostředí Visual Studio strana 26 Výkonné IDE pro vývoj pod OS Windows VS == rodina produktů různé verze (VS 2015, 2013, 2012, 2010, 2008 ) různé edice (Community, Professional, Enterprise, Express) Např. VS 2012 Express for Desktop, zdarma a zcela dostačující i pro profesionály Např. VS 2015 Express for Desktop /for Web /for Windows velké množství nástrojů usnadňujících vývoj lze vytvořit libovolná rozšíření nachystáno mnoho šablon projektů
Vývojové prostředí Visual Studio
Vývojové prostředí Visual Studio strana 28 užitečné zkratky ctrl+shift+b : build celého řešení ctrl+mezerník : našeptávač ctrl+shift+mezerník : očekávané parametry ctrl+s : uložení F5 : debuging F9 : krokování step into F10 : krokování step over Užitečné pohledy: Solution explorer, Designer, Toolbox, Properties, Output, Error List