1 - Úvod do platformy.net. IW5 - Programování v.net a C#

Podobné dokumenty
Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25

Komponenty v.net. Obsah přednášky

Novinky ve Visual Studio Tomáš Kroupa

Jakub Čermák Microsoft Student Partner

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

Seznámení s prostředím dot.net Framework

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Generické programování

Jazyk C# (seminář 3)

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 12.2.

Programovací jazyk Úvod do programování v C#

Principy objektově orientovaného programování

Programovací jazyk C# Úvod do programování v C#

typová konverze typová inference

Úvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39

Programovací jazyk C# Úvod do programování v C#

Platformy / technologie. Jaroslav Žáček

David Bednárek Jakub Yaghob Filip Zavoral.

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Architektura COM. Historie Component Object Model (COM) Komunikace s komponentami Rozhraní komponent COM komponenty v.net.

IW5 - Programování v.net a C# 4 Pokročilé konstrukce C#

Třídy. Instance. Pokud tento program spustíme, vypíše následující. car1 má barvu Red. car2 má barvu Red. car1 má barvu Blue.

Abstraktní datové typy: zásobník

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Softwarové komponenty a Internet

Jazyk C# (seminář 6)

Programovací jazyky Přehled a vývoj

Matematika v programovacích

Efektivní vývoj mobilních aplikací na více platforem současně. Mgr. David Gešvindr MCT MSP MCPD MCITP

Teoretické minimum z PJV

IRAE 07/08 Přednáška č. 1

IRAE 07/08 Přednáška č. 7. Začátek (head)

Základy objektové orientace I. Únor 2010

UJO Framework. revoluční architektura beans. verze

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.

PB161 Programování v jazyce C++ Přednáška 7

Reaktivní programování v.net

PB161 Programování v jazyce C++ Přednáška 7

11. Přehled prog. jazyků

IB111 Programování a algoritmizace. Objektově orientované programování (OOP)

PROGRAMOVÁNÍ PRO MS WINDOWS 1

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Dědění, polymorfismus

PB161 Základy OOP. Tomáš Brukner

Stručný obsah. Část I. Část II. Část III. Úvod do vývoje v prostředí Visual Studio 25. Návrh uživatelského rozhraní 127

TÉMATICKÝ OKRUH Softwarové inženýrství

Kapitola 1 Začínáme se Silverlightem

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

Platforma.NET 4. hodina dnes to bude ideologické

Desktop GUI. IW5 - Programování v.net a C# Desktop GUI

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Platformy / technologie. Jaroslav Žáček jaroslav.zacek@osu.cz

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

[ASP].NET Core Demystified. Miroslav Holec. Konzultant a lektor [ASP].NET Core.

TŘÍDY POKRAČOVÁNÍ. Události pokračování. Příklad. public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e);

Nové jazykové brány do Caché. Daniel Kutáč

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

.NET v SQL Serveru. Jan Drozen NDBI039.

Úvod do Groovy pro Java experty

David Bednárek Jakub Yaghob Filip Zavoral.

Tvorba informačních systémů

CineStar Černý Most Praha

Historie, současnost a budoucnost ASP.NET

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

První kapitola úvod do problematiky

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy

DF FA Novinky v Simotion Scout

Bázové třídy platformy.net

Objektové programování

JAVA &.NET JAVA VS.NET

Asynchronní programování v.net

Klíčová slova: OOP, konstruktor, destruktor, třída, objekt, atribut, metoda

Úvod Vývojová prostředí Štábní kultura Dokumentace Konec. Programování v C# Prostředí a doporučení 1 / 39

Novinky v ASP.NET MVC6

IRAE 07/08 Přednáška č. 2. atr1 atr2. atr1 atr2 -33

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

1. Programování proti rozhraní

Studentská tvůrčí a odborná činnost STOČ Petr Čápek

PŘETĚŽOVÁNÍ OPERÁTORŮ

Architektury informačních systémů

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Architektury informačních systémů

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář

Vladimír

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Úvod. Únor Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 23

Stream API. Petr Krajča. Základy programovaní 4 (Java) Katedra informatiky Univerzita Palackého v Olomouci

NMIN201 Objektově orientované programování 1 / :36:09

Návrhové vzory OMO, LS 2014/2015

Platformy / technologie. Jaroslav Žáček

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Dědičnost. seskupování tříd do hierarchie. potomek získá všechny vlastnosti a metody. provádí se pomocí dvojtečky za názvem třídy.

Integrace OpenOffice.org a Javy. CZJUG, , Robert Vojta

1. Přehled: SharePoint Services 3.0 a workflow Úvod do problematiky, motivace Popis technologie Workflow Foundation...

Polymorfismus. Porovnání jazyků z hlediska polymorfismu Jazyky C, C++, C# Jazyk Java PHP a jiné Na závěr souhrn vlastností jednotlivých jazyků

Objekt. základní prvek v OOP. má vlastnosti. má metody. vznikne vytvoření nové instance definován pomocí třídy

Transkript:

1 - Úvod do platformy.net IW5 - Programování v.net a C# Strana 1

Obsah přednášky Objektově orientované paradigma.net Framework Základní rysy jazyka C# Strana 2

Objektová orientace C# implementuje základní koncepty OOP Zapouzdření Dědičnost Polymorfismus Charakteristické rysy C# oproti OOP Unifikovaný typový systém Třídy a rozhraní Properties, Metody a Eventy Strana 3

Rysy C# - Unifikovaný typový systém Typ zapouzdřuje data a funkce Sdílení základní funcionality Převod instance na string metoda ToString() namespace System { public class Object { } } public virtual string ToString() {} public virtual bool Equals(object obj) {} public virtual int GetHashCode() {} Strana 4

