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

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

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

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

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

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

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

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

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

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

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

Programování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG )

11. Přehled prog. jazyků

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

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

1. Programování proti rozhraní

.NET Framework. VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta informačních technologií

Výčtový typ strana 67

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

Softwarové komponenty a Internet

Principy objektově orientovaného programování

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

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

JAZYK C# ÚVOD. Literatura. Jazyk C# .NET Framework

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

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

Abstraktní datové typy: zásobník

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/

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

Architektury informačních systémů

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

Generické programování

Bakalářské práce realizované v.net/c# Bachelor thesis implemented in.net/c#

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

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

Architektury informačních systémů

Platforma.NET 4. hodina dnes to bude ideologické

Jazyk C# (seminář 6)

7.5 Diagram tříd pokročilé techniky

Úvodem... 9 Kapitola 1 Karetních

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

Programovací jazyky Přehled a vývoj

První kapitola úvod do problematiky

Správa paměti. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta, 2016

Správa paměti. doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 /

PROGRAMOVÁNÍ PRO MS WINDOWS 1

NPRG031 Programování II --- 2/2 Z, Zk

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

MOŽNOSTI JAZYKA C# A JEHO INTEGRACE S JINÝMI JAZYKY.

Matematika v programovacích

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20

Úvod do programovacích jazyků (Java)

7.5 Diagram tříd pokročilé techniky

Novinky ve Visual Studio Tomáš Kroupa

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

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

Robotická rehabilitační pomůcka pro děti

Vytvoření.NET komponenty (DLL) ve Visual Studiu

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

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

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Programování v C++ 2, 4. cvičení

Úvod do programovacích jazyků (Java)

10 Balíčky, grafické znázornění tříd, základy zapozdření

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

Skriptovací jazyky. Obsah

PROGRAMOVÁNÍ V C++ CVIČENÍ

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo

Tvorba informačních systémů

Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

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

Projekty pro výuku programování v jazyce Java

8 Třídy, objekty, metody, předávání argumentů metod

David Bednárek Jakub Yaghob Filip Zavoral.

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

IB111 Programování a algoritmizace. Programovací jazyky

Common Object Request Broker Architecture

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

ČÁST 1. Základy 32bitového programování ve Windows

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Jazyk C# (seminář 9)

Instalace a konfigurace web serveru. WA1 Martin Klíma

Základy programování Zdrojový kód, dokumentace, týmová práce

7 Jazyk UML (Unified Modeling Language)

Java Cvičení 01. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

Datové struktury. alg12 1

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

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

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

KTE / ZPE Informační technologie

3 Vývojová prostředí, základní prvky jazyka Java, konvence jazyka Java

Objektově orientované programování

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

Paměť počítače. alg2 1

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová

IB111 Úvod do programování skrze Python Přednáška 13

Transkript:

Programovací jazyk C# Úvod do programování v C# Ing. Marek Běhálek Katedra informatiky FEI VŠB-TUO A-1018 / 597 324 251 http://www.cs.vsb.cz/behalek marek.behalek@vsb.cz.net Framework Dramaticky zjednodušit vývoj aplikace. Zjednodušený model nasazení a managementu aplikace. Vytvoření robustního a bezpečného prostředí pro běh aplikace. Multi-jazyková podpora. Jednotný programový model. Podobný model jaký znáte z Javy Úvod do programování v C# 2.NET Framework - Architektura.NET Framework Aplikace skládající se z komponent v různých jazycích: Common Language Specification (CLS); Common Type System (CTS). Robustní prostředí. Potenciálně multi-platformní. Zjednodušení vývoje a nasazování aplikace. Bezpečnost. Úvod do programování v C# 3 Úvod do programování v C# 4 1

