Komponentní technologie
|
|
- Luboš Beneš
- před 8 lety
- Počet zobrazení:
Transkript
1 Komponentní technologie Ing. Marek Běhálek Katedra informatiky FEI VŠB-TUO A-1018 / marek.behalek@vsb.cz Komponenty - Motivace Vývoj Opakovaná použitelnost Snadnost testování Možnost specializace výrobců Distribuce Rychle uvedení na trh Nezávislost na dodavateli Údržba Snížení nákladů na údržbu Zaměnitelnost tlak odběratelů na standardizaci PTE - Kompnentní technologie 3 Obsah kapitoly Komponentní technologie Java Beans Technologie COM a tvorba komponent v C/C++ Úvod do architektury.net Stručný tutoriál jazyka C# Komponenty v.net implementované v C# Komponenty - Inspirace z jiných oborů Stavebnictví Výstavba z modulů, panely Automobilový průmysl Specializace ve výrobě, zaměnitelnost Elektronika Základní součástky, moduly, funkční bloky PTE - Kompnentní technologie 2 PTE - Kompnentní technologie 4 1
2 Komponenty - Aplikace v IT Technické vybavení Paměť, procesory, základní desky Periferní zařízení PnP, ovladače Komunikační prvky Programové vybavení Grafické uživatelské rozhraní Swing Distribuované aplikace CORBA, EJB,.NET, Databáze Informační systémy Komponenty -Vývoj přístupů k tvorbě programů (2) Objektově orientované technologie zapouzdření černá skříňka dědění polymorfismus znovupoužitelnost Komponentní technologie rozhraní standardy PTE - Kompnentní technologie 5 PTE - Kompnentní technologie 7 Komponenty -Vývoj přístupů k tvorbě programů (1) Monolitické programy upřednostnění úspornosti kódu na úkor srozumitelnosti a přehlednosti Komponenty - Co je to komponenta? (1) Stavební jednotka se smluvně definovanými: rozhraními; explicitními kontextovými vazbami Strukturované metody hierarchie, abstrakce Napájení IKeyboard dynamické knihovny (DLL) vzdálené volání procedur (RPC) GSM modul Mobilní telefon IBluetooth modulární programování (Modula-2) PTE - Kompnentní technologie 6 PTE - Kompnentní technologie 8 2
3 Komponenty - Co je to komponenta? (2) Může být použita nezávisle na prostředí, pro které byla vytvořena, Print prostředí, ve kterém byla vytvořena. MPEG Player (C++) Movie Library (PHP) MS Office MyApp Home Video (Java) Komponenty - Požadavky na komponenty Úplná dokumentace Důkladné testování Robustní kontrola platnosti vstupů Vracení dostatečných informativních chybových zpráv Vycházet s toho, že komponenta bude použita k předem nepředpokládaným účelům. PTE - Kompnentní technologie 9 PTE - Kompnentní technologie 11 Komponenty - Co je to komponenta? (3) Je určena pro integraci třetí stranou Autor komponenty Neví, kdo a k čemu bude jeho komponenty využívat Musí dodržet stanovené rozhraní Autor aplikace Neví, kdo bude dodávat komponenty Komunikuje přes stanovené rozhraní Integrátor Propojí aplikaci s vhodnými komponentami PTE - Kompnentní technologie 10 Komponenty - Specifikace komponenty Stav Vlastnosti čtení, nastavení Chování Operace volání, parametry, výsledek Interakce s okolím Události registrace, oznámení PTE - Kompnentní technologie 12 3
4 Komponenty - Životní cyklus komponenty (1) Komponenty - Architektura komponentně orientovaných systémů Tvorba komponenty Standardy CORBA, COM+, EJB,.NET Binární kompatibilita nezávislost na jazyce Aplikační server 1 Komponenty Aplikace 1 Publikace rozhraní Dokumentace pro člověka Introspekce součást komponenty, klientská aplikace může číst metadata Komponenty Aplikační server 2 Aplikace 2 PTE - Kompnentní technologie 13 PTE - Kompnentní technologie 15 Komponenty - Životní cyklus komponenty (2) Šíření komponenty registrace komponenty, adresářové služby LDAP, JNDI, UDDI Vyhledávání komponenty identifikace komponenty, pozdní vazba Tvorba aplikace Podpora IDE přístup jako k interním objektům Komponenty - Aplikační server Prostředí pro běh softwarových komponent Distribuované prostředí Sdílení dat Synchronizace Zabezpečení Příklady JBoss, Jakarta Tomcat, BEA Weblogic, Citrix, Meta Frame, IBM WebSphere, Oracle AS, Java Systems Sun AS, PTE - Kompnentní technologie 14 PTE - Kompnentní technologie 16 4
5 Komponenty -Příklad tvorby aplikací Komponenty Webovéslužby (2) IDL DLL komponenta zdrojový text aplikace C++ Vývojové prostředí komponenta popis rozhraní EXE spustitelná aplikace dynamická vazba WSDL UDDI adresář Vývojové prostředí rozhraní služba SOAP / HTTP Java aplikace PTE - Kompnentní technologie 17 PTE - Kompnentní technologie 19 Komponenty Webové služby (1) Webové služby (Web Services) komponenty přístupné přes WWW rozhraní (protokoly HTTP, SOAP) postavené na XML Komponenty pro tvorbu distribuovaných aplikací v prostředí internetu. Publikace komponent WSDL Web Services Description Language Vyhledávání komponent UDDI Universal Description, Discovery and Integration Více v předmětu Vývoj internetových aplikací Komponenty Rozdíly mezi OOP OOP se zaměřuje na vztahy mezi třídami, které jsou do jedné spustitelné aplikace (white box programming). Skládání aplikace z nezávisle pracujících bloků (black box programming). Oddělený vývoj aplikace a komponent ze kterých je vytvářena Musí podporovat systém verzí. Oddělení rozhraní od implementace. PTE - Kompnentní technologie 18 PTE - Kompnentní technologie 20 5
6 Komponenty Hlavní komponentní technologie JavaBeans, EJB pouze jazyk Java Komponenty uživatelského rozhraní Enterprise Java Beans pro rozsáhle systémy COM, COM+, DCOM, ActiveX Binárně kompatibilní komponenty Základní technologie pro Windows.NET Kompatibilita na jazykové úrovni C++, C#, Jscript, VB.NET Java Beans Typy komponent Vizuální komponenty Mají vizuální reprezentaci zabírající prostor v okně aplikace Příklad: tlačítko, tabulka, rolovací seznamy Podpora ve vizuálních nástrojích Nevizuální komponenty Příklad: časovač, databázové spojení, kontrola pravopisu, PTE - Kompnentní technologie 21 PTE - Kompnentní technologie 23 Java Beans Write once, run anywhere, reuse everywhere Přidávání funkcí bez nutnosti přepisovat úplně všechno Provádění na všech platformách Použití v různých scénářích aplikacích, jiných komponentách, dokumentech, www stránkách, nástrojích pro vývoj aplikací, Komponenta jako stavební blok Kontejnery kombinace komponent do struktur Principy manipulace a komunikace s komponentami z vnějšího prostředí Introspekce Zpracování událostí Persistence Java Beans Scénáře použití (1) Využití grafického návrhového prostředí Rozložení komponent v okně aplikace Nastavení vlastností komponent Barva, typ písma, klávesové zkratky, Využití editorů vlastností (property editor) Propojení komponent a zápis metod pro zpracování událostí Testování Vytvoření instalace aplikace včetně komponent PTE - Kompnentní technologie 22 PTE - Kompnentní technologie 24 6
7 Java Beans Scénáře použití (2) Java Beans Scénáře použití (4) private void jbinit() throws Exception jtextfield1.setcaretcolor(color.orange); jtextfield1.settext("jtextfield1"); jbutton1.settext("jbutton1"); jbutton1.addactionlistener( new JbExample_jButton1_actionAdapter(this)); this.add(jtextfield1); this.add(jbutton1); JTextField jtextfield1 = new JTextField(); JButton jbutton1 = new JButton(); public void jbutton1_actionperformed(actionevent e) //TODO: put your code here PTE - Kompnentní technologie 25 PTE - Kompnentní technologie 27 Java Beans Scénáře použití (3) Použití v ručně psaném programu Vytvoření instancí komponent a nastavení jejich rozměrů a pozic Nastavení vlastností komponent Vytvoření metod pro zpracování událostí Registrace metod pro zpracování událostí Testování Vytvoření instalace aplikace včetně komponent Java Beans Struktura komponenty Vlastnosti (properties) Přístup prostřednictvím přístupových metod (čtení, zápis hodnoty), ne přímo Metody (methods) Operace nad komponentami Události (events) Vazby mezi komponentami PTE - Kompnentní technologie 26 PTE - Kompnentní technologie 28 7
8 Java Beans Příklad komponenty Counter Counter int value void clear() void increment() vlastnosti metody Java Beans Přístupové metody (2) public class Counter private int value; public int getvalue() return this.value; public void setvalue(int val) this.value=val; PTE - Kompnentní technologie 29 PTE - Kompnentní technologie 31 Java Beans Přístupové metody (1) public int getvalue() Java Beans Přístupové metody (3) Vlastnosti určené pouze pro čtení Mají pouze metodu getxxx() private int value; Vlastnosti určené pouze pro zápis Mají pouze metodu setxxx() public void setvalue(int val) Vlastnosti typu boolean Metoda pro čtení se může jmenovat isxxx() public boolean isempty(); PTE - Kompnentní technologie 30 PTE - Kompnentní technologie 32 8
9 Java Beans Indexované vlastnosti Java Beans Použití vlastností komponent public int getvalue(int index) private int[] value; public void setvalue(int index,int val) Atributy objektů ve skriptovacích jazycích JavaScript, VBScript Programový přístup přes veřejné přístupové metody Přístup přes formuláře (property sheets) v návrhových prostředích Čtení a zápis do perzistentní paměti PTE - Kompnentní technologie 33 PTE - Kompnentní technologie 35 Java Beans Speciální vlastnosti Vázané vlastnosti (bound proprties) Generují událost PropertyChange, pokud se mění jejich hodnota Vlastnosti s omezením (constrained prop.) Generují událost VetoableChange, pokud se mění jejich hodnota Změna může být zakázaná Java Beans Metody Za metody komponenty se považují všechny veřejné (public) metody třídy public void clear() val=0; public void increment() val++; PTE - Kompnentní technologie 34 PTE - Kompnentní technologie 36 9
10 Java Beans Události (1) Zdroj událostí Objekt, který generuje události Spravuje seznam registrovaných posluchačů Posluchač (listener) Objekt, který chce být o události informován Musí být registrován u zdroje událostí Musí implementovat dohodnuté rozhraní Java Beans Zpracování událostí 1. Posluchač se zaregistruje u zdroje událostí (např. u tlačítka, na jehož stisknutí čeká) 2. Uživatel stiskne tlačítko vznikne událost 3. Zdroj události (tlačítko) projde seznam registrovaných posluchačů a každému z nich oznámí vznik události: Zavolá dohodnutou metodu rozhraní posluchače Metodě předá informace o události (podtřída java.util.eventobject) PTE - Kompnentní technologie 37 PTE - Kompnentní technologie 39 Java Beans Události (2) Java Beans Informace o události Registrovaní posluchači Zdroj událostí vznik události registrace addeventlistener Informace o události EventObject e Posluchač Posluchač Posluchač nastala událost (e) //Objekt přenášející informace i vygenerované //události public class CounterEvent extends EventObject public CounterEvent(Counter source) super(source); public Counter getcounter() return (Counter)source; PTE - Kompnentní technologie 38 PTE - Kompnentní technologie 40 10
11 Java Beans Posluchač (1) public interface CounterEventListener extends EventListener //byla překročena maximální hodnota void limitreached( CounterEvent event); //čítač byl vynulován void reset(counterevent e); PTE - Kompnentní technologie 41 Java Beans Registrace posluchače (1) public class Counter public void addcountereventlistener( CounterEventListener listener) //registrace posluchačů public void removecountereventlistener( CounterEventListener listener) //zrušení registrace posluchače PTE - Kompnentní technologie 43 Java Beans Posluchač (2) class MyListener implements CounterEventListener public void limitreached(counterevent event) System.out.println( Čítač vynulován ); public void reset(counterevent e) System.out.println( Překročen limit! ); Java Beans Registrace posluchače (2) class MyListener implements CounterEventListener void run() Counter counter = new Counter(); counter.addcounterlistener(this); counter.clear(); public void limitreached(counterevent event) public void reset(counterevent e) PTE - Kompnentní technologie 42 PTE - Kompnentní technologie 44 11
12 Java Beans Adaptér(1) Rozhraní EventListener pro konkrétní komponentu může obsahovat mnoho metod Chceme-li reagovat jen na některé události: 1. Musíme buď implementovat prázdné reakce na ostatní události 2. Nebo použijeme adaptér jako bázovou třídu a implementujeme jen zvolené metody Adaptér implementuje implicitní odezvu na všechny události Java Beans Adaptér(3) Counter counter = new Counter(); //použití anonymní vnitřní třídy counter.addcounterlistener( new CounterAdapter public void reset(counterevent e) System.out.println( Reset ); ); PTE - Kompnentní technologie 45 PTE - Kompnentní technologie 47 Java Beans Adaptér(2) class CounterAdapter implements CounterEventListener public void reset(counterevent e) public void limitreached( CounterEvent e) Java Beans Enterprise Java Beans (EJB) Specifikace architektury pro vývoj a nasazení distribuovaných transakčních objektových komponent na straně serveru Konvence + sada rozhraní (EJB API) Cíl = zajištění kompatibility mezi produkty různých výrobců komponenty kontejner PTE - Kompnentní technologie 46 PTE - Kompnentní technologie 48 12
13 Java Beans EJB kontejner prostředí, v němž běží komponenty vzdálený přístup bezpečnost transakce souběžný přístup přístup ke zdrojům a jejich sdílení izolace komponent od aplikací nezávislost na dodavateli kontejneru zjednodušení tvorby aplikací Java Beans Typy komponent EJB Session Beans bezstavové služby stavové objekty v rámci sezení Entity Beans perzistentní objekty spravované uživatelem (BMP) perzistentní objekty spravované kontejnerem (CMP) Message-Driven Beans bezstavové služby volané asynchronně PTE - Kompnentní technologie 49 PTE - Kompnentní technologie 51 Java Beans Aplikační komponenty v J2EE datová vrstva Databáze Java Beans Další informace Využívají se např. v informačních systémech aplikační logika prezentační logika prezentace Webový prohlížeč Webový kontejner HTML stránka servlet EJB Webový prohlížeč Aplet EJB kontejner Kontejner klienta EJB Klient Zdroj: : Z+N PTE - Kompnentní technologie 50 Odkazy na domovské stránky k Java Beans Více informací o technologii EJB bude v předmětu Tvorba informačních systémů. PTE - Kompnentní technologie 52 13
14 COM Historie (1) 1990 OLE 1.0 (Object Linking and Embedding) strukturované dokumenty Příklad: vložení grafu z Excelu do Wordu 1991 Visual Basic VBX 1993 OLE 2.0, COM (Component Object Model) Použito ve Windows 3.1, základ pro Windows OLE controls (OCX) 1996 ActiveX, DCOM (Distributed COM) COM Aplikace ve Windows Každá aplikace má oddělený adresový prostor. Virtuální paměť Překlad logických adres na fyzické. Běh více aplikací Ve Windows máme možnost použít: Samostatné aplikace -.EXE soubory Dynamicky linkované knihovny -.DLL soubory Obsahují spustitelný kód, nedají se ovšem spustit přímo. PTE - Kompnentní technologie 53 PTE - Kompnentní technologie 55 COM History(2) 2000 COM+ (Windows 2000) Distribuované komponenty Farmy komponent MTS (MS Transaction Server) 2002.NET Framework Zachovaná návaznost na COM+ COM Component Object Model (1) COM je specifikace pro tvorbu komponent. COM je technologie, která implementuje část této specifikace. COM je postaven na třech základních principech. Při vytváření aplikace programátoři využívají rozhraní. Zdrojový kód komponenty není staticky připojen, spíše nahrán na požádání za běhu aplikace. Programátoři implementující COM objekty deklarují požadavky a systém zajistí, že tyto požadavky budou splněny. PTE - Kompnentní technologie 54 PTE - Kompnentní technologie 56 14
15 COM Component Object Model (2) COM rozhraní je kolekce abstraktních operací, které mohou být provedeny objektem. Musí rozšiřovat rozhraní IUnknown Identifikován UUID IID (použití GUID) Z hlediska implementace jde o abstraktní třídu s čistě virtuálními metodami. Jazyk pro popis rozhraní je (M)IDL COM třídy konkrétní implementace jednoho nebo více rozhraní. Nelze ztotožňovat například s třídou v jazyce C++ (třída v C++ může být COM třídou ) Identifikován UUID CLSID (použití GUID) COM Global component and interface ID Globální identifikace komponent a jejich rozhraní (Global component and interface ID - GUID) 16 byte kombinací) 3F2504E0-4F89-11D3-9A0C-0305E82C3301 Algoritmus již nezahrnuje MAC adresu (bylo možné vystopovat autora dokumentu červ Melissa) Utility přímo v systému GUIDGEN.EXE (generátor součástí například Visual Studia). Obvykle se používá jako konstanta const IID IID_IRandom = 0x771853E0,0x78D1,0x11d7,0xBF,0xB4,0xED,0x72,0x61,0x DE,0xA8,0x3D; PTE - Kompnentní technologie 57 PTE - Kompnentní technologie 59 COM Component Object Model (3) COM Objekt je instancí nějaké třídy COM objekty jsou registrovány v databázi komponent Nemají identitu. Komponenta Binární soubor obsahující výkonný kód. Jedna nebo více zapouzdřených jednotek (COM tříd), které mohou využívat klienti. COM Typy komponent in-process běží ve stejném adresovém prostoru a na stejném procesoru jako aplikace (.DLL) out-of-process běží v samostatném adresovém prostoru nebo na samostatném serveru(.exe) vyžadují zajištění přenosů požadavků a výsledků (marshalling, serialization) komunikace s komponentou prostřednictvím zástupce (proxy, stub) COM umožňuje použití komponent na jednom počítači, ale v rámci různých adresových prostorů DCOM Distributed COM PTE - Kompnentní technologie 58 PTE - Kompnentní technologie 60 15
16 COM Komunikace s komponentami (in-process) in-process component COM Rozhraní IUnknown Rozhraní identifikováno IID. Jak získat přístup ke konkrétnímu rozhraní? Každá COM komponenta implementuje rozhraní IUnknown (přímo nebo nepřímo) Metody: QueryInterface vrátí adresu implementace rozhraní se zadaným GUID AddRef zvýší počítadlo referencí Release sníží počítadlo a případně může uvolnit s paměti PTE - Kompnentní technologie 61 PTE - Kompnentní technologie 63 COM Komunikace s komponentami (out-of-process) COM Příklad komponenty (1) // File IRandom.h #pragma once #include "unknwn.h" // CB8DF8CB-3F6C-4c02-A C28487B DEFINE_GUID(IID_IRandom, 0xcb8df8cb, 0x3f6c,0x4c02,0xa5,0x87,0x18,0x56,0x6c,0x28,0x48,0x7b); out-of-process component interface IRandom : IUnknown virtual HRESULT STDMETHODCALLTYPE Start( int seed) = 0; virtual HRESULT STDMETHODCALLTYPE Next( int *val) =0; ; PTE - Kompnentní technologie 62 PTE - Kompnentní technologie 64 16
17 COM Příklad komponenty (2) #pragma once #include "IRandom.h class CRandomImpl : public IRandom public: // IUnknown STDMETHODIMP QueryInterface(REFIID, void **); STDMETHODIMP_(ULONG) AddRef(void); STDMETHODIMP_(ULONG) Release(void); // IRandom STDMETHODIMP Start(int seed); STDMETHODIMP Next(int* result); private: ULONG m_refcnt; ULONG m_seed; ; PTE - Kompnentní technologie 65 COM Použití COM komponenty (2) #define INITGUID #include "IRandom.h" #include <iostream> using namespace std; void main(int argc, char** argv) // initialize COM HRESULT hr = CoInitialize(NULL); if (FAILED(hr))... // create component instance IRandom *prnd = NULL; hr = CoCreateInstance(CLSID_RandomImpl, NULL, CLSCTX_ALL, IID_IRandom, (void **)&prnd); if (FAILED(hr))... // use the component prnd->start(1234); // release the komponent prnd->release(); // COM finalization CoUninitialize(); PTE - Kompnentní technologie 67 COM Použití COM komponenty (1) Client Application 1) Vytvoří se objekt 4) Volání poskytovaných metod 3) Vrátí ukazatel na rozhraní objektu (vptr) COM Object Server 2) Objekt se přiřadí k reálné implementaci COM Použití COM komponenty (3) 1. Je nutné inicializovat systém funkcí CoInitialize (COMPOBJ.DLL). 2. Je zavolána funkce CoCreateInstance. Jako argument je předán CLSID použitého objektu. Funkce: Použije registry k tomu, abychom identifikovali komponentu, kterou chceme vytvořit. Je vytvořena požadovaná instance komponenty. Třetí argument určuje, kde se komponenta vykonává (ve stejném adresovém prostoru, v jiném, na jiném počítači). Je volána ClassFactory (jde i jinak, získat příslušny factory objekt a volat přímo). Obdrží ukazatel na požadované rozhraní. PTE - Kompnentní technologie 66 PTE - Kompnentní technologie 68 17
18 COM Použití COM komponenty (4) 3. Získané rozhraní je určitě typu IUnknown. Můžeme požít QueryInterface k přístupu k dalším rozhraním. HRESULT QueryInterface(REFIID riid, void** ppv); 4. Použijeme metody Addref a Release k řízení životního cyklu komponenty. 5. Můžeme volat metody komponety. 6. Ukončíme voláním CoUninitalize. COM Tabulka virtuálních metod tabulka virtuálních metod PTE - Kompnentní technologie 69 PTE - Kompnentní technologie 71 COM Binární kompatibilita COM komponenty jsou kompatibilní na binární úrovni. Standardní způsob jak: uložit v paměti virtuální tabulku funkcí (vtable); volat funkce prostřednictvím vtable. Každý jazyk (C, C++, Small Talk, Ada, and dokonce Basic) který může volat funkce prostřednictvím ukazatelů, může být využit k realizaci komponent. Ty pak mohou spolupracovat s ostatními komponentami, které používají stejný binární standard. COM Znovupoužití komponent Component containment komponenta používá nějakou vnitřní komponentu Obě mají vlastní implementaci IUnknown Component aggregation Komponenta zpřístupňuje nějakou vnitřní komponentu Obě komponenty sdílí jednu implementaci IUnknown PTE - Kompnentní technologie 70 PTE - Kompnentní technologie 72 18
19 COM COM+(1).NET - Architektura.NET Zachovává vlastnosti COM/DCOM. Navíc přináší: Konfigurované komponenty Aplikační služby Automatické transakce- možnost nastavit konfigurací Just-in-time aktivace je využit kontextový objekt Object pooling možnost odložit nepotřebný objekt, uvolnit jej z paměti (stav je uložen do perzistentní paměti) Fronty volání Události PTE - Kompnentní technologie 73 PTE - Kompnentní technologie 75 COM COM+(2) Konfigurované komponenty Krom informací v registry přidán i katalog. Můžeme nastavovat vlastnosti komponenty. Například které aplikační služby má podporovat. Konfigurovaná komponenta je ta, která má záznam v katalogu Zaveden nový pojem kontext. Kontext je seskupení objektů se shodně nakonfigurovanými vlastnostmi. V rámci jednoho kontextu spolu mohou komunikovat COM objekty přímo, jinak musí použít proxy. Kontextový objekt Objekt reprezentující daný kontext..net -Součástí.NET Framework CLR společné běhové prostředí ADO.NET přístup k datům ASP.NET webové aplikace Windows Forms uživatelské rozhraní CLS společné vlastnosti jazyků CTS společné typové prostředí Programovací jazyky C#, PTE - Kompnentní technologie 74 PTE - Kompnentní technologie 76 19
20 .NET - Kompilace v prostředí.net.net -Historie 1998 první zprávy o novém jazyce COOL červen 2000 uvolnění specifikace C# červenec NET Framework SDK listopad 2000 zahájení standardizace ECMA-334 (C#), 335 (CLI) leden 2002 finální podoba.net Dnes verze 2.x připravuje se 3.0 Autoři: Anders Hejlsberg (Turbo Pascal, Delphi), Scott Wiltamuth, Peter Golde PTE - Kompnentní technologie 77 PTE - Kompnentní technologie 79.NET - Knihovny.NET C# - Vlastnosti jazyka C# (1) Podpora vývoje založeného na komponentách přímá podpora základních konstrukcí (vlastnosti, metody, události) metadata + atributy integrované verzování komponent integrovaná XML dokumentace PTE - Kompnentní technologie 78 PTE - Kompnentní technologie 80 20
21 C# - Vlastnosti jazyka C# (2) Moderní objektově orientovaný jazyk veškeré očekávané vlastnosti delegát bezpečné předávání funkcí jako parametrů přetěžování operátorů, uživatelské konverze, obyčejná pole rozsáhlý systém knihoven tříd jednotný typový systém hodnotové referenční typy (boxing / unboxing) C# - Vlastnosti jazyka C# (4) Pragmatický přístup žádná revoluce v syntaxi jazyka práce s ukazateli, přetypování, přímé přidělování paměti na zásobníku nutnost speciálních privilegií spolupráce s existujícími komponentami COM, DLL PTE - Kompnentní technologie 81 PTE - Kompnentní technologie 83 C# - Vlastnosti jazyka C# (3) Vývoj robustních a trvanlivých aplikací typová bezpečnost automatická správa paměti jednotný systém výjimek možnost nezávislého verzování bázových tříd kontroly rozsahů polí, aritmetické kontroly C# -Příklad using System; namespace Priklady /// <summary> /// Summary description for Priklad /// </summary> class Priklad /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main(string[] args) Console.WriteLine( Hello World! ); PTE - Kompnentní technologie 82 PTE - Kompnentní technologie 84 21
22 C# -Datovétypy(1) Hodnotové typy obsahují přímo data přiřazením vzniká kopie hodnoty sbyte, byte - 10, 3u, 0x00ff short, ushort, int, uint, long, ulong L char a, \x0041, \n float, double, decimal - 1.5f, 1e-3m, 6.67e-23d bool true, false C# -Datovétypy(3) Výčtový typ množina pojmenovaných konstant enum DnyTydne Pondeli, Utery, Stredam ; enum Dny : byte ; Dny dnes = Dny.Nedele; PTE - Kompnentní technologie 85 PTE - Kompnentní technologie 87 C# -Datovétypy(2) struktura (struct) Hodnotový typ Jako třída, ale bez dědičnosti struct Komplex public float real; public float imag; C# -Datovétypy(4) Referenční typy neuchovávají hodnotu, ale odkaz na hodnotu hodnota null přiřazením nevzniká kopie hodnoty, ale jen odkazu Typy object, string, třída (class), rozhraní(interface), pole a delegát(delegate) Ukazatele PTE - Kompnentní technologie 86 PTE - Kompnentní technologie 88 22
23 C# -Datovétypy(5) Pravidelná pole Klasická pole jako v C/C++ Stejný počet prvků ve všech řádcích int [,] mat1 = new int[5,10]; mat1[2,3] = 15; Nepravidelná pole Pole polí jako v Javě int[][] mat2 = new int [5][]; mat2[2] = new int[7]; mat[2][3] = 15; C# -Operátory Primární - (x) x.y f(x) a[x] x++ x-- new typeof sizeof checked unchecked Unární - + -! ~ ++x --x (T)x Multiplikativní - * / % Aditivní if (someobject is SomeInterface) Posuvu - << >> return someobject; Relační - < > <= >= is as else Rovnosti - ==!= return null; Logické bitové - & ^ Logické spojky - && Podmínečné -?: Přiřazovací - = += -= *= /= %= &= = ^= <<= >>= PTE - Kompnentní technologie 89 PTE - Kompnentní technologie 91 C# - Výrazy a příkazy Jako C/C++/Java Console.WriteLine( ahoj +Priklad.f(5*6)); Příkaz switch nelze přecházet mezi větvemi Příkaz goto Průchod kolekcí nebo polem příkaz foreach foreach(t x in IEnumerable) IEnumerable ie=coll.getenumerator(); while( ie.movenext() ) T x=(t)ie.current(); C# - Jmenné prostory using SomeNamesapce; using AnotherNamesapce; namespace A class Class1 class Class2 namespace B namespace C class Class1 PTE - Kompnentní technologie 90 PTE - Kompnentní technologie 92 23
24 C# -Třídy a rozhraní Obsahuje: položky; metody; vlastnosti; indexery; operátory; události. Modifikátory přístupu: private, protected, internal, public Další modifikátory: static, sealed, abstract class, interface IName - konvence pro pojmenování rozhraní C# - Indexery class SetOfPoints Point[] points; public SetOfPoints(int size) points=new Point[size]; public Point this[int index] set if (index<points.length) points[index]=value; get if (index<=points.length) return points[index]; else return new Point(0,0); PTE - Kompnentní technologie 93 PTE - Kompnentní technologie 95 C# -Třídy class Point private short x, y; //data public short X //vlastnost get return x; set x = value; public short GetY //metoda return y; PTE - Kompnentní technologie 94 C# - Přetěžování operátorů class Test protected string text; public string Text get return this.text; set this.text=value; public static Test operator + (Test t1,test t2) return new Test(t1.Text+","+t2.Text); PTE - Kompnentní technologie 96 24
25 C# -Dědičnost a polymorfismus class A public void SomeMethod() public virtual void AnotherMethod() class B : A public new void SomeMethod() //původní metoda je překryta public override void AnotherMethod() A a=new B(); a.somemethod(); //zpustí původní metodu třídy A a.anothermethod(); //zpustí metodu třídy B PTE - Kompnentní technologie 97 C# - Výjimky try catch (System.FileException e) catch (System.Exception e) finally PTE - Kompnentní technologie 99 C# - konstruktory a destruktory Stejné jméno jako třída public Bod(int x, int y) x=0; y=0; Lze přetěžovat public SomeName( ):base( ) Statické konstruktory Není zaručeno pořadí volání static A() Konstruktor se volá automaticky Destruktor se volá při zrušení objektů garbage collector PTE - Kompnentní technologie 98 C# - Delegáti (1) Typově bezpečný ukazatel na funkci call-back metody Delegáti se používají jako metody pro událostní programování Deklarace: modifiers delegate type delegatsname (parameter1,...); Před použitím je potřeba delegáta instanciovat svážeme jej s konkrétní funkcí PTE - Kompnentní technologie
26 C# - Delegáti (2) class Text string text; public Text(string text) this.text=text; public delegate void SomePrefix(); public void WriteIt(SomePrefix prefix) prefix(); //jako běžná metoda Console.WriteLine(text); C# - Delegáti (4) class RunApp static void Main() Text text=new Text("Hello"); Text.SomePrefix simpleprefix=new Text.SomePrefix(PrefixBuilder.SimplePrefix); PrefixBuilder prefixbuilder=new PrefixBuilder(); Text.SomePrefix niceprefix=new Text.SomePrefix(prefixBuilder.NicePrefix); text.writeit(simpleprefix); text.writeit(niceprefix); ## Hello >-how nice-> Hello PTE - Kompnentní technologie 101 PTE - Kompnentní technologie 103 C# - Delegáti (3) class PrefixBuilder public static void SimplePrefix() Console.Write("## "); public void NicePrefix() Console.Write(">-how nice-> "); C# - Kompozice delegátů Delegát nemusí být interně spojen jen s jednou metodou kompozici provedeme pomocí operátorů + a. Text.SomePrefix greatprefix=simpleprefix + niceprefix + simpleprefix; text.writeit(greatprefix); greatprefix-=niceprefix; text.writeit(greatprefix); Výstup programu bude: ## >-how nice-> ## Hello ## ## Hello PTE - Kompnentní technologie 102 PTE - Kompnentní technologie
27 C# - Události (1) Zpracování událostí realizováno pomocí delegátů Delegát musí mít dva parametry a oba jsou objekty První udává kdo je zdrojem události Druhý obsahuje informace spojené s konkrétní událostí - třída EventArgs Definice události je součástí třídy: event JmenoDelegata JmenoUdalosti; C# - Události (3) class Producer string name; public Producer(string name) this.name=name; public string Name get return name; public delegate void WantToKnow(Producer source,infoeventargs args); public event WantToKnow ItemProduced; public void Produce(string productname) Console.WriteLine("Production of "+productname+" started."); InfoEventArgs info=new InfoEventArgs(productName); Console.WriteLine("Production of "+productname+" ended."); //vyvolání události if (ItemProduced!=null) ItemProduced(this,info); PTE - Kompnentní technologie 105 PTE - Kompnentní technologie 107 C# - Události (2) class InfoEventArgs : EventArgs private string info; public InfoEventArgs(string info) this.info=info; public string Info get return info; C# - Události (4) class Customer string name; public Customer(string name,producer producer) this.name=name; //registrace producer.itemproduced+=new Producer.WantToKnow(NewItemProduced); public void NewItemProduced(Producer producer,infoeventargs info) //skutečná obsluha události Console.WriteLine(this.name+": "+producer.name+ produce item:"+info.info); PTE - Kompnentní technologie 106 PTE - Kompnentní technologie
28 C# - Události (5) class RunApp public static void Main() Producer producer=new Producer("Haven inc."); Customer marek=new Customer("Marek",producer); Customer tom=new Customer("Tom",producer); producer.produce("ferrari"); producer.produce("pencil"); producer.produce("cake"); C# - Atributy Platforma.NET definuje možnost asociovat libovolné informace (metadata) se zdrojovým kódem aplikace - atributy. Tyto metadata jsou pak součástí assembly. Tyto metadata jsem v aplikaci schopni získat pomocí mechanismu reflexe. Příklad [assembly: AssemblyVersion("1.0.*")] PTE - Kompnentní technologie 109 PTE - Kompnentní technologie 111 C# - Události (6) Production of Ferrari started. Production of Ferrari ended. Marek: Haven inc. produce item:ferrari Tom: Haven inc. produce item:ferrari Production of pencil started. Production of pencil ended. Marek: Haven inc. produce item:pencil Tom: Haven inc. produce item:pencil Production of cake started. Production of cake ended. Marek: Haven inc. produce item:cake Tom: Haven inc. produce item:cake Komponenty v.net - Rozdíly mezi COM a.net Neexistuje žádné bázové rozhraní jako IUnknown. Komponenty se vytvářejí přímo, ne přes class factory (metoda CoCreateInstance). Nepoužívají se čítače odkazů. Všechny informace o rozhraní jsou obsaženy ve zdrojovém programu, nepoužívá se IDL. Identifikace komponent nevychází z GUID, ale z namespace a pro sdílené komponenty i z digitálního podpisu (strong name). PTE - Kompnentní technologie 110 PTE - Kompnentní technologie
29 Komponenty v.net - Distribuce komponent Základní jednotka je assembly Jednodušší instalace pouhým kopírováním. Jednotka verzování a zabezpečení Forma DLL nebo EXE Předchází problémům souhrnně označovaným jako DLL Hell. Může obsahovat několik fyzických modulů Komponenty každá třída může být komponentou Další zdroje ikony, obrázky, řetězce Metadata + manifest Assembly Linker AL.exe Komponenty v.net -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 strong name. PTE - Kompnentní technologie 113 PTE - Kompnentní technologie 115 Komponenty v.net - Manifest Assembly 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. Komponenty v.net - Strong name (1) Pojmenování pro podepsanou assembly Významný bezpečnostní prvek Jen assembly s podepsaným jménem mohou být v GAC Politika verzí Utilita sn.exe PTE - Kompnentní technologie 114 PTE - Kompnentní technologie
30 Komponenty v.net - Strong name (2) Pomocí IDE [assembly: AssemblyKeyFile(<cesta k souboru s podpisem>)] [assembly: AssemblyKeyName(<název klíče v úložišti klíčů>)] [assembly: AssemblyDelaySign(<true false>)] Příkazovou řádkou csc.exe /out:testsignedassembly.mod /t:module /r:testsignedlibrary.dll TestSignedAssembly.cs AnotherClass.cs al.exe /out:testsignedassembly.exe /t:exe /win32icon:app.ico /main:testsignedassembly.testsignedassembly.main /keyf:lnavratcert.snk /link:obrazek.bmp TestSignedAssembly.mod Komponenty v.net - Komponenty ve Visual Studio (1) Vytváření komponenty Projekt typu Class Library Použití komponenty Add Reference import definice typů a komponent z jiných knihoven (systémových nebo vlastních) Main program Windows Application GUI Console Application příkazový řádek PTE - Kompnentní technologie 117 PTE - Kompnentní technologie 119 Komponenty v.net - Strong name (3) Komponenty v.net - Komponenty ve Visual Studio (2) Posledních 8B hash hodnoty z veřejného klíče PTE - Kompnentní technologie 118 PTE - Kompnentní technologie
31 Komponenty v.net - Komponenty ve Visual Studio (3) Komponenty v.net - Programování založené na rozhraních (2) Implicitní přetypování public interface IMyInterface void Method1(); public class MyClass: IMyInterface void Method1() IMyInterface obj = (IMyInterface)new MyClass(); obj.method1(); PTE - Kompnentní technologie 121 PTE - Kompnentní technologie 123 Komponenty v.net - Programování založené na rozhraních (1) Rozhraní = specifikace kontraktu Referenční typ Má pouze veřejné členy metody, vlastnosti, indexery, události Nemá implementaci, konstruktory, a nelze vytvářet instance Class = implementace kontraktu Může dědit pouze z jedné třídy Může implementovat více rozhraní Může navíc obsahovat proměnné, konstanty, Komponenty v.net Příklad (1) using System; namespace PTE public class Counter // event maximal value reached public event EventHandler LimitReached; public Counter(int limit) this.limit = limit; PTE - Kompnentní technologie 122 PTE - Kompnentní technologie
32 Komponenty v.net Příklad (2) // counter value private int val; public int Value get return val; set val = value; // maximum value private int limit; public int Limit get return limit; set limit = value; Komponenty v.net Komponenty GUI v.net (1) namespace System.Windows.Forms komponenty pro lokální aplikace nahrazuje C++ MFC (MS Foundation Classes) namespace System.Web.UI komponenty pro webové aplikace System.Web.UI.HtmlControls System.Web.UI.WebControls součást ASP.NET PTE - Kompnentní technologie 125 PTE - Kompnentní technologie 127 Komponenty v.net Příklad (2) // increment counter and check overflow public void increment() val++; if( val >= limit ) if( LimitReached!= null ) LimitReached(this, EventArgs.Empty); val = 0; PTE - Kompnentní technologie 126 PTE - Kompnentní technologie
33 Komponenty v.net Komponenty GUI v.net (3) Windows.Forms.Label label1 = new Windows.Forms.Label(); label1.location = new Drawing.Point(24, 24); label1.name = "label1"; label1.size = new Drawing.Size(56, 24); label1.tabindex = 0; label1.text = "Login"; Controls.add(label1); Komponenty v.net COM interoperability (1) Použití existující COM komponenty v.net aplikaci. Nejprve je nutné COM komponentu registrovat v registry (nástroj regsvr32.exe). Vytvoříme nový projekt v jazyce C#. V okně Solution Explorer aplikace Visual Studio vybereme položku Add Reference. Najdeme příslušnou COM komponentu. Reference na tuto komponentu byla přidána a lze ji normálně používat (tedy instanciovat a pak volat její metody,...). PTE - Kompnentní technologie 129 PTE - Kompnentní technologie 131 Komponenty v.net Spolupráce s existujícím kódem Autoři platformy.net a jazyka C# umožnili programátorům použít stávající programy. Používáme-li takovéto programy, zříkáme se výhod, které poskytuje CLR. Hovoříme pak o neřízeném kódu. Spolupráce s komponentami modelu COM - schopnost prostředí.net používat komponenty modelu COM a naopak komponentám modelu COM používat prvky prostředí.net. Spolupráce s běžnými knihovnami DLL - tyto služby umožňují programátorům v prostředí.net používat knihovny DLL. Nezabezpečený kód - umožňuje programátorům v jazyce C# používat například ukazatele. Takto vytvořený program není spravován CLR systému.net. Komponenty v.net COM interoperability (2) Řekněme, že máme zaregistrovánu COM komponentu example.dll. Tato komponenta je přístupná přes rozhraní IExample. interface Interface IExample int getnumber(); Reference na tuto komponentu pak bude: EXAMPLELib.Example. EXAMPLELib.Example example = new EXAMPLELib.Example(); PTE - Kompnentní technologie 130 PTE - Kompnentní technologie
34 Komponenty v.net COM interoperability (3) Použití.NET komponenty na místo COM komponenty. Vytvoříme nový C# projekt typu Class Library. Komponentu musíme zaregistrovat v Registry. K tomu složí nástroj regasm.exe. Pro programy, které pracují s typovanými knihovnami lze vygenerovat potřebny.tlb soubor nástrojem tlbexp.exe Pak lze tuto komponentu využívat stejně jako COM komponentu. Komponenty v.net Spolupráce s běžnými knihovnami DLL (2) using System; using System.Runtime.InteropServices; class RunApp [DllImport("user32.dll")] static extern int MessageBoxA(int hwnd, string msg,string caption,int type); static void Main(string[] args) MessageBoxA(0,"Hello world!","c# is calling!",0); PTE - Kompnentní technologie 133 PTE - Kompnentní technologie 135 Komponenty v.net Spolupráce s běžnými knihovnami DLL (1) Platform Invocation Services (PInvoke) - tyto služby umožňují řízenému kódu pracovat s knihovnami a funkcemi exportovanými z dynamických knihoven. Knihovna DLL je importovaná pomocí atributu DllImport. Importované funkce musí být označeny jako externí (klíčové slovo extern). PTE - Kompnentní technologie
Architektura COM. Historie Component Object Model (COM) Komunikace s komponentami Rozhraní komponent COM komponenty v.net.
Architektura COM doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah přednášky Historie Component Object Model (COM)
Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní
Základy jazyka C# doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah přednášky Architektura.NET Historie Vlastnosti
Komponenty v.net. Obsah přednášky
doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah přednášky Rozdíl mezi COM a.net Distribuce komponent Programování
Technologie JavaBeans
Technologie JavaBeans doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Historie Komponentový model Typy komponent
Komponentní technologie
Komponentní technologie doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Motivace Aplikace v IT Vývoj přístupů
Softwarové komponenty a Internet
Softwarové komponenty a Internet Doc. Dr. Ing. Miroslav Beneš Katedra informatiky FEI VŠB-TU Ostrava Miroslav.Benes@vsb.cz Obsah přednášky Motivace Vývoj přístupů k tvorbě programů Definice komponenty
Komponentní technologie. Ing. Marek Běhálek Katedra informatiky FEI VŠB-TUO A-1018 /
Komponentní technologie 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 Obsah kapitoly Komponentní technologie Java Beans Technologie
Komponentní technologie
Komponentní technologie 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 Obsah kapitoly Komponentní technologie Java Beans Technologie
Zápis programu v jazyce C#
Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač
Tvorba informačních systémů
Tvorba informačních systémů Michal Krátký 1, Miroslav Beneš 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006 Michal Krátký, Miroslav Beneš Tvorba informačních
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE
TÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 25. Otázka : Komponentní technologie - základní pojmy a principy, metody specifikace komponent. Obsah : 1. Základní pojmy 1.1 Komponenta Komponenta
Programovací jazyk Úvod do programování v C#
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
Programovací jazyk C# Úvod do programování v C#
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
Programovací jazyk C# Úvod do programování v C#
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
14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
Generické programování
Generické programování Od C# verze 2.0 = vytváření kódu s obecným datovým typem Příklad generická metoda, zamění dva parametry: static void Swap(ref T p1, ref T p2) T temp; temp = p1; p1 = p2; p2 =
Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15
Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové
8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním
Úvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
Semináˇr Java X J2EE Semináˇr Java X p.1/23
Seminář Java X J2EE Seminář Java X p.1/23 J2EE Složitost obchodních aplikací robusní, distribuované, spolehlivé aplikace s transakcemi na straně serveru, klientské aplikace co nejjednodušší Snaha : Návrh,
Architektury informačních systémů
Architektury informačních systémů doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes/vyuka/tis Miroslav.Benes@vsb.cz Obsah přednášky Co je to
Architektury informačních systémů
Architektury informačních systémů doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes/vyuka/tis Miroslav.Benes@vsb.cz Obsah přednášky Co je to
1 - Úvod do platformy.net. IW5 - Programování v.net a C#
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í
PŘETĚŽOVÁNÍ OPERÁTORŮ
PŘETĚŽOVÁNÍ OPERÁTORŮ Jazyk C# podobně jako jazyk C++ umožňuje přetěžovat operátory, tj. rozšířit definice některých standardních operátorů na uživatelem definované typy (třídy a struktury). Stejně jako
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Nové jazykové brány do Caché. Daniel Kutáč
Nové jazykové brány do Caché Daniel Kutáč O čem budeme mluvit.net T/SQL Perl Python MultiValue Basic Téma.NET provider .NET Provider Co lze již dnes Factory / VisM ODBC.NET Web Services Factory a VisM
Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25
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
TŘÍDY POKRAČOVÁNÍ. Události pokračování. Příklad. public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e);
TŘÍDY POKRAČOVÁNÍ Události pokračování public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e); class Bod private int x; private int y; public event ZmenaSouradnicEventHandler ZmenaSouradnic;
PREPROCESOR POKRAČOVÁNÍ
PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,
Osnova přednášky. Programové prostředky řízení Úvod do C# II. Přístup ke členům. Členy (Members)
Osnova přednášky Programové prostředky řízení Úvod do C# II. Členy (Members) Jmenné prostory (Namespaces) Třídy (Classes) Struktury (Structs) Pavel Balda Západočeská univerzita v Plzni, FAV, KKY 2 Členy
Maturitní otázky z předmětu PROGRAMOVÁNÍ
Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti
Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML
Obsah přednášky Webové služby a XML Miroslav Beneš Co jsou to webové služby Architektura webových služeb SOAP SOAP a Java SOAP a PHP SOAP a C# Webové služby a XML 2 Co jsou to webové služby rozhraní k
(Enterprise) JavaBeans. Lekce 7
(Enterprise) JavaBeans Lekce 7 JavaBeans vs. Enterprise JavaBeans (EJB) JavaBeans technologie: jedná se o tzv. komponentní architekturu určenou pro JSE platformu určená pro tvorbu JSE GUI programů pomocí
typová konverze typová inference
Seminář Java Programování v Javě II Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Programování v Javě (2) 1/ 36 Téma přednášky Rozhraní: použití, dědičnost Hierarchie
RMI - Distribuované objekty v Javě
Vysoká škola báňská - Technická univerzita Ostrava 30. března 2009 Osnova Co je to RMI? 1 Co je to RMI? 2 Vnější pohled Vrstvy RMI Stub & Skeletons Layer Remote Reference Layer Transport Layer Pojemnování
Jazyk C# (seminář 6)
Jazyk C# (seminář 6) Pavel Procházka KMI 29. října 2014 Delegát motivace Delegáty a události Jak docílit v C# funkcionální práce s metodami v C je to pomocí pointerů na funkce. Proč to v C# nejde pomocí
Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13
Obsah Úvod 11 Platforma.NET 11.NET Framework 11 Visual Basic.NET 12 1 Základní principy a syntaxe 13 Typový systém 13 Hodnotové typy 13 Struktury 15 Výčtové typy 15 Referenční typy 15 Konstanty 16 Deklarace
Tvorba informačních systémů
Tvorba informačních systémů Michal Krátký 1, Miroslav Beneš 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006 Michal Krátký, Miroslav Beneš Tvorba informačních
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Bridge. Známý jako. Účel. Použitelnost. Handle/Body
Bridge Bridge Známý jako Handle/Body Účel odděluje abstrakci (rozhraní a jeho sémantiku) od její konkrétní implementace předchází zbytečnému nárůstu počtu tříd při přidávání implementací používá se v době
Teoretické minimum z PJV
Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov
Programování v Javě I. Leden 2008
Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Programování v Javě (1) 1/ 45 Téma přednášky Datové typy Deklarace třídy Modifikátory
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Programování v Javě I. Únor 2009
Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Únor 2009 Radek Kočí Seminář Java Programování v Javě (1) 1/ 44 Téma přednášky Datové typy Deklarace třídy Modifikátory
JAVA JavaBeans Java, letní semestr
JAVA JavaBeans Komponenty přehled komponenta znovupoužitelný kus kódu charakterizována službami, které poskytuje a požaduje není přesná definice komponentové modely JavaBeans Enterprise JavaBeans (EJB)
Abstraktní datové typy: zásobník
Abstraktní datové typy: zásobník doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Abstraktní datové typy omezené rozhraní
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.
1 Grafické rozhraní Studijní cíl Tento blok je věnován vytváření programů s využitím grafického rozhraní (GUI). Vysvětlen bude základní filozofie pro vytváření aplikací s GUI ve srovnání s konzolovými
Úvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
RMI Remote Method Invocation
2. cvičení RMI Remote Method Invocation 2007/09 ver.2.0 1 RMI co to je? vyvolání metody z jiné JVM lokalizace vzdáleného objektu komunikace se vzdálenými objekty přenos objektu v bytecode typicky klient
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
X33EJA Web Services. Martin Ptáček, KOMIX s.r.o.
X33EJA Web Services Martin Ptáček, KOMIX s.r.o. ptacek@komix.cz Copyright 2007 KOMIX Copyright s.r.o. 2007 KOMIX s.r.o. 1. Obsah Historie Co jsou Web Services? Co je to SOA? JAX-WS (Java API for XML Web
Úvod do Web Services
Úvod do Web Services Základy webových služeb a jejich implementace na platformě OS/2 Jarda Kačer jarda@kacer.biz Český Warpstock 2008 Brno, 20.-21.9.2008 Co je to webová služba? Část business logiky přístupná
Úvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39
Programování v C# Hodnotové datové typy, řídící struktury Petr Vaněček 1 / 39 Obsah přednášky Referenční datové typy datové položky metody přístupové metody accessory, indexery Rozhraní Pole 2 / 39 Třídy
ADT/ADS = abstraktní datové typy / struktury
DT = datové typy obor hodnot, které může proměnná nabývat, s operacemi na tomto oboru určen: obor hodnot + výpočetní operace např. INT = { 2 147 483 648 až +2 147 483 647} + {+,,*,/,} ADT/ADS = abstraktní
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/04.0006
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/04.0006 Lekce 1 Jazyk Java Tento projekt je spolufinancován Evropským sociálním fondem
Základy objektové orientace I. Únor 2010
Seminář Java Základy objektové orientace I Radek Kočí Fakulta informačních technologií VUT Únor 2010 Radek Kočí Seminář Java Základy OO (1) 1/ 20 Téma přednášky Charakteristika objektově orientovaných
Seznámení s prostředím dot.net Framework
Základy programování v jazyce C# Seznámení s prostředím dot.net Framework PL-Prostředí dot.net - NET Framework Je základním stavebním prvkem, na kterém lze vytvářet software. Jeho součásti a jádro je založené
Skriptovací jazyky. Obsah
Skriptovací jazyky doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Co je to skriptovací jazyk? Výhody a nevýhody
Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20
Obsah 5 Obsah Předmluva k aktuálnímu vydání 15 1 Úvod k prvnímu vydání z roku 2000 16 Typografické a syntaktické konvence................ 20 2 Základní pojmy 21 2.1 Trocha historie nikoho nezabije................
VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky
JAVA Třídy Definice třídy úplná definice [public] [abstract] [final] class Jmeno [extends Predek] [impelements SeznamInterfacu] {... // telo tridy public veřejná třída abstract nesmí být vytvářeny instance
Integrace OpenOffice.org a Javy. CZJUG, , Robert Vojta
Integrace OpenOffice.org a Javy CZJUG, 15.12.2008, Robert Vojta Obsah Část 1 - Teorie Úvodní informace, definice pojmů Dokumentace, Java Language Binding Pomocné nástroje Část 2 - Praktické ukázky Lokální
Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth
Evropský sociální fond. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace Ing. Ondřej Guth Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze
Obsah přednášky. Technologie. Enterprise Java Beans. Enterprise Java Beans. EJB kontejner. Enterprise Java Beans (EJB)
Obsah přednášky Technologie Miroslav Beneš Popis technologie EJB J2EE aplikace Typy komponent Entity Beans Session Beans Message-Driven Beans Java Messaging Service (JMS) Závěr 2 (EJB) EJB kontejner Specifikace
Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz
Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz Upozornění pro čtenáře a uživatele této knihy Všechna práva vyhrazena. Žádná část této tištěné či elektronické knihy nesmí být reprodukována a šířena
Algoritmizace a programování
Algoritmizace a programování Struktura programu Vytvoření nové aplikace Struktura programu Základní syntaktické elementy První aplikace Verze pro akademický rok 2012/2013 1 Nová aplikace NetBeans Ve vývojovém
NMIN201 Objektově orientované programování 1 / :36:09
NMIN201 Objektově orientované programování 1 / 26 8.10.2013 15:36:09 Objekty Svět se skládá z objektů! konkrétní x abstraktní hmatatelné x nehmatatelné (letadlo) x (chyba v programu) Objekty mohou obsahovat
Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU 8.6.2011
Technologie Java Enterprise Edition Přemek Brada, KIV ZČU 8.6.2011 Přehled tématu Motivace a úvod Infrastruktura pro velké Java aplikace (Java základní přehled) Části třívrstvé struktury servlety, JSP
Výčtový typ strana 67
Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce
Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií
1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední
java remote method invocation Kateřina Fricková, Matouš Jandek
java remote method invocation Kateřina Fricková, Matouš Jandek Distribuovaný systém počítačový systém, ve kterém jsou jednotlivé komponenty propojeny počítačovou síťí komponenty systému sdílí cíl, kterého
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
1. Programování proti rozhraní
1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní
Michal Krátký, Miroslav Beneš
Tvorba informačních systémů 1/20 Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2008/2009 Tvorba informačních
Tvorba informačních systémů
Tvorba informačních systémů Michal Krátký 1, Miroslav Beneš 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2006/2007 c 2005-2007 Michal Krátký, Miroslav Beneš Tvorba
UJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/
UJO Framework revoluční architektura beans verze 0.80 http://ujoframework.org/ Pavel Pone(c), září 2008 Historie rok 2004 upravené objekty z frameworku Cayenne nevýhodou byla špatná typová kontrola rok
Programování v C++ 2, 4. cvičení
Programování v C++ 2, 4. cvičení statické atributy a metody, konstruktory 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Přístupová práva
NPRG031 Programování II 1 / :25:46
NPRG031 Programování II 1 / 26 28. 2. 2018 11:25:46 Objekty Svět se skládá z objektů! konkrétní x abstraktní hmatatelné x nehmatatelné (letadlo) x (chyba v programu) Objekty mohou obsahovat jiné objekty
Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí
Kolekce obecně Seznamy a iterátory doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Kolekce ::= homogenní sada prvků
PB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
PB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
Aplikace s grafickým uživatelským rozhraním
Aplikace s grafickým uživatelským rozhraním doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz 1 Typy aplikací Konzolová
Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U
Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U P R O G R A M O V É V Y B A V E N Í Studijní obor: 18-20-M/01 Informační technologie Školní
Vytváření a použití knihoven tříd
Vytváření a použití knihoven tříd doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Prostory jmen motivace spolupráce
1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services
13. Webové služby. K čemu slouží? Popis a vyhledávání služeb. Co je a k čemu slouží orchestrace a choreografie služeb. Technologie pro implementaci služeb 1. Webové služby. K čemu slouží? Definice WS -
Seminář Java II p.1/43
Seminář Java II Seminář Java II p.1/43 Rekapitulace Java je case sensitive Zdrojový kód (soubor.java) obsahuje jednu veřejnou třídu Třídy jsou organizovány do balíků Hierarchie balíků odpovídá hierarchii
Využití OOP v praxi -- Knihovna PHP -- Interval.cz
Page 1 of 6 Knihovna PHP Využití OOP v praxi Po dlouhé teorii přichází na řadu praxe. V následujícím textu si vysvětlíme možnosti přístupu k databázi pomocí různých vzorů objektově orientovaného programování
11.5.2012. 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
Obsah přednášky 9 Základy programování (IZAPR, IZKPR) Přednáška 9 Základy dědičnosti, přístupová práva Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií
Programovací jazyky Přehled a vývoj
Programovací jazyky Přehled a vývoj 1 Programování a programovací jazyk Historie a současnost programovacích jazyků Objektově orientované a vizuální programování Značkovací a skriptovací jazyky 2 Programování
Objektové programování
Objektové programování - přináší nové možnosti a styl programování - vytváří nový datový typ, který umí vše co standardní datové typy + to co ho naučíme - překladač se k tomuto typu chová stejně jako k
Úvod. Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne.
Úvod Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne. Organizace předmětu Materiály k předmětu -Web stránky: http://cw.felk.cvut.cz/doku.php/courses/x33eja/start
ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server
ADMINISTRACE POČÍTAČOVÝCH SÍTÍ OPC Server Funkce a využití v průmyslové automatizaci Jiří NOSEK 2011 Co je OPC Server? OPC = Open Process Control (původně OLE for Process Control) sada specifikací průmyslového
24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1
24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE
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
Ú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 KAPITOLA 1 Na úvod o Javě 15 Počítačový program 15 Vysokoúrovňový programovací
Tvorba informačních systémů
Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2007/2008 c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních
IRAE 07/08 Přednáška č. 7. Začátek (head)
Fronta (Queue) FIFO First In First Out (první dovnitř první ven) Vložení položky (Enqueue) Vyjmutí položky (Dequeue) Přidávání prvků Konec (Tail) Začátek (head) na jedné straně (konec) Odebírání prvků
PROGRAMOVÁNÍ V C++ CVIČENÍ
PROGRAMOVÁNÍ V C++ CVIČENÍ INFORMACE Michal Brabec http://www.ksi.mff.cuni.cz/ http://www.ksi.mff.cuni.cz/~brabec/ brabec@ksi.mff.cuni.cz gmichal.brabec@gmail.com PODMÍNKY ZÁPOČTU Základní podmínky společné
Michal Krátký, Miroslav Beneš
Tvorba informačních systémů 1/32 Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2008/2009 Tvorba informačních