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



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

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

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

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

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

Matematika v programovacích

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

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

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

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

David Bednárek Jakub Yaghob Filip Zavoral.

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

PROGRAMOVÁNÍ PRO MS WINDOWS 1

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

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

Uklízení odpadků a analýza úniku

11. Přehled prog. jazyků

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování Předmět: Programování

Ján Hanák. Programujeme v jazycích C++ s Managed Extensions a C++/CLI

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

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

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování. Předmět: Programování

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

3. Základy programovacího jazyka Java

Platforma.NET 4. hodina dnes to bude ideologické

Multiplatformní GUI toolkity

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

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

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

EVOLUCE VÝVOJE SOFTWARE V PROSTŘEDÍ MICROSTATION

Procesy a vlákna (Processes and Threads)

David Bednárek Jakub Yaghob Filip Zavoral.

Compatibility List. GORDIC spol. s r. o. Verze

PROGRAMOVÁNÍ PRO MS WINDOWS 2

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

Stavba operačního systému

Administrace počítačových sítí. WEB a LPT

Správa paměti na platformě Java. Ladislav Thon

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

MATLAB a Simulink R2015b

Generické programování

konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian

Vláknové programování část I

IBA CZ průmyslový partner FI MU

- kvalitní dokumentace k SW je vyžadovaným STANDARDEM. vzájemná provázanost SW (IS) ve velkých společnostech. aktuální přehledná srozumitelná

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

2 Postup při programování, úvod do programovacího jazyka Java

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

Tvorba pluginu Licensing do informačního systému Helios Orange

Maturitní témata. IKT, školní rok 2017/18. 1 Struktura osobního počítače. 2 Operační systém. 3 Uživatelský software.

Technologie ASP.NET. Martin Trněný

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

JAZYK C# A.NET FRAMEWORK NA LINUXU

Karel Bittner HUMUSOFT s.r.o. HUMUSOFT s.r.o.

VirtualBox desktopová virtualizace. Zdeněk Merta

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE PŘEKLADY TYPICKÝCH JAZYKOVÝCH KONSTRUKCÍ PROGRAMOVACÍCH JAZYKŮ.

Paralelní programování

O projektu OpenOffice.org a IBM OS/2 OS/2 a Open Source

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

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

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

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

Programátorské večery. Tomáš Herceg Microsoft Student Partner

Principy operačních systémů. Lekce 5: Multiprogramming a multitasking, vlákna

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

IAJCE 07/08 Přednáška č. 1. naučit myslet transformace reálných problémů na funkční programy základy programování

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

Novinky ve Visual Studio Tomáš Kroupa

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

Programovací jazyky Přehled a vývoj

UNIVERZITA PARDUBICE PROJEKT MONO

MST - sběr dat pomocí mobilních terminálů on-line/off-line

Základy operačních systémů

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

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

Instalace a konfigurace web serveru. WA1 Martin Klíma

Vladimír

BAKALÁŘSKÁ PRÁCE ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA ELEKTROTECHNICKÁ. Realizace ovládací softwaru pro signálové přepínače

O projektu Nasazení OpenOffice.org v praxi

Identifikátor materiálu: ICT-1-17

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

Úvod do operačního systému Linux Mgr. Josef Horálek

Správa paměti. Ing. Marek Běhálek katedra informatiky FEI VŠB-TUO A-1018 / marek.behalek@vsb.

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

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

IT ESS II. 1. Operating Systém Fundamentals

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

IUJCE 07/08 Přednáška č. 6

Semestrální práce KIV/PC

Co je to Grid. Martin Kuba Superpočítačové Centrum Brno Seminář CESNET, Třešť

Jakub Čermák Microsoft Student Partner

Využití systému Dynamips a jeho nástaveb pro experimenty se síťovými technologiemi Petr Grygárek

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

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

FIREBIRD relační databázový systém. Tomáš Svoboda

Úvod. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík,2016

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

Vývoj software pro Linuxové distribuce. Installfest Praha,

Transkript:

Programování v C# Úvodní slovo 1 / 25

Obsah přednášky Seznámení s předmětem Co je.net Vlastnosti.NET 2 / 25

Kdo je kdo Petr Vaněček vanecek@pf.jcu.cz J 502 Václav Novák vacnovak@pf.jcu.cz?? Při komunikaci uvádějte do e-mailu předmět ve tvaru: [PJC1] +důvod 3 / 25

Plán semestru 1. Úvodní slovo 2. Struktura.NET aplikace 3. Zvyklosti a vývojová prostředí 4. Datové typy 5. Třídy, rozhraní a jmenné prostory 6. Operátory, kolekce a generika 7. Výjimky, vlákna, události 8. Souborový vstup/výstup 9. XML 10. Síťová komunikace 11. Reflexe 12. Ladění 4 / 25

Požadavky na zápočet Vypracování krátkých úložek v průběhu semestru Malé úložky min. 25 bodů z celkových 50 bodů Samostatná práce!!! Vypracování semestrální práce Získání min. 25 bodů z celkových 50 bodů Funkční program Programátorská dokumentace Uživatelská příručka Zadání práce v průběhu 2. týdne 5 / 25

Doporučená literatura Web předmětu home.pf.jcu.cz/ vanecek/education/pjc1 např. J. Sharp: Microsoft Visual C#.NET Step by Step 6 / 25

Cíle.NET Problémy při běžném programování Jazyková nekompatibilita Platformová nekompatibilita Nekonzistentní knihovny Problémy s pamětí Nedůsledný objektové programování Cíle Odstranit/omezit výše popsané problémy Řešení??? 7 / 25