Automatický management životního cyklu objektu. Využívá garbage collector pro management systémových zdrojů. Korektní ošetření chyb Chyby jsou ošetřovány pomocí výjimek. CLR přímo podporuje zpracovávání výjimek. Tento proces je tedy nezávislý na programovacím jazyce. Typová bezpečnost Garance že nad definovanými typy nemohou být provedeny nepovolené operace. Odstraňuje chyby pramenící z nekontrolované manipulace s proměnnými nebo pamětí. Proces kompilace Úvod do programování v C# 5 Úvod do programování v C# 6 Řízený kód Kód o jehož provádění se stará CLR Jazyk generující jen řízený kód je Visual Basic Neřízený kód Aplikace které nejsou napsány v.net Zřekneme-li se služeb CLR Jazyk schopný generovat neřízený kód je na C++ Výstupem kompilátoru jazyka schopného generovat řízený kód je MS intermediate language. "Vyspělejší asembler" objekty, výjimky, zásobníkové instrukce, (bytecode Javy) Důvodem zavedení je snaha o jednoduché přenášení mezi různými hardwarovými platformami. Rychlost zajištěna Just-in time kompilací. Poskytuje čistý objektově orientovaný přístup. Třídy a Rozhraní. Konstruktory, vlastnosti, metody, události, Umožňuje rozšiřovat funkcionalitu třídy pomocí dědičnosti v různých jazycích. Vestavěna zpětná kompatibilita: s aplikacemi postavenými na technologii COM; s nativními DLL ve stylu Win32. Úvod do programování v C# 7 Úvod do programování v C# 8 2

Common Type System Vše je objekt. Základem každého typu je třída System.Object. Tato třída definuje tyto metody: Equals; GetHashCode; GetType; ToString. Základní dělení Hodnotové typy Referenční typy Common Type System Automatická konverze mezi hodnotovými a referenčními typy (Boxing / Unboxing). int i = 123; Object o = i; int j = (int)o; Úvod do programování v C# 9 Úvod do programování v C# 10 Požadavky vedoucí k zjednodušení nasazení aplikace Aplikace musí být samostatné logicky nezávislé na registry, Aplikace musí obsahovat čísla verzí a musí být na ně vázána. Čísla verzí komponent Musí podporovat Side-by-side komponenty. Musí umožňovat izolaci aplikace. Musí zajistit bezpečný přístup ke kódu. Komponenty musí obsahovat informace o veřejných typech. Základní jednotkou distribuce v.net je assembly. Assembly je: logická kolekce jednoho nebo více.exe,.dll nebo.module souborů a zdrojů doplněná Manifestem; programová jednotka určená k nasazení. Umožňuje opakované použití, řízení verzí a podporuje bezpečnost. Úvod do programování v C# 11 Úvod do programování v C# 12 3

Manifest je blok metadat obsahující informace Identitu jméno, verze a kultura; Seznam souborů + kryptografické zabezpečení; Odkaz na další použité assembly + jejich verze; Exportované (veřejně viditelné) typy a zdroje; Bezpečnostní požadavky: Nutné pro spuštění assembly; Doporučené pro běh; Ty, které by neměly být nikdy přiděleny. Instalace.NET aplikací a komponent Soukromé assembly Instalace typu XCopy. Manifest obsahuje všechny potřebné údaje. Sdílené assembly Nejčastěji instalovány do GAC Global Assembly Cache. Složitější instalace i odinstalování aplikace. Definuje Sdílené jméno. Úvod do programování v C# 13 Úvod do programování v C# 14.NET Framework Základní knihovny.net Framework Základní knihovny Úvod do programování v C# 15 Úvod do programování v C# 16 4

.NET Framework Programovací jazyky.net Framework Programovací jazyky Platforma.NET je jazykově nezávislá. Všechny jazyky si jsou principielně v rámci.net platformy rovny. Preferovány jsou ovšem jazyky C# a Visual Basic Common Language Specification Definuje základní vlastnosti jenž jsou očekávány v každém programovacím jazyce na platformě.net. Microsoft implementoval podporu jazyků (ve verzi 1.0): Visual Basic, C++, C#, J#, JScript. Jazyky integrované(?) třetí stranou: APL, COBOL, Pascal, Eiffel, Haskell, ML, Oberon, Perl, Python, Scheme, Smalltalk, F#, Úvod do programování v C# 17 Úvod do programování v C# 18.NET Framework Ukázkový.NET Framework Ukázkový Program vypíše text Hello world!. Je napsán v jazyce C#. Soubor: HelloWorld.cs using System; class HelloWorld { public static void Main() { Console.WriteLine("Hello world!"); Po překladu vznikne soubor HelloWorld.exe který je možno spustit. Úvod do programování v C# 19 Úvod do programování v C# 20 5

