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 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
strana 6
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 ?
.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
strana 9
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í
• MSIL = microsoft intermediate language – ekvivalent byte code (bajtového jazyka) Java
• JIT = just in time kompilace
strana 14
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
Číslo verze Gener ace 1.0 1.0.3705.0
Datum vydání 2002-02-13
1.1
1.1.4322.573
2003-04-24
2.0
2.0.50727.42
2005-11-07
Visual Studio .NET Windows Server 2003 2003 Visual Studio 2005 Windows Server 2003 R2
3.0
3.0.4506.30
2006-11-06
Expression Blend
3.5
3.5.21022.8
2007-11-19
4.0
4.0.30319.1
2010-04-12
4.5
4.5.50709.1792 2012-08-15 9 2014-05-05
Visual Studio 2012 Windows 8, Server 2012 Visual Studio 2013 Windows 8.1
Windows
2015-07-20
Visual Studio 2015 Windows 10, Server 2016
Windows
4.5.1 4.6
Vývojový nástroj Distribuce se systémem Visual Studio .NET N/A
Windows Vista, Windows Server 2008 Visual Studio 2008 Windows 7, Windows Server 2008 R2 Visual Studio 2010 N/A
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