Rysy C# - Třídy a rozhraní Třída = typ Data (členy) Operace (metody) Rozhraní (interface) Popisuje pouze členy třídy Chování definuje třída, které jej implementuje public interface IBoy { string Name {get;} } public class Boy : IBoy { public string Name {... } } Vícenásobná dědičnost tříd - NE Vícenásobná implementace rozhraní - ANO Strana 5

Rysy C# členy třídy Properties Zapouzdřují část stavu objektu Např. Color Metoda Implementuje chování objektu Obdoba funkce Např. SetButtonColor Event Změnu stavu objektu Např. ColorChanged public class Button { public event EventHandler ColorChanged; } public Color Color { get; set; } public void SetButtonColor(Color color) { Color = color; } if (ColorChanged!= null) { ColorChanged(this, EventArgs.Empty); } Strana 6

C# - Typová bezpečnost Silně typovaný jazyk = typ musí být znám v době překladu Podpora IntelliSense ve Visual Studiu POZN: klíčové slovo dynamic lze použít dynamický typ Výhody Eliminace chyb již v době překladu Ochrana objektu před narušením jeho stavu Sandbox Button button = new Button(); var button = new Button(); Button button = new Color(); Strana 7

C# - Správa paměti Garbage collector (GC) Automatická správa paměti bez assistence programátora Součást CLR, princip počítání referencí na daný objekt Výhody Odpadá manuální uvolňování paměti Eliminace problému s ukazateli (časté v C++) Strana 8

.NET Framework Tvořen Common language runtime (CLR) a velkým množstvím knihoven Typy knihoven Core framework Aplikační technologie Strana 9

.NET Framework vybrané knihovny WinForms ASP.NET WPF Windows Presentation Foundation WCF Windows Communication Foundation WF Windows Workflow Foundation LINQ Language Integrated Query Strana 10

.NET Framework - architektura Strana 11

CLR Common Language Runtime Běhové prostředí pro vykonávání managed kódu Obdoba Java VM pro.net Poskytované služby Správa paměti Načítání knihoven Bezpečnostní služby Zachytávání výjimek... Jazykově neutrální Podpora vývoje ve více jazycích C#, VB, Managed C++, Delphi.NET, F#,... Strana 12

CLR - detaily C# je kompilován do tzv. managed kódu Managed kód je zabalen do assembly, která je dvou typů Spustitelný kód (*.exe) Knihovna (*.dll) IL - Intermediate language Reprezentace managed kódu Při čtení CLR je kód z assembly konvertován do nativního kódu stroje (x86) JIT Just-In-Time kompilátor Realizuje proces převodu IL do nativního kódu Dynamické generování kódu Strana 13

CLR - detaily Strana 14

Novinky ve verzích C# C# 2.0 Generika List<T> list = new List<T>(); Nullable typy Nullable<int> pocet = null; Anonymní metody p = delegate(string j) {Console.WriteLine(j); }; Iterator blocks yield return; Properties getter and setter public Color Color { get{ } set{ } } Partial typy public partial class TasksWindow { public int x = 1; } public partial class TasksWindow { public int y = 1; } public partial class TasksWindow { public TasksWindow() { Console.WriteLine(x+y);} } Strana 15

Novinky ve verzích C# C# 3.0 Expression trees Implicitní lokální typ var var cars = new List<Car>(); Lambda výrazy (param)=>{console.writeline(param);} Extension metody Auto property public Color Color { get; set; } LINQ List<Car> cars = new List<Car>(); var redcars = cars.where(c => c.color == Color.Red).Select(r => r.name); Strana 16

Novinky ve verzích C# C# 4.0 Dynamický binding Volitelné parametry a jména argumentů Typová variance generické interface a delegáty COM interoperabilita C# 5.0 Podpora pro asynchronní funkce async a await C# 6.0 Nový kompilátor Roslyn Součástí VS 2015 Strana 17

Podpora platforem u jazyka C# Primárně navržen pro běh na platformě Windows, ale existují výjimky ASP.NET C# kód spouštěn na serveru Překlad do HTML podporováno na všech platformách ASP.NET 5.0 Linux, Mac OS X Mono projekt Běh na jiném runtime než CLR, má vlastní kompilátor Linux, Solaris, MAC OS X, Windows Silverlight Host podporující aplikaci psanou v C#, obdoba Adobe Flash Windows, MAC OS X Strana 18

.NET Core Open source, podpora pro Windows, Linux and Mac OsX Multiplatformní implementace základních knihoven.net Strana 19

Reference http://www.amazon.com/5-0-nutshell-the-definitive-reference/dp/1449320104 http://2.bp.blogspot.com/_qzt9kid9l2q/tjha8ti9jji/aaaaaaaaab0/xnjclipziu/s1600/8.jpg http://www.cs.vsb.cz/behalek/vyuka/pcsharp/text/resources/1.jpg http://gwb.blob.core.windows.net/sdorman/windowslivewriter/clr4.0inprocesssidebys ideclrhosting_93b4/image_thumb.png http://www.c-sharpcorner.com/uploadfile/prvn_131971/chapter-1-introducing-asp- Net/Images/1.gif http://blogs.msdn.com/cfs-filesystemfile.ashx/ key/communityserver-blogs-componentsweblogfiles/00-00-01-12-34/5488.pic2.png Strana 20

Poděkování Autoří původních materiálů k IW5, XMW5 2015 Ing. Radek Gajdušek Ing. Zdeněk Jurka Ing. Martin Minařík, Ph.D. Ing. Jaroslav Nečas Bc. Václav Pachta Mgr. Martin Procháska Strana 21