.NET Framework Ukázkový.NET Framework Ukázkový Úvod do programování v C# 21 Úvod do programování v C# 22.NET Framework Ukázkový.NET Framework Zjednodušuje vývoj a nasazení aplikace. Poskytuje robustní a bezpečné prostředí pro běh aplikace. Multi-jazyková podpora. Rozsáhlé knihovny funkcí. Vše integrováno v jednom vývojovém nástroji Visual Studio.NET. To je v rámci MSDN licence na katedře k dispozici studentům!.net Framework Základní charakteristika jazyka C# Jazyk C# vyvinula firma Microsoft. Vychází z jazyka C++, ale v mnoha ohledech se více podobá Javě. Jak tvrdí Microsoft: C#je nový jazyk s jednoduchostí Visual Basicu a možnostmi C++. Většina vlastností vychází přímo z vlastností.net Framework. Jazyk C# je integrován ve vývojovém prostředí Visual Studio. Úvod do programování v C# 23 Úvod do programování v C# 24 6

.NET Framework Základní charakteristika jazyka C# Jazyk C# je čistě objektově orientovaný. Obsahuje nativní podporu komponentního programování. Podobně jako Java obsahuje pouze jednoduchou dědičnost s možností násobné implementace rozhraní. Vedle členských dat a metod přidává vlastnosti a události. Správa paměti je automatická. O korektní uvolňování zdrojů aplikace se stará garbage collector. Podporuje zpracování chyb pomocí výjimek. Zajišťuje typovou bezpečnost a podporuje řízení verzí Podporuje atributové programování. Zajišťuje zpětnou kompatibilitu se stávajícím kódem jak na binární tak na zdrojové úrovni..net Framework Používané konvence pro psaní programů (1) Jazyk C# je case sensitive. Používá tři typy notací Pascal case - Název je složen z několika slov a první písmeno každého takovéhoto slova je velké (SomeLongName). Camel case - Název je složen z několika slov a první písmeno všech krom prvního slova je velké (somelongname). Uppercase - Všechna písmena jsou velká. Používá se pro zkratky a krátké (dokumentace uvádí dvouznakové) názvy (System.IO). Doporučené konvence lze najít v dokumentaci k.net Framework (heslo: Naming Guidelines). Úvod do programování v C# 25 Úvod do programování v C# 26.NET Framework Používané konvence pro psaní programů (2) Třída SomeBigClass Výčtový typ ErrorLevel Hodnota ve výčtovém FatalError Událost MouseMoved Třída rozšiřující výjimku ParseException Jméno výjimky by mělo končit slovem Exception. Pouze pro čtení a statické položky SomeValue Rozhraní IComparable Název rozhraní by měl začínat velkým písmenem I. Metoda SomeNiceMethod Jmenný prostor - System.Drawing Parametr nebo lokální proměnná somename Vlastnosti BackColor Privátní nebo chráněné instanční položky třídy redvalue Veřejné instanční položky - RedValue.NET Framework Komentáře (1) Poznámky vycházejí z jazyka C jednořádkové komentáře jsou uvozeny dvěmi lomítky - // víceřádkový komentář začíná /* a končí */ Speciální význam má značka TODO. Komentář který po ní následuje se zobrazí v panelu aplikace Visual Studio s názvem Task List. Jednořádkové komentáře uvozené třemi lomítky budou obsaženy v dokumentaci, která je standardně generována ze zdrojového kódu. Generovaná dokumentace využívá XML. Úvod do programování v C# 27 Úvod do programování v C# 28 7

.NET Framework Kostra programu using System; namespace Namespace { /// <summary> /// Summary description for Class1. /// </summary> class Class1 { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main(string[] args) { // // TODO: Add code to start application here // Úvod do programování v C# 29 8