VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ
|
|
- Bohumila Fišerová
- před 8 lety
- Počet zobrazení:
Transkript
1 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV TELEKOMUNIKACÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF TELECOMMUNICATIONS INTERNETOVÉ APLIKACE V.NET FRAMEWORK BAKALÁŘSKÁ PRÁCE BACHELOR'S THESIS AUTOR PRÁCE AUTHOR MIROSLAV VOLOVEC BRNO 2010
2 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV TELEKOMUNIKACÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF TELECOMMUNICATIONS INTERNETOVÉ APLIKACE V.NET FRAMEWORK INTERNET APPLICATIONS IN.NET FRAMEWORK BAKALÁŘSKÁ PRÁCE BACHELOR'S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR MIROSLAV VOLOVEC doc. Ing. IVO LATTENBERG, Ph.D. BRNO 2010
3 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta elektrotechniky a komunikačních technologií Ústav telekomunikací Bakalářská práce bakalářský studijní obor Teleinformatika Student: Miroslav Volovec ID: Ročník: 3 Akademický rok: 2009/2010 NÁZEV TÉMATU: Internetové aplikace v.net Framework POKYNY PRO VYPRACOVÁNÍ: V jazyce C# pomocí vývojového nástroje Microsoft Visual Studio 2008 navrhněte a odlaďte projekt realizující pokročilý Instant Messenger s doprovodnými službami. Projekt koncipujte po dílčích částech, tak aby byl po přidání každé části funkční a bylo možné jej použít ve výuce jako vzorový projekt. Zdrojové kódy řádně okomentujte. DOPORUČENÁ LITERATURA: [1] PROSISE, J. Programování v Microsoft.NET, Nakladatelství Computer Press, a.s. 2003, 736 s., ISBN [2] BELLINASO M. Webové programování v ASP.NET 2.0 problém, návrh, řešení, Computer Press 2008, 648 s., ISBN [3] LACKO L. ASP.NET a ADO.NET 2.0 Hotová řešení, Computer Press 2006, 385 s., ISBN Termín zadání: Termín odevzdání: Vedoucí práce: doc. Ing. Ivo Lattenberg, Ph.D. prof. Ing. Kamil Vrba, CSc. Předseda oborové rady UPOZORNĚNÍ: Autor bakalářské práce nesmí při vytváření bakalářské práce porušit autorská práva třetích osob, zejména nesmí zasahovat nedovoleným způsobem do cizích autorských práv osobnostních a musí si být plně vědom následků porušení ustanovení 11 a následujících autorského zákona č. 121/2000 Sb., včetně možných trestněprávních důsledků vyplývajících z ustanovení části druhé, hlavy VI. díl 4 Trestního zákoníku č.40/2009 Sb.
4 ABSTRAKT Tato práce ukazuje široké možnosti použití.net Frameworku. Obsahuje popis tvorby systému odesílání rychlých zpráv. Popis tohoto systému zahrnuje tvorbu servisně orientované aplikace, webového klienta a nakonec i Windows aplikaci vytvořenou pomocí WPF. Cílem je ukázat možnosti tvorby softwaru pomocí inovativních postupů a nástrojů, které platforma Microsoft.NET nabízí. KLÍČOVÁ SLOVA.NET, Rychlé zprávy, databáze, aps.net, wpf, wcf, mssql ABSTRACT This work shows wide possibilities of.net Framework usage. Describes development of instant messaging system. Description of this system includes production of service oriented application, web client and finally Windows application made with WPF. It s target is to show possibilities of software development using innovative methods and tools, that the Microsoft.NET platrofm offers KEYWORDS.NET, Instant Messaging, database, asp.net, wpf, wcf, mssql VOLOVEC, Miroslav Internetová aplikace v.net: bakalářská práce. Brno: Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologíı, Ústav telekomunikací, s. Vedoucí práce byl doc. Ing. Ivo Lattenberg, Ph.D.
5 PROHLÁŠENÍ Prohlašuji, že svou bakalářskou práci na téma Internetová aplikace v.net jsem vypracoval samostatně pod vedením vedoucího bakalářské práce a s použitím odborné literatury a dalších informačních zdrojů, které jsou všechny citovány v práci a uvedeny v seznamu literatury na konci práce. Jako autor uvedené bakalářské práce dále prohlašuji, že v souvislosti s vytvořením této bakalářské práce jsem neporušil autorská práva třetích osob, zejména jsem nezasáhl nedovoleným způsobem do cizích autorských práv osobnostních a jsem si plně vědom následků porušení ustanovení 11 a následujících autorského zákona č. 121/2000 Sb., včetně možných trestněprávních důsledků vyplývajících z ustanovení 152 trestního zákona č. 140/1961 Sb. Brno (podpis autora)
6 OBSAH Úvod 9 1 Řešení studentské práce Úvod Platforma.NET Princip běhového prostředí Klíčové vlastnosti Typy aplikací Aktuální stav platformy.net a součásti použité při řešení úlohy Jednoduchý ASP.NET http handler pro zpracování základních matematických operací Vytvoření nového projektu Vytvoření handleru Instant Messaging systém Databáze Webová služba Klientská aplikace Klientská vrstva pro komunikaci s webovou službou Webová klientská aplikace v ASP.NET Co je to ASP.NET Nastavení projektu Postup Závěr Desktopová aplikace ve WPF První WPF aplikace Layout Controls Styly Trigry Šablony Data Binding Konvertory Koncová klientská aplikace ve WPF Závěr 41 Literatura 42 Seznam symbolů, veličin a zkratek 43
7 Seznam příloh 44 A Zdrojové kódy 45
8 SEZNAM OBRÁZKŮ 1.1 Strom projektu Struktura systému Databázový model Dialog vložení nového projektu Funkce implementace metod z rozhraní Přidání service reference - kontextové menu Přidání service reference - nalezení serveru a vytvoření proxy tříd Přidání reference na klientskou vrstvu Příhlašovací část webové aplikace Komunikační webové aplikace Registrační část webové aplikace WPF aplikace - Struktura WPF Framework WPF aplikace - Přidání projektu s WPF aplikací WPF aplikace - Nový WPF projekt WPF aplikace - První WPF okno Ahoj Světe! WPF aplikace - Gridu WPF aplikace - StackPanel WPF aplikace - WrapPanel WPF aplikace - DockPanel WPF aplikace - Canvas WPF - Ukázka jednoduchých stylů WPF - Použití Dependency properties WPF - Použití šablony WPF - Použití konvertoru WPF ukázka - Přihlašovací dialog WPF ukázka - Registrační dialog dialog WPF ukázka - Seznam kontaktů WPF ukázka - Okno diskuze
9 ÚVOD Tato práce se zabývá tvorbou systému pro posílání rychlých zpráv, tzv. Instant Messaging (IM). V práci je kladen důraz na použitelnost ve výuce, proto se zde zabývám širší paletou technologií postavených na platformě.net Framework. Postupně procházím základy běhového prostředí, základ webových služeb, návrh databázového schématu v pokročilých modelovacích nástrojích, důležitost správného rozvrstvení systému a objektový návrh. Nedílnou součástí práce je představení nového trendu vývoje uživatelských rozhraní v technologii Windows Presentation Fundation, kde vysvětluji základní principy tvorby bohatých uživatelských prvků a celých aplikací v jazyce XAML. 9
10 1 ŘEŠENÍ STUDENTSKÉ PRÁCE 1.1 Úvod Platforma.NET byla oficiálně představená firmou Microsoft v roce Microsoft.NET znamená novou generaci systému vývoje aplikací pro operační systémy Windows, a v dnešní době i Linux, viz projekt MONO (aktuálně ve verzi 2.6.3), založený na řízeném běhovém prostředí, obohaceném o neskromnou sadu základních tříd nesoucích jméno.net Framework. Hlavní důvody vedoucí k vývoji technologie.net jsou: Nekompatibilita jednotlivých programovacích jazyků, a s tím související obtížná spolupráce mezi programy/knihovnami napsanými v odlišných jazycích (např. C++ nebo Visual Basic atd... ). Vysoká chybovost aplikací (chyby v práci s pamětí, neplatné konverze datových typů). Problémy s verzemi knihoven. Zastaralý a nepřehledný způsob vývoje dosavadních webových aplikací. Všechny tyto problémy efektivně řeší platforma.net a to použitím zmíněného běhového prostředí, systémem assemblies, což jsou základní stavební prvky aplikací, a novou technologií ASP.NET pro vývoj webových aplikací. 1.2 Platforma.NET Princip běhového prostředí Většina dnešních aplikací, vytvořených například v jazyce C++, je zkompilována přímo pro danou platformu. To znamená, že zdrojový kód je kompilací přeložen do strojového kódu počítače. To ve výsledku přináší velmi dobrou rychlost běhu výsledné aplikace. Avšak na druhou stranu z toho plynou i některé nevýhody nepřenositelnost mezi jednotlivými platformami, popřípadě verzemi operačních systémů a nezřídka jsou k vidění chyby v přístupech do operační paměti. Princip řízených běhových prostředí použitý právě u platformy.net, ale i u velmi známe platformy Java firmy Sun Microsystems na to jde trochu jinak, a přidává k převodu zdrojového kódu do kódu strojového ještě jednu vrstvu. Tuto vrstvu představuje mezikód, do kterého jsou zdrojové kódy zkompilovány a tento mezikód je běhovým prostředím na cílové platformě (Windows, Linux) převeden do strojového kódu. Tento převod je na cílové platformě realizován vždy při spouštění konkrétní aplikace. Mínusem tohoto překladu je vyšší náročnost na výkon uživatelského počítače, a z tohoto důvodu se 10
11 tento způsob nepoužívá pro vývoj výpočetně náročných aplikací (např. počítačové hry). S jeho častým použitím se naopak můžete setkat spíše u obchodních aplikací, které přece jen nejsou tak náročné na výpočetní výkon, a rychlost běhu daných aplikací je naprosto vyhovující. Poznámka: U spousty úloh (přístup k databázi, souborům atd.) uživatel snížení rychlosti aplikace ani nepocítí. Navíc je dobré dodat, že u těchto běhových prostředí při spuštění aplikace nedochází k překladu celé aplikace najednou, ale používá se JIT (Just-in-Time) kompilace. JIT kompilace znamená, že do strojového kódu je převedena pouze potřebná část mezikódu, a při opětovném použití této (již přeložené) části se spouští její zkompilovaná forma, což se příznivě projeví na rychlosti, která si již nezadá s během neřízeného programu Klíčové vlastnosti Mezikód se ve světě platformy.net nazývá MSIL, tedy Microsoft Intermediate Language. Tento jazyk relativních adres je spouštěn klíčovou součástí.net frameworku pojmenovanou CLR (Common Language Runtime neboli společné běhové prostředí), jenž je standardizován organizací ECMA. V prostředí CLR existuje věc, která programátorům velmi usnadňuje práci s operační pamětí Garbage Collector. Jedná se o sadu složitých algoritmů pro uvolňování nepotřebných programových objektů z paměti. Díky Garbage Collectoru se již vývojáři nemusí starat o přiřazování nebo uvolňování operační paměti, a odpadá tak riziko již zmíněné nekorektní práce s ní, která ve většině situací končí pádem aplikace. Velmi důležitou vlastností, kterou dal Microsoft své platformě do vínku, je CLS Common Language Specification (Společná jazyková specifikace). S ní souvisí CTS neboli Common Type System (společný typový systém). Výsledkem použití CLS a CTS je rovnocennost programovacích jazyků. Jinými slovy pro vývoj.net aplikací je možné použít jeden z několika programovacích jazyků vyšší úrovně. Může se jednat například o tyto : C#, jazyk vyvinutý přimo pro.net Visual Basic.NET J#, jazyk se syntaxí rozšířeného jazyka Java Managed C++, managed označuje možnost psát řízený kód pro.net dokonce i v původně neřízeném jazyce jakým C++ od svého počátku je Typy aplikací Platforma Microsoft.NET vývojářům nabízí široké možnosti. Začít můžete u klasických konzolových aplikací, které pro vstup a výstup používají příkazový řádek. 11
12 Daleko zajímavější jsou aplikace s využitím knihoven Windows.Forms, interně využívající Microsoft Win32 API. Výsledkem jejich použití jsou známé formulářové aplikace pro Windows. Možné je také vytvořit aplikaci běžící jako proces na pozadí systému službu Windows. Dalším odvětvím jsou webové aplikace nahrazující zastaralé ASP 2.0; a to jejich nová generace označovaná jako ASP.NET, za kterou si dle mého názoru Microsoft zaslouží velkou pochvalu, protože tím posunul tvorbu dynamických webů o pořádný kus dál. Neméně zajímavým typem aplikací jsou takzvané Webové služby, které umožňují pomocí všudypřítomného http protokolu na vzdáleném serveru volat metody. 1.3 Aktuální stav platformy.net a součásti použité při řešení úlohy Před zhruba dvěmi lety byla uvedena v mnoha ohledech revoluční verze.net Framework s číslem 3.5. Tato verze přinesla mnoho nových vylepšení, které programátorům opět více zefektivní a zjednoduší práci. Zmíním zde zejména ty, které jsem použil při realizaci projektu. Asi největším lákadlem je bezesporu technologie LINQ (Language INtegrated Query), která přišla s uvedením C# verze 3.0. LINQ přináší podporu přímého dotazování nad kolekcemi objektů podobně jako v databázích. Kolem LINQ vzniklo hned několik dalších projektů a rozšíření vyvíjených, at už přímo společností Microsoft, tak i komunitou. Z dílny Microsoft bych zmínil objektově relační mapovací nástroj zvaný Linq2Sql. Díky Linq2Sql je možné z MSSQL databáze vygenerovat sadu objektů odpovídajících 1:1 tabulkám v databázi. Pak je možné dotazovat se databáze v jazyce C#(nebo Visual Basic 9) a pracovat s daty čistě objektově, včetně dotazů. Další neméně důležitou technologii je Windows Communication Fundation (dále jen WCF). Tuto technologii sebou.net Framework nese již z verze 3.0. WCF je jednotný framework pro vytváření servisně orientovaných aplikací. Základním stavebním kamenem WCF jsou služby. Službu si lze představit jako samostatný systém, který komunikuje s okolím pomocí tzv. endpoints, neboli koncových bodů. Ani vývoj uživatelských rozhraní nezůstal pozadu, a tak Microsoft uvedl technologii Windows Presentation Fundation (dále jen WPF). Tato technologie umožňuje psát vzhledově bohaté formuláře a rozhraní pomocí definice v jazyce XAML (jeden z jazyků z rodiny XML). Tento jazyk je vzdáleně podobný html respektive ASP.NET. 12
13 Vývoj aplikací pro v.net by nebyl z daleka tak efektivní nebýt integrovaného vývojového prostředí Microsoft Visual Studio, nyní ve verzi 2010, které bylo oficiálně vypuštěno před několika týdny. Toto prostředí jsem samozřejmě použil k řešení mé práce. 1.4 Jednoduchý ASP.NET http handler pro zpracování základních matematických operací Cílem této úlohy je vytvořit jednoduchý webový handler* zpracovávající data předávané pomocí URL. V našem případě půjde o handler realizující základní matematické operace (plus sčítání, minus odčítání, nasobeni násobení). *Http handler v ASP.NET je autonomní funkční modul pro zpracovaní požadavků Vytvoření nového projektu Jak již bylo v úvodu výše, zmíněno pro vývoj použijeme Microsoft Visual Studio Nejprve si vytvoříme novou solution (typ projektu VS2008, který sdružuje ostatní projekty) File New Project. Toto bude výhodné pro organizaci projektů zejména v druhé úloze. Zde zvolíme část stromu Other Projects Type, v niž se nachází naše hledaná Visual Studio Solutions. V nové solution si vytvoříme nový solution directory. Toto provedeme stiskem pravého tlačítka myši nad ikonkou naší solution a následným add New Solution Directory, a nazveme ho HOST. Obdobným způsobem lze vytvářet adresáře i v jednotlivých projektech a pomocí add lze vkládat i nové projekty do solution nebo soubory do projektů. Do složky HOST vložíme nový projekt, který najdeme v Visual C# Web WCF Service Aplication. Momentálně by ani nebylo nutné vytvářet WCF Service Aplication, ale s ohledem na náplň následujících úloh je vhodné mít projekt již vytvořený Vytvoření handleru Do vytvořeného projektu nyní vložte nový soubor Web Generic Handler. Měl by to být soubor s příponou *.ashx. Toto je náš http handler, který bude realizovat matematické funkce. Ostatní soubory nacházející se v projektu budeme v rámci této úlohy ignorovat. Po vytvoření souboru by měl obsah Solution exploreru (výchozí pozice vpravo nahoře) vypadat jako na obrázku
14 Obr. 1.1: Strom projektu Nyní si otevřeme soubor http handleru. VS2008 automaticky vygenerovalo jakousi základní kostru souboru. Tato kostra po dotazu na handler vypíše text hello World jako výstup do webového prohlížeče. My ale chceme, aby náš handler uměl počítat. Webový handler je vlastně jakýsi chudý příbuzný ASP.NET webové stránky. Přijímá data pomocí protokolu http a vrací výsledek. Vstupní data mu můžeme poslat pomocí metody POST http protokolu nebo, co je náš případ, předáme vstupní hodnoty pomocí url. Zdrojový kód handleru upravíme a výsledek bude tento: namespace MyService1 public class u r l S e r v i c e : IHttpHandler public void ProcessRequest ( HttpContext c o n t e x t ) string a c t i o n = c o n t e x t. Request [ a c t i o n ] ; int a, b ; switch ( a c t i o n ) case p l u s : i f ( int. TryParse ( c o n t e x t. Request [ a ], out a ) && int. TryParse ( c o n t e x t. Request [ b ], out b ) ) c o n t e x t. Response. Write ( Vysledek= + ( a + b ) ) ; } } break ; case minus : i f ( int. TryParse ( c o n t e x t. Request [ a ], out a ) && int. TryParse ( c o n t e x t. Request [ b ], out b ) ) c o n t e x t. Response. Write ( Vysledek= + ( a b ) ) ; } } break ; case n a s o b i t : i f ( int. TryParse ( c o n t e x t. Request [ a ], out a ) && int. TryParse ( c o n t e x t. Request [ b ], out b ) ) c o n t e x t. Response. Write ( Vysledek= + ( a b ) ) ; } 14
15 } } } break ; default : break ; } } public bool I s R e u s a b l e get return f a l s e ; } } Nyní zkusíme náš projekt spustit. Provedeme to kliknutím pravého tlačítka myši na ikonu projektu. V nabídce vybereme Debug Start New Instance. S největší pravděpodobností vyskočí dialog, který se zeptá na vytvoření souboru web.config, toto odsouhlasíme. Poté by se měl automaticky spustit lokální, do VS2008 integrovaný, webový server, na kterém bude umístěn náš handler. Měl by mít adresu např. Automaticky by se měl také otevřít webový prohlížeč, ve kterém uvidíme obsah adresáře, kde se nachází náš handler. Nyní je vše připraveno k otestování handleru. Do prohlížeče zadáme adresu a cestu k souboru handleru, např. Handler můžeme ovládat pomocí parametrů předávaných v url. Parametry k ovládání jsou následující: Action Plus sčítání dvou čísel Minus odčítání dvou čísel Nasobeni násobení dvou čísel A - parametr v němž bude hodnota prvního čísla B hodnota druhého čísla Kdo se už setkal s webovými aplikacemi, bude jistě vědět jak se hodnoty do url zapisují, pro ty ostatní je tato url: Modifikací této url můžete měnit akci, kterou má handler s čísly provést, nebo měnit hodnoty čísel samozřejmě. Cílem úlohy byla ukázka velmi jednoduché služby (nejednalo se o službu v pravém slova smyslu, ale http handler se do jisté míry službě podobá), která provádí matematické operace. Dále také seznámení s prostředím Microsoft Visual Studia a základní seznámení s tvorbou nových projektů. 15
16 1.5 Instant Messaging systém Instant Messaging systém (dále jen IMS) je z angličtiny převzatý název pro systém poskytující službu rychlého odesílání zpráv v rámci internetu. IMS známe několik např. ICQ, MSN, Yahoo, Jabber atd. Náš systém bude navenek fungovat velmi podobně, ale v některých zásadních věcech se bude lišit. Tím nejzásadnějším rozdílem bude komunikace pomocí protokolu HTTP. Jádrem celého systému bude databáze, jenž bude sloužit jako prostředník předávání zpráv, a zároveň bude uchovávat všechny potřebné informace o uživatelích. Další součástí systému bude webová služba komunikující pomocí HTTP s klientskou aplikací a na serveru s cílovou databází. Vizuální pohled na systém je na obrázku 1.2. Obr. 1.2: Struktura systému Databáze Základem každého informačního systému je databáze. Náš IMS je v podstatě také informační systém jako každý jiný. Slouží pro správu a šíření informací nimiž IM zprávy jistě jsou. 16
17 Jelikož pracujeme s technologiemi.net budeme používat databází MSSQL. Toto řešení má několik zásadních výhod. Technologie MS na sebe dobře navazují. Můžeme tak použít integrovaný designer LinqToSql jako základ pro datovou vrstvu nad databází. Pro náš systém potřebujeme v základu jen 3 nejdůležitější tabulky. Tabulka pro uživatele, tabulka pro zprávy a vazební tabulka 1:N. Použitá databáze, je ale o něco složitější. Není totiž nic horšího než zanedbání návrhu databáze. Systém se pak rozvíjí velmi obtížně. Proto zvolíme komplexnější databázový model, který počítá s pozdější implementací rozšiřujících funkcí jakými jsou tvorba uživatelských skupin, seznamy kontaktů atd. Modelování jsem prováděl v Toad Data Modeleru. Tabulky modelované v tomto nástroji jsou na obrázku 1.3. Následně se pak z modelu vygeneruje T-SQL výstup, který spustíme v cílové databázi, a tím se nám vytvoří vše potřebné. Jak už bylo zmíněno, tak základní datovou vrstvu nad databází vytvoříme pomoci designeru LinqToSql ve VS2010. Nad tímto objektovým modelem je ale vhodné napsat si statickou třídu pro práci s daty. Vytvoříme tedy dva další projekty. Jeden bude obsahovat LinqToSql objekty a *.dbml soubor (database markup language), což je vlastně XML popis tabulek a vazeb, ze kterého VS2010 vygeneruje třídy. Druhý projekt bude už obsahovat naší datovou vrstvu, kterou bude využívat WCF aplikace. Tím budeme mít ideálně rozvrstvenou architekturu. Použití takto rozvrstvené architektury má výhodu v tom, že pokud bychom měnili cílovou databázi nebo chtěli použít místo LinqToSql například Entity Framework, tak promítneme změny pouze do nejnižších vrstev, a tím pádem nemusíme už přepisovat WCF aplikaci. Za zmínku určitě stojí samotná práce s databází pomocí Linq. V ukázce 1.1 vidíme vytvoření data kontextu a následné vytažení dat z databáze. Vše probíhá objektově, a v každém okamžiku jsou kontrolovány typy proměnných. LinqToSql následně tyto programové dotazy překládá do SQL jazyka. Tento přístup má několik nesporných výhod. Jako první bych uvedl větší transparentnost díky kontrole typů. Nemůže se nám tedy stát, že bychom omylem do dotazu přiřadili nesprávnou proměnnou. Kompiler totiž zahlásí ihned chybu a program nezkompiluje. Další výhodou je nemožnost tzv. SQL Injection útoků. Princip takových útoků spočívá v nalezení vstupu aplikace, který se promítne do konečného dotazu. To se nám ovšem nestane, protože neskládáme dotaz do řetězce, ale máme jej kompilovaný v kódu. MessDataContext db = new MessDataContext ( ) ; var messages = from m in db. MESSAGEs where m. C DATE == DateTime. Today 17
18 select m; Kód 1.1: Vytvoření data kontextu a dotaz nad databází Obr. 1.3: Databázový model Webová služba Jak už bylo dříve zmíněno, jako komunikační bod systému budeme používat webovou službu, konkrétně WCF service. V dnešní době je stále větší poptávka po servisně orientovaných aplikacích. Pod pojmem servisně orientovaná aplikace chápejme aplikaci, která volá metody implementované na serveru. Toto rozdělení je v mnohých případech velmi výhodné, někdy zcela nutné. Nutností je i v našem případě. Základní myšlenka při vzniku WCF je SOA. SOA je zkráceně Servisně orientovaná architektura. WCF je framework, kterým vytváříme SOA aplikace. Sjednocuje hned několik starších technologii pro tvorbu těchto aplikací. Jde vlastně o komunikaci aplikace s aplikací, přesněji služby s klientem. Konkrétně je WCF vlastně distribuovaná aplikace. V minulosti jsme pro vytváření SOA aplikací měli několik možností. Malý výčet: ASP.NET Web Services, Web Services Enhancements(WSE),.NET Remoting atd. Programátor použil pro specifickou aplikaci vždy tu možnost, která byla pro daný problém nejlepší. Tyto technologie se hodily každá na něco jiného. Vývoj aplikací 18
19 byl závislý na dané technologii což je do jisté míry nevýhoda. Další nevýhodou je vzájemná nekompatibilita těchto technologií. A co je to vlastně WCF? WCF sjednocuje dřívější technologie. Programátor nemusí znát do puntíku použitou komunikační technologii. Stačí znát a vědět jak používat právě WCF. Jeho použití v praxi znamená obrovské úspory času a zjednodušení práce vývojářům. Vytvoření WCF služby je vcelku jednoduché. Do projektu stačí vložit přednastavený typ projektu z nabídky VS2010. Konkrétně to bude WCF Service Application obrázek 1.4. Následně pak definovat rozhraní (interface) a metody tohoto rozhraní následně implementovat. Metody rozhraní musí mít navíc nastavené speciální parametry, viz kód 1.2 aby bylo jasné, že se jedná o WCF. Kromě speciálních parametrů WCF v rozhraní musíme také definovat takzvané data kontrakty (DataContract). DataContract je jednoduchá třída, která obsahuje soubor dat, které chceme pomocí WCF přenášet. Jejich definice viz kód 1.3. Obr. 1.4: Dialog vložení nového projektu [ S e r v i c e C o n t r a c t ] public interface I M e s s a g i n g S e r v i c e [ OperationContract ] int User RegisterNewContact ( string nick, string password ) ;... } Kód 1.2: Ukázka speciálních parametrů při definici rozhraní 19
20 [ DataContract ] public class ImMessage [ DataMember ] public int ID SENDER get ; s e t ; } [ DataMember ] public int ID USR get ; s e t ; }... } Kód 1.3: Definice data kontraktu Implementace rozhraní pak už není nic složitého. Když otevřeme soubor naší WCF aplikace (*.svc), tak by nám VS2010 mělo rovnou otevřít soubor se samotným kódem. Třída naší WCF aplikace je zděděná z rozhraní. Takže stačí pouze kliknout pravým tlačítkem na identifikátor rozhraní v kódu, a zvolit Implement interface. Vývojové prostředí nám vygeneruje prázdné metody definované rozhraním, do nichž pouze doplníme požadovanou funkčnost. Tato funkčnost spočívá hlavně v manipulaci s daty. Obr. 1.5: Funkce implementace metod z rozhraní 1.6 Klientská aplikace Služba kterou jsme vytvořili je, co se komunikace s ní týče, univerzální napříč všemi aplikacemi, které lze v.net Framework vytvořit. Základem pro komunikaci s ní je vygenerování proxy tříd na základě metadat, která služba poskytuje. Prostředí Visual Studia 2010 poskytuje nevídaný komfort při používání technologií jakou je mimo jiné právě WCF. Proxy třídy nemusí programátor psát ručně, ale s pomocí VS2008 si je může automaticky vygenerovat. Pro efektivní práci je toto automatické generování proxy tříd víc nutností než možností Klientská vrstva pro komunikaci s webovou službou Než začneme tvořit konkrétní klientskou aplikaci, bude dobré si vytvořit projekt, který bude obsahovat statickou třídu pro práci s metodami webové služby a také referenci na webovou službu, a tím i proxy třídy. 20
21 Tato další vrstva je výhodná, protože při práci s WCF kanálem je dobré tento kanál uzavírat. Do prázdného projektu přidáme referenci na webovou službu. To uděláme jako na obrázku 1.6. Následně pak v dialogu (obrázek 1.7) zadáme adresu naší webové služby a vyplníme název namespace. Je možné využít i možnosti Discover, která prohledá dostupné webové služby na lokálním počítači. Po stisknutí tlačítka OK proběhne generování již naprosto automaticky. Pokud generování proběhlo v pořádku, stačí projekt přeložit a můžeme tuto vrstvu používat v libovolné klientské aplikaci. Obr. 1.6: Přidání service reference - kontextové menu Obr. 1.7: Přidání service reference - nalezení serveru a vytvoření proxy tříd 21
22 1.7 Webová klientská aplikace v ASP.NET Jak už jsem výše zmínil k WCF službě může přistupovat téměř libovolná aplikace. Dobrým demonstračním příkladem je ASP.NET aplikace Co je to ASP.NET ASP.NET je součást.net Frameworku a nástupce starší technologie ASP (Active Server Pages) vyvinutá jako přímá konkurence pro JSP (Java Server Pages). V ASP.NET můžou programátoři realizovat své projekty v kterémkoli jazyce spadajícím do.net Frameworku. Díky předkompilování jsou také ASP.NET stránky rychlejší. Toto však neplatí vždy. Rychlejší běh se projeví až při složitějších operacích. Koncept ASP.NET WebForms je v mnoha ohledech velmi podobný Windows- Forms. Tato podobnost je záměrná. To proto aby vývojáři aplikací pro Windows měli snazší přechod k programování pro web. Stránky se skládají z ovládacích prvků (Controls), které jsou odvozeny od ovládacích prvků pro Windows. Jednou z vymožeností ASP.NET je také stavové prostředí. Ačkoli se to může zdát Windows programátorům jako samozřejmost, tak ve skutečnosti je to jinak. Jak jistě víme, tak protokol HTTP je bezstavový. ASP.NET dovoluje událostmi řízené programování díky uchování stavu (aktuálním stavu stránky a jejich ovládacích prvků) mezi jednotlivými požadavky pomocí dvou způsobů: ViewState uchovává informace mezi opakovaným odesíláním formuláře na server zašifrovaně ve skrytých polích na HTML stránce. Výhoda této techniky je, že není třeba nastavovat žádnou podporu na straně serveru ani klienta. Naopak nevýhodou je větší datový tok mezi klientem a serverem. ViewState může docela nabobtnat pokud jej používáme nesprávně. Například explicitní ukládání datových objektů. Session uchovává data na straně serveru. Posílá se pak pouze identifikátor dané Session jako cookie (soubor uložený v rámci privátních dat prohlížeče) nebo v URL. ASP.NET umožňuje ukládat session do samostatného procesu nebo taká na SQL server (pro tento případ musí být v cílové databázi připravený specifické tabulky a uložené procedury). V aktuální verzi má navíc ASP.NET podporu AJAX 1, což zase o kus sbližuje desktopové a webové programování. 1 AJAX (Asynchronous JavaScript and XML) je obecné označení pro technologie vývoje interaktivních webových aplikací, které mění obsah svých stránek bez nutnosti jejich znovunačítání. Na rozdíl od klasických webových aplikací poskytují uživatelsky příjemnější prostředí, ale vyžadují použití moderních webových prohlížečů. 22
23 1.7.2 Nastavení projektu V solution vytvoříme nový projekt ASP.NET Web Application. Projekt obsahuje jednu prázdnou stránku a webový konfigurační soubor. Aby bylo možné používat klientskou vrstvu, která byla zmíněna v předchozí kapitole, tak musíme do projektu webové aplikace přiřadit referenci na projekt s klientskou vrstvou (obrázek 1.8), a také přidat do projektu referenci na System.Runtime.Serialization. Obr. 1.8: Přidání reference na klientskou vrstvu Toto ale není jediné nastavení, které musíme provést, aby komunikace fungovala. Je třeba do konfiguračního souboru web.config vložit speciální konfigurační sekci: <c l i e n t > <endpoint address= <adresa wcf služby> binding= basichttpbinding b i n d i n g C o n f i g u r a t i o n= BasicHttpBinding IMessagingService c o n t r a c t= TestMessApi. I M e s s a g i n g S e r v i c e name= BasicHttpBinding IMessagingService > <i d e n t i t y > <dns value= l o c a l h o s t /> </i d e n t i t y > </endpoint > </ c l i e n t > Kód 1.4: Potřebné nastavení v souboru web.config 23
24 1.7.3 Postup Demonstrační webová aplikace bude poměrně jednoduchá. Vystačíme si jednou ASP.NET stránkou a několika málo metodami obsluhujícími události stránky. Využijeme tedy následující ASP.NET komponenty: MultiView je kontrolka, která v jeden moment zobrazuje pouze jeden z kolekce obsahových kontainerů zvaných View. Využijeme jej pro přepínání mezi jednotlivými módy aplikace (přihlášení, registrace, messenger jako takový). UpdatePanel tímto prvkem definujeme oblast stránky, která má být zpracovávána asynchronně pomocí AJAX. Členské kontrolky tak nebudou muset pro svou činnost používat obnovení celé stránky. Timer pomocí javascriptu odpočítává nastavený interval, a po jeho uběhnutí spustí automaticky svou událost Thick. Tuto kontrolku využijeme v kombinaci s UpdatePanelem k automatickému obnovování messengeru, abychom měli v pravidelných intervalech nově přichozí zprávy k dispozici. Ostatní použité kontrolky jsou už tak triviální, že jsem si dovolil je nekomentovat. Do stránky vložíme MultiView a v něm vytvoříme tři nová View. Názvy (ID) jednotlivých View zvolíme tak, abychom věděli k čemu dané View slouží a jakou část programu bude obsahovat. View budou následující: Přihlášení bude obsahovat dvě pole pro vložení ID účtu a hesla. A nesmí chybět tlačítko pro odeslání požadavku na přihlášení. Registrace bude obsahovat pole pro NickName a dvě pole pro zadání hesla a jeho ověření. A tlačítko pro odeslání. Okno konverzace a seznam uživatelů zde bude prvek Literal, který do požadovaného místa na stránce vypisuje HTML obsah. Do něho budeme vkládat zprávy. Pak bude v této části DropDownList, ve kterém budou všechny kontakty systému. Bude sloužit pro výběr kontaktu, kterému chceme odeslat zprávu. Samozřejmě nesmí chybět pole pro vložení textu a odesílací tlačítko. Ještě je vhodné do programu umístit nějaký prvek Label, do kterého bude možné vypisovat stav prováděné akce. Pokud máme výše zmíněné kontrolky připravené, můžeme přiřadit tlačítkům metody k událostem Click a Timeru k události Thick. Funkčnost tlačítek je vcelku jasná. Stačí jen využít metody klientské vrstvy jako na příkladu
25 protected void btnlogin Click ( object sender, EventArgs e ) i f ( MessApi. User Login ( int. Parse ( tbid. Text ), tbpasswordlogin. Text ) ) mvmessanger. SetActiveView ( viewmessenger ) ; UserID = int. Parse ( tbid. Text ) ; UserPassword = tbpasswordlogin. Text ; } lbnickname. Text = MessApi. Contact GetContactById ( int. Parse ( tbid. Text ) ). USR N foreach ( var item in MessApi. Contact GetAllContacts ( ) ) ddlusers. Items. Add(new ListItem ( item. USR NICK, item. ID USR. ToString ( ) ) ) } tmrcheckmessages. Enabled = true ; } else l b I n f o. Text = P r i h l á š e n í se n e p o d a r i l o ; Kód 1.5: Použití klientské vrstvy pro přihlášení Asi nejsložitější akcí v tomto případě je výpis zpráv. Ten se provede tak, že události Thick Timeru přiřadíme funkčnost, která bude v určitých intervalech asynchronně kontrolovat nové zprávy na serveru. Metoda nám vrátí kolekci zpráv, kde v cyklu každou naformátujeme pomocí objektu StringBuilder do HTML textu a přiřadíme na počátek v dříve zmíněném prvku Literal. Výsledná aplikace by mohla vypadat asi jako na obrázcích 1.9,1.10 a Obr. 1.9: Příhlašovací část webové aplikace Závěr Na této ukázce jsme se letmo seznámili s možnostmi ASP.NET. Tato demonstrace moderního vývoje webu, který v dnešní době stojí na kvalitních frameworcích 2 nám 2 Framework je softwarová struktura, která slouží jako podpora při programování a vývoji a organizaci jiných softwarových projektů. Může obsahovat podpůrné programy, knihovnu API, návrhové vzory nebo doporučené postupy při vývoji. 25
26 Obr. 1.10: Komunikační webové aplikace Obr. 1.11: Registrační část webové aplikace 26
27 pomocí několika málo kontrolek a bez znalosti ukázala jak snadné je vytvoření zdánlivě složité aplikace. JavaScriptu 3 V další části se seznámíme s vývojem aplikací pro Windows. Ukážeme si možnosti programování aplikací ve WPF jenž má nahradit dnes už ne zcela vyhovující Windows Forms. 1.8 Desktopová aplikace ve WPF Windows Presentation Foundation (WPF) je grafický subsystém sloužící k renderování grafických rozhraní ve Windows aplikacích. Pod názvem Avalon byl představen jako součást.net Frameworku 3.0. navržen, aby odstranil závislost na GDI 4 subsystému, je WPF postavena na technologii DirectX, která umožňuje hardwarovou akceleraci a zpřístupňuje moderní vymoženosti grafických rozhraní, jakými jsou průhlednost, přechody a různé další transformace. WPF dobře odděluje vývoj grafického rozhraní a samotnou logiku aplikace. Obr. 1.12: WPF aplikace - Struktura WPF Framework WPF nabízí nový jazyk z rodiny XML, známý jako XAML, jimž můžeme definovat jednotlivé elementy uživatelského rozhraní a vazby mezi nimi. WPF aplikaci můžeme spustit pod systémem Windows nebo také ve webovém prohlížeči (ten musí 3 JavaScript je multiplatformní, objektově orientovaný skriptovací jazyk, jehož autorem je Brendan Eich z tehdejší společnosti Netscape. Nyní se zpravidla používá jako interpretovaný programovací jazyk pro WWW stránky, často vkládaný přímo do HTML kódu stránky. Jsou jím obvykle ovládány různé interaktivní prvky GUI (tlačítka, textová políčka) nebo tvořeny animace a efekty obrázků. 4 Graphics Device Interface (zkráceně GDI či někdy nazýváno jako Graphical Device Interface) je spolu s kernelem a uživatelským rozhraním jednou ze tří hlavních součástí operačního systému Microsoft Windows. Graphics Device Interface slouží k reprezentaci grafických objektů a jejich transformací do výstupních zařízení jako jsou monitory či tiskárny. 27
28 mít nainstalovaný doplněk Silverlight). Sjednocuje hned několik služeb: uživatelské rozhraní, 2D a 3D kreslení, vektorovou grafiku, animace, audi, video atd. Microsoft Silverlight je webová podmnožina WPF umožňující psát aplikace graficky stejně bohaté jako je například Flash pomocí stejného programovacího modelu jako.net aplikace. Silverlight nemá plnou podporu všech systémových knihoven. 3D není v Silverlight podporováno První WPF aplikace Nejprve bude dobré si ukázat jak vlastně WPF aplikaci vytvořit a také se seznámit se strukturou projektu i základními soubory v projektu. Zabudovaná podpora WPF je ve Visual Studiu od verze Přidáme si tedy do solution nový projekt. Nazveme jej tak aby bylo jasné k čemu slouží. Například WpfImClient. V okně pro přidání projektu vybereme projekt viz obrázek Obr. 1.13: WPF aplikace - Přidání projektu s WPF aplikací Projekt bude obsahovat dva XAML soubory. Základním souborem každé WPF aplikace je app.xaml. Když ho otevřeme můžeme si všimnout, pro nás zajímavého parametru StartupUri="MainWindow.xaml". Tento parametr nastavuje výchozí okno aplikace, které se má zobrazit po spuštění programu. Soubor app.xaml má také svůj CodeBehind 5, ve kterém můžeme dle potřeby implementovat vlastní funkce nebo vlastnosti. Toto se však běžně v tomto souboru nedělá. 5 CodeBehind se označuje kód v pozadí implementující funkčni logiku daného okna, webové stránky nebo jiných objektů používaných v.net Framework. 28
29 Obr. 1.14: WPF aplikace - Nový WPF projekt Soustředíme se na soubor MainWindow.xaml. Po jeho otevření se nám ve výchozím zobrazení ukáže v horní části WISYWYG 6 editor a ve spodní editor xaml kódu. Výchozím elementem ve WPF okně je Grid(tabulka). Je to jeden z Layout Controls, o kterých si povímě později. Tento Grid smažeme a vložíme mezi tagy Window element Label. Tento element slouží k usmístění nějakého textu. <Label FontWeight="Bold" Foreground="Red">Ahoj svete!</label> Obr. 1.15: WPF aplikace - První WPF okno Ahoj Světe! Layout Controls Většina kontrolek ve WPF umožňuje, aby do nich šlo vkládat další kontrolky. Můžeme například do Button vložit obrázek a TextBox. Pokud, ale vložíme do Button dvě nebo více kontrolek bez toho aniž by se použil nějaký LayoutControl, tak vývojové prostředí zahlásí chybu. Proč? No protože v tento moment WPF neví jak kontrolky uvnitř Button uspořádat. Proto existují právě LayoutControls. Tato sada kontrolek má jasně definované pravidla jak kontrolky rozmístit. Proto je možné do nich vkládat teoreticky neomezené množství dalších kontrolek aniž by nastala nějaká chyba. Existují následující LayoutControls: 6 WYSIWYG je akronym anglické věty What you see is what you get, česky co vidíš, to dostaneš. Tato zkratka označuje způsob editace dokumentů v počítači, při kterém je verze zobrazená na obrazovce vzhledově totožná s výslednou verzí dokumentu. 29
30 Grid je klasická tabulka. Chová se podobně jako tabulky například v HTML. Mezi tagy Grid je třeba pouze definovat počet sloupců a řádku případně jim nastavit jakou mají mít velikost. Umístění vložených kontrolek se pak provádí nastavením přímo v dané kontrolce. Takový jednoduchý Grid by mohl vypadat asi takto: <Grid> <Grid. RowDefinitions> <RowDefinition Height= 25 /> <RowDefinition /> </ Grid. RowDefinitions> <Grid. ColumnDefinitions> <ColumnDefinition Width= 25 /> <ColumnDefinition /> </ Grid. ColumnDefinitions> <Button Grid. Row= 0 Grid. Column= 0 >1</ Button> <Button Grid. Row= 0 Grid. Column= 1 >2</ Button> <Button Grid. Row= 1 Grid. Column= 0 >3</ Button> <Button Grid. Row= 1 Grid. Column= 1 >4</ Button> </ Grid> Kód 1.6: Jednoduchý Grid Obr. 1.16: WPF aplikace - Gridu StackPanel uspořádává kontrolky za sebou. Lze nastavit vertikální nebo horizontální orientaci <StackPanel O r i e n t a t i o n= V e r t i c a l > <Button>1</ Button> <Button>2</ Button> <Button>3</ Button> </ StackPanel> Kód 1.7: StackPanel 30
31 Obr. 1.17: WPF aplikace - StackPanel WrapPanel funguje stejně jako textový dokument. Nezalamuje však jen text ale i všechny kontrolky, které ukládá horizontálně vedle sebe a pokud se nějaká nevejde do dané šířky tak jí umístí na nový řádek. <WrapPanel> <Button Width= 120 >1</ Button> <Button Width= 100 >2</ Button> <Button Width= 100 >3</ Button> </ WrapPanel> Kód 1.8: WrapPanel Obr. 1.18: WPF aplikace - WrapPanel DockPanel funguje tak, že přilepí kontrolky k jednomu ze 4 okrajů a ostatní element vyplní zbylé místo. Kontrolkám uvnitř musíme stejně jako třeba u kontrolky Grid nastavit, kde se mají nacházet v tomto případě, kde se mají přilepit. <WrapPanel> <Button Width= 120 >1</ Button> <Button Width= 100 >2</ Button> <Button Width= 100 >3</ Button> </ WrapPanel> Kód 1.9: WrapPanel 31
32 Obr. 1.19: WPF aplikace - DockPanel Canvas slouží k absolutnímu určení pozice. Tento LayoutControl není příliš vhodný pro tvorbu formulářů. Využití však najde pokud v některých graficky náročnějších kombinacích. <Canvas> <Button Canvas. Top= 20 Canvas. L e f t= 100 >TEST 1</Button> <Button Canvas. Top= 15 Canvas. L e f t= 50 >TEST 2</Button> <Button Canvas. Top= 5 Canvas. L e f t= 5 >TEST 3</ Button> </ Canvas> Kód 1.10: Canvas Obr. 1.20: WPF aplikace - Canvas Se znalostí těchto prvků WPF se můžeme pustit do designování formulářů. Další ovládací prvky jsou podobné jako v ASP.NET nebo WindowsForms Styly Ve WPF máme široké možnosti jak udělat z obyčejných kontrolek kontrolky neobyčejné. Možnosti úpravy vzhledu jsou opravdu široké. Lze nastavovat různé parametry jako barva pozadí, textu atd. Lze však kontrolkám vtisknout i zcela vlastní šablonu jak by měly vypadat. Funkce kontrolky zůstává stejná, ale její vzhled lze upravovat zcela k nepoznání. Většinou je však hlavním požadavkem jednotný vzhled aplikace. Bylo by velmi náročné psát například pro každé jedno tlačítko jeho vzhled. Navíc pokud bychom se rozhodli změnit vzhled aplikace museli bychom pracně přepisovat každé tlačítko. Proto ve WPF existují styly, což jsou vlastně množiny určitých vlastností. Můžou 32
33 obsahovat jednoduché vlastnosti jako velikost a barvu písma atd. Ale je možné nimi nastavovat celé šablony ovládacích prvků, ale to si ukážeme později. Základní použití stylu vypadá asi takto jako v kódu 1.11 a výsledek pak na obrázku <StackPanel O r i e n t a t i o n= V e r t i c a l > <StackPanel. Resources> <S t y l e TargetType= Button > <S e t t e r Property= Button. Background Value= Blue /> <S e t t e r Property= Button. Foreground Value= White /> <S e t t e r Property= Button. Margin Value= 5 /> </ S t y l e> <S t y l e x:key= BlueButton > <S e t t e r Property= Button. FontWeight Value= Bold /> <S e t t e r Property= Button. Margin Value= 5 /> </ S t y l e> </ StackPanel. Resources> <Button>Test1</ Button> <Button S t y l e= S t a t i c R e s o u r c e BlueButton } >Test2</Button> </ StackPanel> Kód 1.11: WPF - Ukázka stylů Obr. 1.21: WPF - Ukázka jednoduchých stylů Styly lze používat podobným způsobem jako například CSS 7 při psaní HTML formulářů a webových stránek. V příkladu jsme si ukázali styl pojmenovaný a obecný. Rozdíl je v atributu TargetType. Ten určuje na jaký typ kontrolky má být styl aplikován obecně. Takže pokud tento nepovinný parametr vyplníme bude se styl aplikovat automaticky na všechny kontrolky v elementu, kde byl styl definován. U Pojmenovaných stylů musíme styl v kontrolce explicitně přiřadit, aby se aplikoval. Stejně jako u CSS lze styly ve WPF dědit. Nefunguje to však automaticky, ale musí se nastavit parametr BasedOn, který určuje rodičovský styl zděděneho stylu. 7 Cascading Style Sheets (CSS) je jazyk pro popis způsobu zobrazení stránek napsaných v jazycích HTML, XHTML nebo XML 33
34 Dependency Properties Než přejdeme k dalším vlastnostem WPF bylo by dobré říct si něco o tzv. Dependency Properties. Jedná se o speciální vlastnosti kontrolek. Jejich zvláštnost spočívá ve schopnosti přebírat hodnoty od nadřazených prvků v nichž se kontrolka nachází. Kontrolka hledá postupně ve stromu elementů až narazí na požadovanou Dependency vlastnost, kterou pak použije. Zápis může pak vypadat následujícím způsobem: <StackPanel O r i e n t a t i o n= V e r t i c a l TextElement. Foreground= Green > <TextBlock>Ja jsem taky TextElement!</ TextBlock> <StackPanel TextElement. Foreground= Red > <TextBlock>Já jsem cervený!</ TextBlock> </ StackPanel> </ StackPanel> Kód 1.12: WPF - Dependency property Na obrázku 1.22 vidíme, že kontrolky použily tu Dependency vlastnost, která je jim ve stromu elementů nejblíž. Obr. 1.22: WPF - Použití Dependency properties Trigry Trigr je označení pro podmínku spouštějící nějakou událost v událostmi řízeném programování. V jazyce XAML nám umožňují trigry reagovat na určitou změnu vlastností daného prvku, datovou proměnnou nebo nějakou jinou událost. Rozdělujeme je tedy na: Property triggers Tento typ trigrů reaguje na změnu proměnných. Pokud se nějaká proměnná změní tak aby odpovídala podmínce můžeme vyvolat změnu vlastností pomocí elementu Setter. Jak může jednoduchý triger vypadat vidíme zde: 34
35 <StackPanel. Resources> <S t y l e TargetType= Button > <S t y l e. T r i g g e r s> <Trigger Property= Button. IsMouseOver Value= true > <S e t t e r Property= Button. Foreground Value= Red /> <S e t t e r Property= Button. FontWeight Value= Bold /> </ Trigger> </ S t y l e. T r i g g e r s> <S e t t e r Property= Button. Margin Value= 5 /> </ S t y l e> </ StackPanel. Resources> Kód 1.13: WPF - Property trigr Data triggers Data trigry umí reagovat na změny v uživatelských proměnných. Event triggers Event trigry jsou omezené pouze na používaní s animacemi. Reagují na nějakou událost kontrolky. U tlačítka může být touto událostí například klik. Hlavní využití nacházejí triggery v oživení uživatelského rozhraní. Na základě trigrů můžeme nastavovat různé vlastnosti kontrolek a také upravovat jejich styly Šablony Prozatím jsme si ukázali ve stylech pouze jednoduchá nastavení vzhledu. Pomocí stylů však můžeme aplikovat na danou kontrolku šablony, které nám umožňují zcela zásadně proměnit vhled kontrolky. Použití vlastního vzhledu však neztrácíme původní funkčnost kontrolky. Možnosti jak upravit kontrolku jsou takřka neomezené. Pro ukázku nám, ale stačí následující úprava tlačítka. <S t y l e TargetType= x:type Button} > <S e t t e r Property= Template > <S e t t e r. Value> <ControlTemplate> <Border BorderBrush= Red Padding= 3 Margin= 3 CornerRadius= 4 Background= TemplateBinding Button. Background} > <ContentPresenter Content= TemplateBinding Button. Content } /> </ Border> </ ControlTemplate> 35
36 </ S e t t e r. Value> </ S e t t e r> <S e t t e r Property= Button. Background Value= LightBlue /> <S t y l e. T r i g g e r s> <Trigger Property= IsMouseOver Value= true > <S e t t e r Property= Button. Background Value= Pink /> </ Trigger> </ S t y l e. T r i g g e r s> </ S t y l e> Kód 1.14: WPF - Ukázka šablony Obr. 1.23: WPF - Použití šablony Data Binding V podstatě každá aplikace zpracovává a vypisuje nějaká data, proto je nutné si říci taky něco o vypisování dat ve WPF. Asi nejpohodlnějším způsobem jak data ve WPF vypsat, je použít nějaký opakovací prvek jako například ListBox, ListView atd. Samozřejmě můžeme data i manuálně v kódu. Zajímavější však bude, ukázat si výpis například pomocí kontrolky ListBox. Tyto opakovací kontrolky mají již připravenou vlastnost ItemSource, které pouze přiřadíme kolekci datových objektů a kontrolka je schopna data ihned vypsat. Je nutné pouze definovat vzhled položky. To můžeme provést například pomocí šablony aplikované stylem jak se můžeme podívat na následujícím kódu. <S t y l e TargetType= x:type ListBoxItem } > <S e t t e r Property= Template > <S e t t e r. Value> <ControlTemplate TargetType= x:type ListBoxItem } > <Grid Margin= 3 > <Grid. ColumnDefinitions> <ColumnDefinition Width= 30 /> <ColumnDefinition /> </ Grid. ColumnDefinitions> <Border Grid. Column= 0 36
37 Width= 20 Height= 20 Background= Binding Barva, Converter=S t a t i c R e s o u r c e ColorConverter }} > </ Border> <TextBlock Grid. Column= 1 Foreground= Black Text= Binding Name} ></ TextBlock> </ Grid> </ ControlTemplate> </ S e t t e r. Value> </ S e t t e r> </ S t y l e> Kód 1.15: WPF - Data Binding Definice proměnné, kterou chceme vytáhnout z datového objektu, se provádí pomocí složených závorek a klíčového slova Binding. Takto jednoduchý výpis však na složitější aplikace nestačí. Někdy je potřeba základní datovou hodnotu převést na jinou hodnotu vhodnou pro zobrazení. Proto ve WPF existují tzv. ValueConverter Konvertory Jak již bylo zmíněno, tak k převodu jednoduchých hodnot na zobrazitelné hodnoty použijeme konvertor. Jedná se o třídu implementující rozhraní IValueConverter. V podstatě se jedná o třídu s metodou přijímající vstupní parametr, daný většinou právě konstrukcí s Binding, kterou převede na požadovaný výstupní objekt. Použití konvertoru můžeme vidět u předchozího úryvku kódu v nastavení barvy pozadí elementu Border. Aby však bylo možné konvertor použít je nutné ho definovat v XAML kódu. <local:colorconverter x:key="colorconverter" /> a také přidat referenci jmenného prostoru, kde se konvertor nachází, do parametrů Window elementu. Základní implementace třídy ColorConverter může vypadat asi takto: public class ColorConverter : IValueConverter #r e g i o n IValueConverter Members public object Convert ( object value, Type targettype, object parameter, System. G l o b a l i z a t i o n. C u l t u r e I n f o c u l t u r e ) string barva = ( string ) value ; switch ( barva ) case Modrá : return Brushes. Blue ; case Zelená : return Brushes. Green ; 37
38 } } case Cervená : return Brushes. Red ; default : return Brushes. White ; public object ConvertBack ( object value, Type targettype, object parameter, System. G l o b a l i z a t i o n. C u l t u r e I n f o c u l t u r e ) throw new NotImplementedException ( ) ; } } #endregion Kód 1.16: WPF - Konvertor hodnot Aby bylo vše jasné, je třeba si ukázat datový objekt, data a také výsledek dosažený použitím konvertoru. public c l a s s MojeDatovaTrida public string Name get ; s e t ; } public string Barva get ; s e t ; } } Kód 1.17: WPF - Datový objekt private void Window Loaded ( object s e n d e r, RoutedEventArgs e ) List <MojeDatovaTrida> l i s t = new List <MojeDatovaTrida >(); l i s t. Add(new MojeDatovaTrida ( ) Name = Karel, Barva = Modrá } ) ; l i s t. Add(new MojeDatovaTrida ( ) Name = Petr, Barva = Cervená } ) ; l i s t. Add(new MojeDatovaTrida ( ) Name = Kuba, Barva = Zelená } ) ; } MyListBox. ItemsSource = l i s t ; Kód 1.18: WPF - Naplnění kolekce Koncová klientská aplikace ve WPF V předchozích částech práce věnovaných základům WPF jsme se seznámili s dostatečnými informacemi, abychom mohli vytvořit opravdu profesionálně vypadající aplikaci. Jako demonstraci použiji klientskou aplikaci využívající naší klientskou vrstvu IM systému, kterou jsem vytvořil během studia technologie WPF. 38
39 Obr. 1.24: WPF - Použití konvertoru Obr. 1.25: WPF ukázka - Přihlašovací dialog Obr. 1.26: WPF ukázka - Registrační dialog dialog 39
40 Obr. 1.27: WPF ukázka - Seznam kontaktů Obr. 1.28: WPF ukázka - Okno diskuze 40
Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework
Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework úvod, historie, základy.net framework, programovací jazyky, vývojové prostředky Úvod strana 2 Cíl předmětu Seznámit se s vývojem aplikací
Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework
Web Jaroslav Nečas Obsah přednášky Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework Co to je web HTTP protokol bezstavový GET POST HEAD Cookies Session HTTPS
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í
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é
Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace
Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace Předmět: Vývoj aplikací Téma: Visual Studio Vyučující: Ing. Milan Káža Třída: EK3 Hodina: 19,2 Číslo: V/5 Programování
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
Databázové aplikace pro internetové prostředí. 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku
Databázové aplikace pro internetové prostředí 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku Projekt: Inovace výuky prostřednictvím ICT Registrační číslo: CZ.1.07/1.5.00/34.250
Informační systém pro e-learning manuál
Informační systém pro e-learning manuál Verze 1.00 Úvod Tento dokument popisuje způsob práce s informačním systémem pro elektronické vzdělávání. Systém je určený pro vytvoření elektronického kurzu a jeho
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
První kapitola úvod do problematiky
První kapitola úvod do problematiky Co je to Flex Adobe Flex je ActionSript (AS) framework pro tvorbu Rich Internet Aplications (RIA), tedy knihovna AS tříd pro Flash. Flex používáme k vytvoření SWF souboru
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
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
MS SQL Server 2008 Management Studio Tutoriál
MS SQL Server 2008 Management Studio Tutoriál Vytvoření databáze Při otevření management studia a připojením se ke konkrétnímu sql serveru mám v levé části panel s názvem Object Explorer. V tomto panelu
INFORMAČNÍ SYSTÉMY NA WEBU
INFORMAČNÍ SYSTÉMY NA WEBU Webový informační systém je systém navržený pro provoz v podmínkách Internetu/intranetu, tzn. přístup na takový systém je realizován přes internetový prohlížeč. Použití internetového
Software602 Form Designer
Software602 Form Designer Javascriptový vyhodnocovací mechanismus výrazů Aktualizováno: 17. 3. 2017 Software602 a.s. Hornokrčská 15 140 00 Praha 4 tel: 222 011 602 web: www.602.cz e-mail: info@602.cz ID
Programování v jazyce VISUAL BASIC.NET
GYMNÁZIUM ŠTERNBERK Programování v jazyce VISUAL BASIC.NET JAROSLAV ZAVADIL 1. ČÁST ŠTERNBERK 2009 1 / 51 1. kapitola Úvod V následujících kapitolách se seznámíme s ukázkou programování ve vyšším programovacím
2 PŘÍKLAD IMPORTU ZATÍŽENÍ Z XML
ROZHRANÍ ESA XML Ing. Richard Vondráček SCIA CZ, s. r. o., Thákurova 3, 160 00 Praha 6 www.scia.cz 1 OTEVŘENÝ FORMÁT Jednou z mnoha užitečných vlastností programu ESA PT je podpora otevřeného rozhraní
1 Webový server, instalace PHP a MySQL 13
Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského
Ú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
Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý
Uživatelský manuál Aplikace GraphViewer Vytvořil: Viktor Dlouhý Obsah 1. Obecně... 3 2. Co aplikace umí... 3 3. Struktura aplikace... 4 4. Mobilní verze aplikace... 5 5. Vytvoření projektu... 6 6. Části
Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto
Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Registrační číslo projektu Šablona Autor Název materiálu / Druh CZ.1.07/1.5.00/34.0951 III/2 INOVACE A ZKVALITNĚNÍ VÝUKY PROSTŘEDNICTVÍM ICT
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
1 Administrace systému 3. 1.3 Moduly... 3 1.4 Skupiny atributů... 4 1.5 Atributy... 4 1.6 Hodnoty atributů... 4
CRM SYSTÉM KORMORÁN PŘÍRUČKA ADMINISTRÁTORA Obsah 1 Administrace systému 3 1.1 Uživatelské účty.................................. 3 1.2 Přístupová práva................................. 3 1.3 Moduly.......................................
Internet Information Services (IIS) 6.0
Internet Information Services (IIS) 6.0 V operačním systému Windows Server 2003 je obsažena i služba IIS v 6.0. Služba IIS poskytuje jak www server tak i některé další služby (FTP, NNTP,...). Jedná se
Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky
Google Web Toolkit Martin Šurkovský, SUR096 Vysoká škola Báňská - Technická univerzita Ostrava Katedra informatiky 29. března 2010 Martin Šurkovský, SUR096 (VŠB - TUO) Google Web Toolkit 29. března 2010
Informační systém pro podporu řízení, správu a zjišťování aktuálního stavu rozvrhované výuky
Studentská tvůrčí a odborná činnost STOČ 2011 Informační systém pro podporu řízení, správu a zjišťování aktuálního stavu rozvrhované výuky Information System For Computer Aided Course Planning and Scheduling
Úvod do aplikací internetu a přehled možností při tvorbě webu
CVT6 01a Úvod do aplikací internetu a přehled možností při tvorbě webu Internet a www Internet? Služby www ftp e-mail telnet NetNews konference IM komunikace Chaty Remote Access P2P aplikace Online games
Část IV - Bezpečnost 21. Kapitola 19 Bezpečnostní model ASP.NET 23
5 Obsah O autorech 15 O odborných korektorech 15 Úvod 16 Rozdělení knihy 16 Komu je tato kniha určena? 18 Co potřebujete, abyste mohli pracovat s touto knihou? 18 Sdělte nám svůj názor 18 Zdrojové kódy
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 -
Obsah Úvodem... 5 Co je to vlastně formulář... 6 Co je to šablona... 6 Jak se šablona uloží... 6 Jak souvisí formulář se šablonou...
Obsah Úvodem... 5 Co je to vlastně formulář... 6 Co je to šablona... 6 Jak se šablona uloží... 6 Jak souvisí formulář se šablonou... 7 Jak se formulář vytváří... 8 Návrh formuláře... 8 Co jsou ovládací
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
APS Administrator.OP
APS Administrator.OP Rozšiřující webový modul pro APS Administrator Přehled přítomnosti osob v oblastech a místnostech Instalační a uživatelská příručka 2004 2013,TECH FASS s.r.o., Věštínská 1611/19, Praha,
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í
Instalace a konfigurace web serveru. WA1 Martin Klíma
Instalace a konfigurace web serveru WA1 Martin Klíma Instalace a konfigurace Apache 1. Instalace stáhnout z http://httpd.apache.org/ nebo nějaký balíček předkonfigurovaného apache, např. WinLamp http://sourceforge.net/projects/winlamp/
Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání
Čtvrtek 3. listopadu Makra v Excelu Obecná definice makra: Podle definice je makro strukturovanou definicí jedné nebo několika akcí, které chceme, aby MS Excel vykonal jako odezvu na nějakou námi definovanou
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
APS Web Panel. Rozšiřující webový modul pro APS Administrator. Webové rozhraní pro vybrané funkce programového balíku APS Administrator
APS Web Panel Rozšiřující webový modul pro APS Administrator Webové rozhraní pro vybrané funkce programového balíku APS Administrator Instalační a uživatelská příručka 2004 2016,TECH FASS s.r.o., Věštínská
Platformy / technologie. Jaroslav Žáček
Platformy / technologie Jaroslav Žáček jaroslav.zacek@osu.cz Které platformy / technologie znáte Java Trocha historie Java EE Java EE 5 Java EE 6 Pruning, Extensibility Ease of Dev, CDI, JAX-RS Java EE
MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ
MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ M. Sysel, I. Pomykacz Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky Nad Stráněmi 4511, 760 05 Zlín, Česká republika
Informační a komunikační technologie pro učební obory ME4 a SE4. Makra
Informační a komunikační technologie pro učební obory ME4 a SE4 Makra I. část Praha 2012 2013 Zpracoval: Ing. Pavel branšovský pro potřebu VOŠ a SŠSE Volně použito podkladů z internetu a kolegů ze školy
Bakalářské práce realizované v.net/c# Bachelor thesis implemented in.net/c#
Bakalářské práce realizované v.net/c# Bachelor thesis implemented in.net/c# Ing. Marek Musil 1 Abstrakt Platforma.NET je používána k vytváření velmi efektivních a uživatelsky přívětivých aplikací. Nabízí
PROGRAMOVÁNÍ PRO MS WINDOWS 1
Cílem předmětu je seznámit posluchače s moderními prostředky pro tvorbu aplikací pro Windows jmenovitě s programovou platformou.net a programovacím jazykem C#. V průběhu budou vysvětlena následující témata:
Maturitní témata Školní rok: 2015/2016
Maturitní témata Školní rok: 2015/2016 Ředitel školy: Předmětová komise: Předseda předmětové komise: Předmět: PhDr. Karel Goš Informatika a výpočetní technika Mgr. Ivan Studnička Informatika a výpočetní
Reliance 3 design OBSAH
Reliance 3 design Obsah OBSAH 1. První kroky... 3 1.1 Úvod... 3 1.2 Založení nového projektu... 4 1.3 Tvorba projektu... 6 1.3.1 Správce stanic definice stanic, proměnných, stavových hlášení a komunikačních
Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM. Manuál pro administrátory. Verze 1.
Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM Manuál pro administrátory Verze 1.0 2012 AutoCont CZ a.s. Veškerá práva vyhrazena. Tento
PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK
PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK JAROSLAV.ZACEK@OSU.CZ KTERÉ PLATFORMY / TECHNOLOGIE ZNÁTE JAVA TROCHA HISTORIE JAVA EE Java EE 7! Java EE 6 Java EE 5 J2EE 1.4 J2EE 1.3 J2EE 1.2 Servlet, JSP, EJB,
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
Aktivní webové stránky Úvod: - statické webové stránky: pevně vytvořený kód HTML uložený na serveru, ke kterému se přistupuje obvykle pomocí protokolu HTTP (HTTPS - zabezpečený). Je možno používat i různé
MBI - technologická realizace modelu
MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,
Základy datových vazeb Silverlightu. Funkce Silverlightu 2. Podpora jazyků a technologie.net Framework
Funkce Silverlightu 2 Podpora jazyků a technologie.net Framework Model pro popis webových služeb a jejich operací Volná vázanost datových služeb Nový model ovládacích prvků LINQ to Objects a UNQ to XML
DUM 14 téma: Interakce s uživatelem
DUM 14 téma: Interakce s uživatelem ze sady: 2 tematický okruh sady: Tvorba statických www stránek s použitím CSS ze šablony: 08 Internet určeno pro: 3. ročník vzdělávací obor: 18-20-M/01 Informační technologie
1. Webový server, instalace PHP a MySQL 13
Úvod 11 1. Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského
EMBARCADERO DATASNAP. OBSAH Úvod... 2 DataSnap a DBExpress... 2 Serverová část... 2 VCL Klient... 6 Nasazení... 7
EMBARCADERO DATASNAP OBSAH Úvod... 2 DataSnap a DBExpress... 2 Serverová část... 2 VCL Klient... 6 Nasazení... 7 ÚVOD DataSnap je jednou z nejdůležitějších technologií obsažených v nástrojích Delphi a
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
Možnosti tisku v MarushkaDesignu
0 Možnosti tisku v MarushkaDesignu OBSAH 1 CÍL PŘÍKLADU...2 2 PRÁCE S PŘÍKLADEM...2 3 UKÁZKA DIALOGOVÉHO OKNA...3 4 STRUČNÝ POPIS PŘÍKLADU V MARUSHKADESIGNU...5-1 - 1 Cíl příkladu V tomto příkladu si ukážeme
Statistica Enterprise
Statistica Enterprise díl první Newsletter Statistica ACADEMY Téma: Enterprise, možnosti software Typ článku: Příklad V starším článku jsme si představili jednotlivé typy licencí softwaru Statistica. V
Animace ve WPF. Filip Gažák. Ing. Václav Novák, CSc. Školní rok: 2008-09
Animace ve WPF Filip Gažák Ing. Václav Novák, CSc. Školní rok: 2008-09 Abstrakt Hlavním tématem práce bude nový prvek pro tvorbu uživatelského prostředí ve WPF animace. V teoretické části se nejprve seznámíme
Práce s programem MPVaK
Práce s programem MPVaK Tato informace popisuje postup práce s programem "MPVaK Vybrané údaje z majetkové a Vybrané údaje z provozní evidence. Jsou v ní popsány nejdůležitější úlohy, které budete s programem
Stručný obsah. Část I. Část II. Část III. Úvod do vývoje v prostředí Visual Studio 25. Návrh uživatelského rozhraní 127
Stručný obsah Část I Úvod do vývoje v prostředí Visual Studio 25 1. Možnosti vývoje v jazyce Visual Basic a Windows Store 27 2. Integrované vývojové prostředí Visual Studio 41 3. Vytvoření první aplikace
Programování v jazyku C# II. 8.kapitola
Programování v jazyku C# II. 8.kapitola Obsah Kontrolky Validace Stavy Bezpečnost 2/27 Web formuláře Kontrolky na formuláři označené atributem runat="server" HTML kontrolky těsně kopírují rozhraní dané
MS Excel makra a VBA
Autor: RNDr. Obsah: MS Excel makra a VBA 1 Využití, ukázky, výhody a nevýhody... 2 2 Makra a zabezpečení... 2 2.1 Nastavení zabezpečení Excelu... 2 2.2 Uložení maker do sešitu a osobního sešitu maker...
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
Úvod do tvorby internetových aplikací
CVT6 01a Úvod do tvorby internetových aplikací Osnova předmětu (X)HTML a tvorba webu pomocí přímého zápisu kódu Tvorba web designu a skládání stránek z kousků Skriptovací jazyky na webu Návrh software
Web. Získání informace z internetu Grafické zobrazení dat a jejich struktura Rozšíření funkcí pomocí serveru Rozšíření funkcí pomocí prohlížeče
Web Získání informace z internetu Grafické zobrazení dat a jejich struktura Rozšíření funkcí pomocí serveru Rozšíření funkcí pomocí prohlížeče Technologické trendy v AV tvorbě, Web 2 DNS Domain Name Systém
STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE
STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE WEBOWÉ STRÁNKY TŘÍD KAMIL POPELKA ZÁVĚREČNÁ MATURITNÍ PRÁCE BRNO 2011 Prohlášení Prohlašuji, že maturitní práce je mým původním autorským dílem, které
PROGRAMOVÁNÍ PRO MS WINDOWS 1
Jazyk C# je moderní jazyk z rodiny jazyků podporovaných aplikačním prostředím.net. Cílem předmětu je seznámit posluchače s tímto objektovým jazykem, a s programováním aplikací pro MS Windows. V průběhu
Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky. Dokumentace k programu MMDoc
Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky Dokumentace k programu MMDoc Vypracoval: Petr Dvořák Datum: 15.prosince 2005 1. Úvod 1.1. Účel tohoto dokumentu
Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni
Webové aplikace Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni Harmonogram Dopolední blok 9:00 12:30 Ing. Dostal Úvod, XHTML + CSS Ing. Brada,
Uživatelský manuál aplikace. Dental MAXweb
Uživatelský manuál aplikace Dental MAXweb Obsah Obsah... 2 1. Základní operace... 3 1.1. Přihlášení do aplikace... 3 1.2. Odhlášení z aplikace... 3 1.3. Náhled aplikace v jiné úrovni... 3 1.4. Změna barevné
Formátování pomocí stylů
Styly a šablony Styly, šablony a témata Formátování dokumentu pomocí standardních nástrojů (přímé formátování) (Podokno úloh Zobrazit formátování): textu jsou přiřazeny parametry (font, velikost, barva,
Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.
Přednáška 5 1. Stručný přehled vývoje html H T m l (HTML...XML... html5), (Web API, JSON, REST,AJAX) 2. Některé související IT IP adresa, doménová adresa, name servery JavaScritp, Jquery, Angular PHP vs
02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox
02. HODINA Obsah: 1. Typy souborů a objektů 2. Ovládací prvky Label a TextBox 3. Základní příkazy a vlastnosti ovládacích prvků 4. Práce s objekty (ovládací prvky a jejich vlastnosti) 2.1 Typy souborů
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
Základní popis Toolboxu MPSV nástroje
Základní popis Toolboxu MPSV nástroje Nástroj XLS2DBF ze sady MPSV nástroje slouží pro zkonvertování souboru ve formátu XLS do formátu DBF. Nástroj umožňuje konvertovat buď vybraný list nebo listy ze sešitu
1. Úvod do Ajaxu 11. Jak Ajax funguje? 13
Obsah Úvodem 9 1. Úvod do Ajaxu 11 Jak Ajax funguje? 13 Popis 13 Ukázky 13 Jaké jsou možnosti tvorby interaktivních webových aplikací? 15 Co je třeba znát? 16 Jak fungují technologie Ajaxu 16 Jak funguje
DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:
DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP Maturitní projekt Vypracoval: Denis Ptáček Třída: 4B Rok: 2014/2015 Obsah 1. Použité nástroje... 3 1.1 NetBeans
Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN
Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím ICT Číslo projektu: CZ.1.07/1.5.00/34.0940
WCF. IW5 - Programování v.net a C# WCF
IW5 - Programování v.net a C# Strana 1 Obsah přednášky Představení Konfigurace hosta Vygenerování klienta Několik názorných příkladů Strana 2 Co to je Windows Communication Foundation Náhrada za COM, DCOM,.NET
2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.
2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena. GEOVAP, spol. s r. o. Čechovo nábřeží 1790 530 03 Pardubice Česká republika +420 466 024 618 http://www.geovap.cz V dokumentu použité názvy programových
Programátorská příručka
KAPITOLA 1. PROGRAMÁTORSKÁ PŘÍRUČKA Kapitola 1 Programátorská příručka 1.1 Úvod 1.1.1 Technologie Program je psaný v jazyce Java 1.7. GUI je vytvářeno pomocí knihovny SWT. (http://eclipse.org/swt/) Pro
Maturitní otázka webové stránky (technologie tvorby webu) Co znamená pojem Web? Web, www stránky, celým názvem World Wide Web,
Maturitní otázka webové stránky (technologie tvorby webu) Co znamená pojem Web? Web, www stránky, celým názvem World Wide Web, v doslovném překladu "světová rozsáhlá síť neboli celosvětová síť, je označení
Práce se styly 1. Styl
Práce se styly 1. Styl Styl se používá, pokud chceme, aby dokument měl jednotný vzhled odstavců. Můžeme si nadefinovat styly pro různé úrovně nadpisů, jednotlivé popisy, charakteristiky a další odstavce.
KAPITOLA 2 - ZÁKLADNÍ POJMY INFORMAČNÍCH A KOMUNIKAČNÍCH TECHNOLOGIÍ
KAPITOLA 2 - ZÁKLADNÍ POJMY INFORMAČNÍCH A KOMUNIKAČNÍCH TECHNOLOGIÍ KLÍČOVÉ POJMY Internet World Wide Web FTP, fulltext e-mail, IP adresa webový prohlížeč a vyhledávač CÍLE KAPITOLY Pochopit, co je Internet
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
APS Administrator.ST
APS Administrator.ST Rozšiřující webový modul pro APS Administrator Webové rozhraní sledování docházky studentů Instalační a uživatelská příručka 2004 2016,TECH FASS s.r.o., Věštínská 1611/19, Praha, www.techfass.cz,
Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu
StatSoft Typy souborů ve STATISTICA Tento článek poslouží jako přehled hlavních typů souborů v programu STATISTICA, ukáže Vám jejich možnosti a tím Vám dovolí využívat program efektivněji. Jistě jste již
Vytvoření uživatelské šablony
Inženýrsky manuál č. 40 Aktualizováno: 11/2018 Vytvoření uživatelské šablony Program: Stratigrafie - Dokumentace Soubor: Demo_manual_40.gsg Cílem tohoto inženýrského manuálu je ukázat vytvoření vlastní
Základy programování (C#) Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1134_Základy programování (C#) _PWP
Základy programování (C#) Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1134_Základy programování (C#) _PWP Název školy: Číslo a název projektu: Číslo a název šablony klíčové aktivity: Označení
InterSystems Caché Post-Relational Database
InterSystems Caché Post-Relational Database Martin Holoubek xholoub@fi.muni.cz Úvod InterSystems byla založena shodou okolností ve stejném roce jako její největší konkurent Oracle 1978 Caché je velmi vyspělý
APS Web Panel. Rozšiřující webový modul pro APS Administrator
APS Web Panel Rozšiřující webový modul pro APS Administrator Přehled přítomnosti osob v oblastech a místnostech, změna uživatelského hesla a PINu a nastavení časového plánu Instalační a uživatelská příručka
Specifikace softwarového díla & Časový plán implementace. pro. MEF Editor
Specifikace softwarového díla & Časový plán implementace pro MEF Editor Cílem projektu je vytvoření pluginu do vývojového prostředí Visual Studio 2010. Plugin bude umožňovat grafickou editaci objektů spojených
My si nyní takovou sestavu vytvoříme na příkladu jednoduché kanceláře. Začneme vytvořením takové kanceláře.
Sestavy Sestavy (angl. Reports) slouží ve Visiu k rychlému vytvoření přehledného souhrnu informací o objektech na výkresu. Visio umí tyto stručné sestavy vytvářet jako sešit programu Excelu, ve formátu
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
Django. Webový framework pro Python Projekt = webová stránka Aplikace = určitá funkcionalita webu
Django Django Webový framework pro Python Projekt = webová stránka Aplikace = určitá funkcionalita webu Instalace Django ve Windows Nutné mít nainstalovaný Python Ověříte příkazem py --version Stáhnout
INSTALACE PRODUKTU ONTOPIA KNOWLEDGE SUITE
INSTALACE PRODUKTU ONTOPIA KNOWLEDGE SUITE profesionální verze 1 Obsah Požadavky... 3 Instalace... 3 Proměnná CLASSPATH... 3 Zpřístupnění licenčního klíče... 3 Ověřování komponent OKS. 3 Spouštíme aplikaci
Microsoft Office 2003 Souhrnný technický dokument white paper
Microsoft Office 2003 Souhrnný technický dokument white paper Přehled inteligentních klientských aplikací založených na sadě Microsoft Office 2003 System Publikováno: Duben 2003 Shrnutí: Inteligentní klienti
Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto
Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Registrační číslo projektu Šablona Autor Název materiálu / Druh CZ.1.07/1.5.00/34.0951 III/2 INOVACE A ZKVALITNĚNÍ VÝUKY PROSTŘEDNICTVÍM ICT
1. Nastavení dokumentu
Obsah as a asta 2. Okno / více dokumentů otevírání, zavírání, vytváření nového, přepínání, ukládání 3. Barevný režim dokumentu 4. Zobrazení, vlastní pohledy 5. Objekty vkládání 1. Nastavení dokumentu Uprostřed
Příloha 6. Palety nástrojů
Příloha 6. Palety nástrojů Palety nástrojů v IDE poskytují zkrácení pro příkazy nabídky. Příkazy jsou rozděleny do několika palet nástrojů, které mohou být nezávisle přeskupeny nebo vloženy do plovoucích