Požadavky na platformu Interoperabilita možnost spolupráce s hotovými knihovnami (většinou COM technologie) Jednotný Runtime podobně jako u JAVy využít mezijazyk (Common Intermediate Language CIL) Jazyková nezávislost jednotný typový systém definující datové typy a programové konstrukty (Common Type System) Knihovna základních tříd knihovny pro často používané funkce (Base Class Library) Jednoduchá instalace a údržba problémy s registry, umístěním souborů a DLL hell Bezpečnost bezpečnostní mechanismy součástí Runtimu (trust levels) 8 / 25

Platforma.NET Principy známé s JAVy Jednotné běhové prostředí (Virtual Machine) Optimalizace kódu pro konkrétní procesor (Just-In-Time kompilace) Zjednodušení zprávy paměti (Garbage Collector) Knihovny často používaných (Class Library).NET navíc přináší Jazyková nezávislost Nový jazyk plně využívající možnosti.net (C#) 9 / 25

Standardizované řešení Zahájení projektu r. 2000 Microsoft Hewlett-Packard Intel Standard ECMA r. 2001 CLI - Common Language Infrastructure C# Standard ISO r. 2003 Podmínka Standard musí být volně k dispozici 10 / 25

Microsoft a jiní.net Framework dnes již součástí MS OS Nyní ve verzi 2.0 (ve Vista 3.0) Obsahuje i překladače pro C#, J#, Visual Basic.NET %systemdir%/microsoft.net/framework/verze.net Framework SDK na stránkách MS Debugger s GUI IL Disassembler Dokumentace 11 / 25

Microsoft a jiní Shared Source Common Language Infrastructure Zdrojové kódy k MS implementaci CLI Pro systémy Windows, FreeBSD, Mac OS X.NET Compact Framework Windows CE Mono Open source project Linux, Solaris, Mac OS X, Windows, Unix DotGNU GNU náhrada MS.NET Frameworku Linux, *BSD, Mac OS X, Solaris, Windows,... 12 / 25

Common Intermediate Language (CIL) mezijazyk do kterého se kompilují všechny programy Obdoba Javovského bytecodu Objektový Není interpretovaný Just In Time kompilace Probíhá inkrementálně Překládá se jen to co je třeba Možno naprogramovat vlastní JITer Kompilace pro libovolnou platformu Microsoftí CIL MSIL C# code J# code VB.NET code compiler compiler compiler CIL JIT 1001 1110 0010 1101 1111 0001 1101 1001 13 / 25

Common Intermediate Language (CIL) Zdrojový kód Překlad a spuštění 14 / 25

Common Intermediate Language (CIL) Disassembler 15 / 25

Common Language Runtime (CLR) Řízené prostředí pro běh programů v CIL Nahrávání tříd JIT kompilátor Správa paměti Správa vláken Správa výjimek Typová kontrola Zabezpečení Ladění Spolupráce s Base Class Library 16 / 25

Common Language Runtime (CLR) 17 / 25

Common Type System (CTS) Umožňuje spolupráci mezi různými jazyky Obdobné datové typy ve všech jazycích možno sdílet data Možnosti Instanciování třídy napsané v jiném jazyce Přístup k veřejným členům třídy v jiném jazyce Dědění třídy od třídy v jiném jazyce 18 / 25

Common Type System (CTS) Typy Hodnotové Referenční Systémové hodnotové typy Výčty Uživatelské hodnotové typy Ukazatele Samopopisné typy Rozhraní Třídy Pole Delegáti Uživatelské referenční typy Boxované hodnotové typy 19 / 25

Common Type System (CTS) Hodnotové typy Alokují se na zásobníku Systémové hodnotové typy čísla, znaky řetězce Uživatelské struktury Referenční typy Odkaz na zásobníku, data na heapu Rozhraní typ na který lze přetypovat instance tříd implementující dané rozhraní Samopopisné typy Typy, které poskytují informace garbage collectoru Delegáti typy odkazující na metodu Boxované typy hodnotové typy zabalené tak, aby s nimi šlo zacházet jako s referenčními 20 / 25

Garbage Collector (GC) Problémy se správou paměti Nutno alokovat paměť na společné hromadě Nutno uvolnit paměť, když se přestane používat Problematické odhalování potíží s alokací/dealokací paměti Řešení ponechat na systému garbage collector Součást runtimu Kontroluje zda existuje reference na instanci Odstraňuje instance bez referencí 21 / 25

Garbage Collector (GC) Spouštění GC je nedeterministické Spouští se v okamžiku kdy na heapu dochází místo Jak se ale zjistí na který objekt vede reference? Problémy s cyklickými referencemi A B C B b C c B b 22 / 25

Garbage Collector (GC) Každá aplikace má množinu kořenových objektů (např. globální a statické objekty) Všechny instance se označí jako nedosažitelné Prochází se od kořenů a staví se graf Pokud je instance nedosažitelná, přidá se do grafu a nastaví se jako dosažitelná Pokud je instance dosažitelná, může se prohledávání této cesty ukončit Dosažitelné objekty jsou setřeseny na začátek heapu Ukazatele na dosažitelné objekty se opraví D ROOT C objekty B A D ROOT C objekty B A F E D C B A F D C A 23 / 25

Base Class Library (BCL) Rozsáhlá knihovna tříd, rozhraní a hodnotových typů Zajišťuje např. Kolekce Souborové vstupy/výstupy Práce s XML Přístup k DB Práce s komunikačními protokoly Tvorba GUI Spolupráce s neřízeným kódem Web services Podporu národních zvyklostí 24 / 25

Konec 25 / 25