Sem vložte zadání Vaší práce.

Rozměr: px
Začít zobrazení ze stránky:

Download "Sem vložte zadání Vaší práce."

Transkript

1 Sem vložte zadání Vaší práce.

2

3 České vysoké učení technické v Praze Fakulta informačních technologií Katedra softwarového inženýrství Bakalářská práce Cesta k bohatství (internetová aplikace) Lukáš Kmoch Vedoucí práce: Ing. Martin Půlpitel 22. května 2012

4

5 Poděkování Chtěl bych poděkovat Ing. Martinu Půlpitelovi za pomoc při psaní práce a jeho konstruktivní připomínky, stejně tak jako Ing. Josefu Gattermayerovi za oponenturu práce. V neposlední řadě děkuji také rodičům, za obrovskou trpělivost, kterou se mnou měli při psaní práce.

6

7 Prohlášení Prohlašuji, že jsem předloženou práci vypracoval samostatně a že jsem uvedl veškeré použité informační zdroje v souladu s Metodickým pokynem o etické přípravě vysokoškolských závěrečných prací. Beru na vědomí, že se na moji práci vztahují práva a povinnosti vyplývající ze zákona č. 121/2000 Sb., autorského zákona, ve znění pozdějších předpisů, zejména skutečnost, že České vysoké učení technické v Praze má právo na uzavření licenční smlouvy o užití této práce jako školního díla podle 60 odst. 1 autorského zákona. V Praze dne 22. května

8 České vysoké učení technické v Praze Fakulta informačních technologií c 2012 Lukáš Kmoch. Všechna práva vyhrazena. Tato práce vznikla jako školní dílo na Českém vysokém učení technickém v Praze, Fakultě informačních technologií. Práce je chráněna právními předpisy a mezinárodními úmluvami o právu autorském a právech souvisejících s právem autorským. K jejímu užití, s výjimkou bezúplatných zákonných licencí, je nezbytný souhlas autora. Odkaz na tuto práci Lukáš Kmoch. Cesta k bohatství (internetová aplikace): Bakalářská práce. Praha: ČVUT v Praze, Fakulta informačních technologií, 2012.

9 Abstract Bachelor s thesis The way to wealth deals with designing and the implementation of an educational web game. The game should, using questions, educate its players. Questions, which should serve as a food for thought and stimulate desire to get financial education. The objective of this game is, similar to Robert Kiyosakis books [1], to increase financial IQ. The aim of this bachelor s thesis is to choose the appropriate technology and use it for creation of an expandable web application which contains the game itself, discussion forum, players ranking and other functions. Keywords The way to wealth, education, web game, finance, business Abstrakt Bakalářská práce Cesta k bohatství se zabývá návrhem a implementací webové vzdělávací hry. Hry, která by měla formou otázek vzdělávat hráče. Otázek, které donutí hráče k zamyšlení a touze sebevzdělávat se v oblasti financí. Hra se tak snaží, stejně jako Robert Kiyosaki ve svých knihách [1], zvýšit finanční IQ. 9

10 Cílem bakalářské práce je zvolit vhodnou technologii a pomocí ní vytvořit rozšiřitelnou webovou aplikaci, která obsahuje samotnou hru, diskusní fórum, žebříček hráčů a další funkce. Klíčová slova Cesta k bohatství, vzdělání, webová hra, finance, podnikání 10

11 Obsah Úvod 17 1 O hře Myšlenka hry Pro koho je hra určena Otázky Rešerše existujících řešení Dobyvatel Cashflow Srovnání Analýza a návrh Agilní metodiky Požadavky na aplikaci Use case Grafický návrh Volba technologie Volba programovacího jazyku Volba databáze pro datovou vrstvu Volba serveru pro webovou aplikaci O zvolené technologii CSS AJAX jquery Realizace Subversion Přihlašování

12 5.3 Ovládací prvky Databáze Požadované funkce Testování Unit testy UI testy Web performance test Load test Shrnutí testů Nasazení ASP Cloud Computing a Windows Azure Dokumentace Doxygen Závěr 65 Návrhy do budoucna Literatura 67 A Seznam použitých zkratek 71 B Instalační a uživatelská příručka 73 B.1 Instalace B.2 Spuštění B.3 Uživatelská příručka C Obsah přiloženého CD 77 12

13 Seznam obrázků 3.1 Agilní vývojový cyklus software FDD vývojový cyklus software Use case aplikace Rozvržení stránek CKB Popularita webových serverů Model View Controller Membership provider Widget hodnocení otázky Diagram databáze CKB Výsledky unit testů Výsledky coded UI testů Load test summary Load test summary Load test graf Load test treshold violations Cloud Computing B.1 Vzhled aplikace B.2 Vzhled hry

14

15 Seznam tabulek 3.1 Statistika rozlišení monitorů

16

17 Úvod Myšlení je nejtěžší práce, která existuje. To je pravděpodobně důvod, proč tak málo lidí myslí. [2] Henry Ford Myšlenka je základ každého bohatství. Bill Gates by se nikdy nemohl stát nejbohatším mužem planety, pokud by nepřemýšlel. Mark Zuckerberg by nemohl stát na počátku obrovsky úspěšné webové aplikace Facebook, nebýt prvotní myšlenky. Bohatství je všude kolem nás, stačí se pro něj ohnout. A právě myšlenka stojí i na počátku webové aplikace Cesta k bohatství myšlenka naučit se přemýšlet a zároveň vzdělat v oblasti podnikání, které umožňuje myšlenku realizovat. Bakalářská práce Cesta k bohatství (on-line hra) tak má za cíl vytvořit určitou cestu, která by zábavnou formou nasměrovala hráče k získání potřebných vědomostí. A touto cestou je webová aplikace. Webová aplikace, která je přístupná každému bez rozdílu věku, pohlaví a vzdělání. Aplikace, kterou je možné hrát i na starém počítači. Aplikace, která je 100% funkční, otestovaná a připravena pro využívání libovolným počtem hráčů. Aplikace, která obsahuje hru, jež hráče zaujme. Mimo samotné hry, která vzdělává hráče, se aplikace neobejde bez dalších částí. Tyto části hru dělají zábavnější a hratelnější. CKB 1 by tak neměla umožňovat pouze hraní hry. Měla by umožňovat ukládání výsledků, aby spolu mohli jednotliví hráči porovnávat dosažené znalosti a mohli tak mezi sebou soupeřit o to, kdo je tím nejlepším. Dále by aplikace měla obsahovat fórum, kde by hráči mohli diskutovat o hře a o otázkách samotných, stejně jako by její součástí mohla být část pro hodnocení otázek a tvorbu otázek nových. Otázky by tak mělo být možné jednoduše přidávat a uživatelé by si sami mohli zvolit znalosti, které považují za zajímavé a důležité. 1 CKB, Cesta k bohatství 17

18 Úvod Cílem práce tak je vytvořit základ aplikace, který by byl lehce rozšiřitelný a obsahoval všechny požadované části. Navrhnout vzhled aplikace, který nového návštěvníka stránek zaujme a bude obsahovat originální zajímavou myšlenku. Něco čím se odliší od ostatních webových aplikací. Nakonec aplikaci nasadit na vhodný webový server, aby si aplikaci mohl kdokoliv zahrát. 18

19 Kapitola 1 O hře 1.1 Myšlenka hry Cest k bohatství (a teď budu mluvit pouze o tom finančním) je nesčetné množství! Ať už je to cesta přes dobře placené zaměstnání, podnikání, zdědění finančních prostředků od rodičů a nebo talent na sport. Ta, na kterou nás tato hra připraví, je ale pouze jedna z nich, a to právě cesta podnikání. Proč právě podnikání? Protože podnikání umožňuje realizovat myšlenku. Není třeba mít žádný talent jako je tomu u sportu, stejně jako není třeba mít ani velké množství peněz. Jediné, co je třeba pro začátek podnikání, jsou vhodné znalosti a odhodlání něčeho dosáhnout. Co Vás tedy hra naučí? Odpovědět na teoretické, ale i praktické otázky z těchto oblastí: Finance Investování Podnikání Vedení týmu Práce s lidmi Organizace Motivace Cílem hry ale není pouze se naučit zodpovědět správně dané otázky. Cílem hry je naučit se přemýšlet, a to přemýšlet tak, jako to dělají bohatí lidé. 19

20 1. O hře Pěstování peněz Ve hře se můžete vydat dvěma směry. První možností je postupně procházet otázky z jednotlivých oblastí a tím "pěstovat"peníze na svém stromě. Druhou možností je tzv. volná cesta, kdy náhodně odpovídáte na otázky, diskutujete o otázkách a hádáte se o jejich správnosti. Pokud se rozhodnete pro první možnost, čeká vás výběr z několika témat. Pro splnění každého tématu musíte dosáhnout úspěšnosti alespoň 19 z 20 otázek. Po splnění tématu se zvedne vaše úroveň, zároveň také vypěstujete další bankovky na vašem stromě, který vás provází skrze celou hru. Současný vzhled stromu najdete pod záložkou Hodnocení. 1.2 Pro koho je hra určena Hra je určena pro kohokoliv, kdo se rád vzdělává, kdo chce získat vzdělání v některé z oblastí nebo jen vypěstovat co největší strom. Hru si však zároveň můžete zahrát, i když máte jen chvilku času a chcete pouze zkusit pár otázek ve volné hře. 1.3 Otázky Ukázka několika otázek, které hra obsahuje. V který den byl tzv. Černý pátek? Zkratka HDP označuje? Největší HDP má stát? Nejvíce zadlužený stát je? (Největší dluh v % HDP) Co znamená zkratka RPSN? Co to je Petrodolar? Jaká je snížená sazba DPH?(rok 2012) Jaká je základní sazba DPH?(rok 2012) Pojem Bear market označuje? Co to je pákový efekt? Perpetuita je? Co to znamená refinancovat hypotéku? Další otázky se nacházejí v hře. 20

21 Kapitola 2 Rešerše existujících řešení Aplikací, které se podobají CKB není mnoho. Mezi ty nejvíce podobné patří český Dobyvatel [33] a Cashflow [32], které se pokusím v následujících řádcích představit. 2.1 Dobyvatel Aplikace Dobyvatel je jednou z velmi oblíbených českých her obsahuje obrovskou základnu hráčů. Tato hra je postavena na jednoduché logice, kdy se hráč snaží obsadit co největší území zvoleného státu. Pro obsazení některé z částí státu hráč musí správně zodpovědět danou otázku. Hlavním rozdílem mezi CKB a Dobyvatelem je však téma otázek. Dobyvatel nemá pevně stanovené téma otázek. Implementace Základ aplikace Dobyvatel je implementován v jazyku PHP, a to ať už jde o žebříček hráčů, registraci do hry atd. Samotná hra je pak pomocí Adobe Flash. Nejde však pouze o hru: po zaregistrování se hráč může účastnit online chatu, turnajů, přidávat si přátele, a to vše právě pomocí již zmiňovaného Adobe Flash. 2.2 Cashflow Cashflow je online hra vytvořena Robertem Kiyosakim. Původně šlo o deskovou hru, ta ale byla rozšířena i na internet. Hlavním záměrem hry je zvýšit finanční IQ hráče a dostat se z tzv. krysího kolečka, přičemž zvyšování neprobíhá formou otázek, ale hraním hry zaměřené na investování. Hráč se tak musí správně rozhodovat a investovat co nejvýhodněji, a to tak, aby se dostal z krysího závodu. 21

22 2. Rešerše existujících řešení Implementace Podobně jako Dobyvatel využívá odlišný jazyk pro aplikaci a hru. Aplikace je postavena na ASP.NET Web Forms a samotná hra znovu na Adobe Flash. 2.3 Srovnání Přesto, že Cesta k bohatství, Dobyvatel a Cashflow mají několik společných rysů, srovnání je takřka nemožné. Dobyvatel totiž sice obsahuje podobně jako CKB otázky, myšlenka hry je však absolutně odlišná. U Cashflow jde o přesně opačný problém myšlenka hry je velmi podobná, za to samotný způsob hraní je odlišný. 22

23 Kapitola 3 Analýza a návrh 3.1 Agilní metodiky Důležitým bodem vývoje software je ujasnit si jakým způsobem bude vlastně software vyvíjen. V dnešní době existuje velké množství přístupů, které se zabývají vývojovým cyklem softwarového projektu. V posledních letech se upouští od klasických přístupů, jakými je například vodopádový nebo inkrementální přístup a začínají se využívat převážně agilní přístupy. Jak už napovídá sám název, hlavním kritériem vývoje takového software je rychlost 2. Na začátku projektu se stanoví nejmenší potřebná funkčnost a vývoj je přizpůsoben tak, aby jí bylo dosaženo v co nejmenším možném čase (probíhá takzvané období sprintu). Při agilním vývoji se na rozdíl od klasických metod vývoje software stanoví čas, kdy bude jeho vývoj ukončen. Tím, co se tedy mění, je pouze funkčnost celé aplikace. Dosáhne-li se požadované minimální funkčnosti rychleji než v požadovaném čase, stanoví se další funkce aplikace a vývoj tak pokračuje. Tento proces probíhá tak dlouho, dokud jsou požadovány další funkce a není dosaženo stanoveného data ukončení vývoje [3]. Agilní vývoj software se dá znázornit diagramem na obrázku 3.1. Využití agilních metodik při vývoji CKB je vhodné díky pevně danému datu odevzdání bakalářské práce. je třeba však ještě rozhodnout, kterou z možných agilních metodik využít. TDD, Test-driven development. XP, Extreme Programming. AUP, Agile Unified Process. FDD, Feature Driven Development. 2 Agile, hbitý 23

24 3. Analýza a návrh Obrázek 3.1: Agilní vývojový cyklus software. Převzato z [7] Feature-driven development FDD nepopisuje celý vývoj software; zabývá se pouze částí návrhu a implementace FDD tedy neřeší, kdy budou probíhat samotné testy. Testování aplikace tak může probíhat před samotným vývojem aplikace podle principu TDD a nebo až po napsání samotné featury. Vývoj aplikace CKB využívá druhý jmenovaný přístup. Samotné testování tedy probíhalo až po implementaci featury (více o testování aplikace v kapitole 6). Vývoj software podle FDD prochází 5 fázemi, přičemž poslední dvě se stále opakují. Viz obrázek 3.2. V první fázi je vytvořen model, který popisuje celou aplikaci. Cílem tohoto kroku ale není vytvořit přesný popis aplikace, model proto nemusí mít žádnou formální podobu. Hlavním cílem je, aby celý tým dobře, a pokud možno stejně, pochopil model řešeného problému. V druhé fázi je vytvořen seznam všech featur, přičemž featurami jsou v tomto případě všechny zákazníkem ohodnotitelné funkce. 24

25 3.2. Požadavky na aplikaci Obrázek 3.2: FDD vývojový cyklus software V třetí fázi vývoje je cílem vytvořit plán prací a přidělit featury hlavnímu programátorovi, který zodpovídá za jejich vývoj. Čtvrtá fáze se zabývá samotným návrhem zvolené featury; s celým týmem se procházejí jednotlivé požadavky a model se upravuje tak, aby obsahoval všechny detaily pro vytvoření požadované vlastnosti. V páté fázi již probíhá samotná implementace featury, kdy probíhá také i samotné testování (ať už před napsáním samotného kódu nebo až po napsání). Další informace o FDD lze nalézt [3]. 3.2 Požadavky na aplikaci Požadavky na aplikaci byly rozděleny do dvou částí: požadavky na uživatelské prostředí a požadavky systémové. Uživatelské: Jednoduchý a zároveň zajímavý grafický design Registrace hráčů Možnost uchování výsledků v databázi Zobrazení žebříčku hráčů Možnost přidávání a mazání otázek Umožnit hráčům hodnocení otázek Jednoduché fórum pro diskuzi 25

26 3. Analýza a návrh Obrázek 3.3: Use case aplikace Systémové Možnosti animace Vyhnout se již zastaralému Adobe Flash Snadná testovatelnost Levný hosting webového serveru Levný a zároveň výkonný hosting SQL serveru 3.3 Use case Požadované funkce aplikace byly zakresleny do use case diagramu Grafický návrh Při návrhu webových stránek je důležitá volba šířky stránky. V dnešní době spousta počítačů využívá obrovské 20" a větší monitory s rozlišením 1600x900. Na druhou stranu existuje i mnoho notebooků s 15" a menšími monitory, které využívají rozlišení 1024x768. Ze statistik 3.4 vyplývá, že nejvíce počítačů využívá rozlišení 1366x

27 3.4. Grafický návrh Rozlišení x % 11.64% 5.50% 1280x % 16.16% 18.47% 1024x % 18.55% 24.73% 1280x % 14.48% 16.84% 1680x % 6.66% 6.74% 1920x % 3.80% 1.93% 1440x % 6.08% 6.48% 1600x % 1.76% 0.78% Tabulka 3.1: Statistika rozlišení monitorů. Převzato z [8]. V tabulce je ještě jeden důležitý údaj: 13.66% počítačů využívá nízké rozlišení 1024x768. Proto je šířka webu CKB zvolena tak, aby i uživatelé se šířkou monitoru 1024 pixelů mohli stránky prohlížet bez jakýchkoli problémů. 3 GRID 960 Stránky optimalizované pro šířku 1024px by měly obsahovat okraje, a proto se využívá takzvaný 960 grid [12]. Jak už vyplývá z názvu, jde o návrh webových stránek o šířce 960px. Tento grid systém však neurčuje pouze šířku webové stránky; při využití grid systému je totiž celá webová stránka rozdělena na jednotlivé sloupce o pevně dané šířce. Webové stránky CKB využívají 16 sloupcový systém, kdy každý sloupec má šířku 40px a na každé straně 10px okraje. Rozvržení stránky Rozdělení stránky na sloupce samozřejmě nestačí, musel být také vytvořen kompletní layout 4 stránky s jasně daným umístěním hlavičky, patičky, loga, případných reklam a dalších prvků. Základní rozložení stránky je na obrázku 3.4. Při návrhu byla brána v potaz i možnost vložení reklamy, proto jsou v návrhu dvě místa, kam by reklama v budoucnu mohla být vložena. Místo v horní části je ideální pro banner 5 o velikosti 745x100px a do pravé spodní části může být umístěn například banner o velikosti 160x600px. V návrhu se samozřejmě počítá i se samotným prostorem pro hru, který má rozměry 640x480px. 3 Rozlišení s šířkou menší než 1024 pixelů je až na 18. pozici v zastoupení 0.46%. 4 Layout, rozvržení stránky 5 Banner, reklamní proužek 27

28 3. Analýza a návrh Obrázek 3.4: Rozvržení stránek CKB Vzhled Vzhled webových stránek je jedna z nejdůležitějších částí návrhu. Je to totiž právě vzhled (a v neposlední řadě samozřejmě zajímavý obsah stránek), co udrží náhodného návštěvníka na stránce. Grafickým návrhem webových stránek se zabývá mnoho talentovaných designérů, a proto je velmi těžké vytvořit web, který svým vzhledem opravdu zaujme. Shánět kvalitního designéra je složité a pochopitelně velmi drahé. Nabízí se však na tomto místě naštěstí mnoho alternativních řešení, jak dosáhnout kvalitního a působivého webu. Jednou z těch, kterou lze považovat za velice zajímavou, je využít některý z webů, jakým je třeba 99design. Tyto webové stránky jsou shromaždištěm grafických designérů. Jak tyto stránky fungují? Zadavatel na stránky vloží představu o vzhledu stránek; barvě, o tom, jaké texty by měla stránka obsahovat a další požadavky. Vloží cenu a datum do kdy má být návrh hotový. Designéři, které nabídka zaujala, začnou vypracovávat návrhy a umísťovat je na web. Na konci období si jen vyberete ten nejlepší návrh. Toto opravdu elegantní řešení však stále přináší mnoho problémů. Tím hlavním je, že za pár korun nepřesvědčíte žádného návrháře, aby návrh webu udělal a nebo stránky nebudou v požadované kvalitě. Více o 99designs [13].V takové situaci se nedá dělat nic jiného, než se spolehnout na vlastní grafické schopnosti programátora a využít co nejvíce prvků poskytovaných zvolenou technologií. 28

29 Kapitola 4 Volba technologie Prvním krokem při tvorbě aplikace je volba vhodného jazyka umožňující vývoj webové aplikace. Zde je seznam takových jazyků, mezi kterými je možno volit. 4.1 Volba programovacího jazyku PHP Ruby Java Flash ASP.NET Na internetu je velká řada článků pojednávajících o tom, jak vybrat vhodný jazyk pro tvorbu webové aplikace [9]. Probíhají vášnivé diskuze o tom, který jazyk je ten nejlepší. Situace je ještě zkomplikována tím, že pro každý jazyk se nabízí řada frameworků. Pro porovnání jednotlivých frameworků by bylo třeba mít dostatečné informace o všech frameworkách, nehledě na to, že frameworků pro vývoj webových aplikací je obrovské množství a porovnávat všechny dohromady je v podstatě nemožné proto byli vybráni jen ty nejvýznamnější zástupci pro každý jazyk. PHP Nejznámějším PHP frameworkem je Zend Framework. Při volbě pro PHP, ale nejsou tak důležité vlastnosti frameworku jako samotný jazyk PHP. PHP je jednoduchý jazyk vhodný pro začínající webové vývojáře. Největší množství knih a článků; na téměř všechny problémy lze nalézt řešení. 29

30 4. Volba technologie Více informací o PHP [16]. Ruby Ruby on Rails Motem Ruby on Rails je "Konvence nad konfigurací"a "Neopakujte se". Programátor by tedy měl měnit pouze věci, jejichž nastavení se liší od defaultního. Model-View-Controller. Architektonický vzor REST. Podpora AJAX. Generování hlavní části aplikace pomocí Scaffolding. Více informací o JSF [15]. Java JSF Založeno na oblíbeném jazyku Java. Odděluje uživatelské rozhraní a aplikační logiku. Definice uživatelského rozhraní pomocí XML. Více informací o JSF [17]. Java GWT Velmi zajímavá volba (obrovský nárust zájmu o GWT). Založeno na oblíbeném jazyku Java. Nestandardní možnost vývoje. GWT není tak úplně framework jde spíše o sadu nástrojů. Převod kódu Java do JavaScriptu. Podpora AJAX. Menší uplatnění na trhu práce. Vývoj za pomoci GWT je poznamenán omezením, která přináší JavaScript. Tato omezení se Google snaží vyřešit vytvořením vlastního programovacího jazyku pro webové aplikace s názvem Dart. Přesto, že Google oznámil, že vývoj GWT bude samozřejmě pokračovat, je pohled směřován převážně k Dart a jen čas ukáže, jak se tento nový jazyk uchytí. 6 Více informací o GWT [18] února 2012 byl uvolněn experimentální prohlížeč Chromium podporující Dart. 30

31 4.1. Volba programovacího jazyku Flash Základním požadavkem na aplikaci CKB je vyhnout se již trochu zastaralému Adobe Flash a tak Flash automaticky nepřipadá v úvahu. Přesto by bylo dobré alespoň uvést důvody, proč se využití Flash vyhnout. Potřeba instalace modulu do prohlížeče. Nelze přistupovat přímo k databázi. Nejistá budoucnost s nástupem HTML5. Více informací o Flash [29]. ASP.NET ASP.NET MVC Nezávislost na programovacím jazyku. Kód můžeme psát v C#, VB.NET a dalších.net jazycích. Výkon. Vysoká rychlost běhu aplikací. Skvělé vývojové prostředí Visual Studio nemá ve světě vývoje software konkurenci a nabízí obrovskou řadu výhod, čímž urychluje psaní aplikací nejen v ASP.NET. Snadné testování. Podpora AJAX. Více informací o ASP.NET MVC[10] nebo [4]. Při porovnání jednotlivých frameworků vychází jako nejlepší z možností jeden z následující trojice: Ruby on Rails, GWT a ASP.NET MVC. Ruby on Rails a ASP.NET MVC jsou založeny na návrhovém vzoru MVC a tak umožňují snadné testování. Jak je tomu u GWT? Je několik návrhových vzorů, které se dají využít pro vytvoření testovatelné GWT aplikace, a tím je právě například také MVC takže ani testování neulehčí nakonec volbu frameworku. Jen na detailnější porovnání těchto tří možností by se dala napsat nejedna bakalářská práce. Každý z těchto tří frameworků má své výhody a nevýhody, ale je mezi nimi jeden zásadní rozdíl: zkušenosti programátora s Ruby, Javou a C# jsou absolutně rozdílné. Největší a zároveň nejlepší zkušenosti jsou právě s posledním jmenovaným jazykem C#. Zvoleným frameworkem pro aplikaci CKB tak je ASP.NET MVC. Tato volba s sebou přináší dvě výhody. Tou první je vývojové prostředí Visual Studio, což kromě zrychlení psaní aplikace (díky IntelliSense) poskytuje i integrované nástroje pro testování aplikace. Pro psaní unit testů tak nemusí být využívány služby některého z dalších softwarů a stejně tak pro testy UI může být využito coded UI testů, které jsou součástí Visual Studia. Druhou výhodou je podpora jquery [24], které usnadňuje tvorbu grafických prvků stránky. 31

32 4. Volba technologie 4.2 Volba databáze pro datovou vrstvu MySQL PostgreSQL Microsoft SQL Server Oracle Vzhledem k volbě ASP.NET, které je Microsoft frameworkem, se jeví jako nejlepší volba Microsoft SQL Server. Kombinace dvou technologii Microsoftu zajišťuje spolehlivost a jistotu. 4.3 Volba serveru pro webovou aplikaci Při vývoji aplikace za pomoci ASP.NET práci se serverem ulehčí ASP.NET development server, který je součástí Visual studia ten navíc postačí prakticky při celém vývoji aplikace. Pokud má být aplikace uvolněna k použití, development server už nevystačí, a proto je třeba rozhodnout, jaký server použít. Možnosti jsou naštěstí vlastně jen dvě. IIS 7.5 Apache Při pohledu na statistiky 4.1 je Apache mnohem používanější než IIS, jeho obliba v posledních letech velmi vzrostla. Problém při volbě Apache serveru není ani podpora ASP.NET, ten je totiž možné na Apache serveru rozjet přes Mod mono [11]. Tento přístup však není doporučovaný a hlavní problém nastává při hledání hostingu. Hostingů, které poskytují kombinaci Apache + ASP.NET + MS SQL, není mnoho. Za to pro hosting IIS serveru existuje velké množství možností. Jednou z nich je freehosting poskytovaný ZONER software, a.s. [27] a nebo hosting IIS na cloudu Windows Azure 7.2. A právě z důvodu hostingu byl zvolen jako webový server IIS. 4.4 O zvolené technologii ASP.NET ASP.NET je framework pro tvorbu dynamických webových stránek, je přímým nástupcem technologie ASP a nabízí řadu výhod. Mezi hlavní z nich patří množství jazyků, ve kterých se webové stránky mohou psát, a to ať už jde o defaultní Visual Basic, C# nebo J#. Stránky ASP.NET jsou kompilovány, díky čemuž je aplikace rychlejší. ASP.NET obsahuje také například knihovnu 32

33 4.4. O zvolené technologii Obrázek 4.1: Popularita webových serverů. Převzato z [30]. ASP.NET Ajax, díky které lze jednoduše aktualizovat část stránky bez nutnosti odesílat serveru celou stránku. Více informací o ASP.NET [10] Při psaní webových stránek za pomoci ASP.NET framework ještě nabízí volbu z dalších tří součástí: Web Pages, Web Forms a nebo MVC. Web Pages jsou obecně nejjednodušší; poskytují rychlou cestu, jak zkombinovat kód serveru a HTML. Web Forms využívají Page controller pattern a jsou vhodné především pro vývojáře klasických desktop aplikací. Ovládací prvky Web Forms jsou totiž velmi podobné těm, které znají z desktopových aplikací. MVC jsou nejnovější, představují velmi mocný nástroj, a to hlavně díky velmi snadnému testování [10]. ASP.NET MVC ASP.NET MVC je, jak už z názvu jasně vyplývá, založen na návrhovém vzoru Model-View-Controller, který rozděluje aplikaci na tři části. Jak znázorňují šipky na obrázku 4.2 jednotlivé vrstvy jsou společně provázány. 33

34 4. Volba technologie Obrázek 4.2: Model View Controller Model Implementuje businnes logiku a není přímo závislý na žádné další části architektury. Přiklad Modelu Příklad Modelu (v jazyce C#) pro tvorbu otázky: 1 p u b l i c c l a s s QuestionModel 2 { 3 [ Key ] 4 p u b l i c i n t QuestionId { get ; s e t ; } 5 p u b l i c s t r i n g Question { get ; s e t ; } 6 p u b l i c s t r i n g RightAnswer { get ; s e t ; } 7 p u b l i c s t r i n g Answer1 { get ; s e t ; } 8 p u b l i c s t r i n g Answer2 { get ; s e t ; } 9 p u b l i c s t r i n g Answer3 { get ; s e t ; } 10 } Controller Zpracovává požadavky od View. Controller má přímý odkaz na Model a může tak zpracovávat data modelu a zároveň má odkaz na View, kterému může data získaná z modelu zaslat. 34

35 4.4. O zvolené technologii Příklad Controlleru Příklad Controlleru (v jazyce C#), který využívá třídu QuestionModel. Tu zasílá pro zobrazení do View: 1 p u b l i c c l a s s P a g e s C o n t r o l l e r : C o n t r o l l e r 2 { 3 p u b l i c ActionResult ShowQuestion ( ) 4 { 5 //Zde by bylo z í sk án í dat z datab á ze 6 QuestionModel q u e s t i o n = new QuestionModel { 7 Question = "V k t e r ý den byl tzv. Čern ý pá tek? " ; 8 RightAnswer = "Út e r ý " ; 9 Answer1 = " St ř eda " ; 10 Answer2 = "Čt v r t e k " ; 11 Answer3 = "Pá tek " ; 12 } 13 return View ( q u e s t i o n ) ; 14 } 15 } View Obsahuje definici UI. Zpracovává data od controlleru, a zobrazuje je do uživatelského prostředí. Zároveň může sloužit i k získání dat od uživatele, které přepošle controlleru ke zpracování. Příklad View Příklad View (v jazyce C#), který zobrazí data zaslaná z Controlleru: QuestionModel 2 3 <h1>otá zka : </ h1> 4 <div> 5 <h2>@model. RightAnswer </h2> 6 <h2>@model. Answer1</h2> 7 <h2>@model. Answer2</h2> 8 <h2>@model. Answer3</h2> 9 </div> 35

36 4. Volba technologie Princip MVC Ze zdrojového kódu je vidět, jak ASP.NET MVC funguje. Nejdříve je zavolán příslušný controller (podle routovacích pravidel), který získá model s příslušnými daty z databáze. Poté zavolá view, kterému získaná data předá k zobrazení. View se nakonec postará pouze o zobrazení dat v uživatelském prostředí [4]. Routovací pravidla Routovací pravidla slouží k rozpoznání, který controller zavolat při zadání URL adresy [4]. Při vytvoření nového projektu v ASP.NET MVC projekt poskytuje základní routovací pravidlo, které nalezneme v souboru Global.asax.cs 1 r o u t e s. MapRoute ( 2 " Default ", // Route name 3 "{ c o n t r o l l e r }/{ a c t i o n }/{ id } ", // URL with parameters 4 new { c o n t r o l l e r = " Pages ", 5 a c t i o n = " Index ", 6 id = UrlParameter. Optional 7 } // Parameter d e f a u l t s 8 ) ; Routovací pravidlo je, jak bude ještě dále popsáno, vcelku jasné. První parametr udává název routovacího pravidla. Druhý parametr udává, jak samotné routování probíhá. První část v URL udává, jaký controller bude zavolán, zatímco druhá určuje jaká akce a třetí část URL se předává samotné akční metodě jako vstupní parametr. Třetí parametr routovacího pravidla udává defaultní hodnoty. Proto například při požadavku na zobrazení stránky / bude URL automaticky změněna na /Pages/Index Lze samozřejmě dodefinovat i další pravidla jako například: 1 r o u t e s. MapRoute ( 2 " Forum ", // Route name 3 " Pages /Forum/{ page } ", // URL with parameters 4 new { c o n t r o l l e r = " Pages ", 5 a c t i o n = "Forum ", 6 page = " 0 " 7 } // Parameter d e f a u l t s 8 ) ; Toto pravidlo způsobí, že při zadání adresy Pages/Forum bez parametru page, bude do URL automaticky za parametr page, dodána defaultní hodnota (v tomto případě 0). 36

37 4.4. O zvolené technologii ADO.NET Entity framework EF je jedním z možných způsobu přístupu k datům uloženým v databázi. Poskytuje Object Relational Mapping, který mapuje relační databázové schéma na objekty. Oproti jeho konkurentovi LINQ to SQL nabízí řadu výhod. Mezi hlavní takové výhody EF patří: Nezávislost na databázi: MySQL, Oracle, PostreSQL,... Možnost vytvořit vztah M:N bez mezientity Dlohodobě udržitelná aplikace Dotazovací mechanismus EntitySQL EF pracuje s konceptuálním modelem, který je zcela nezávislý na databázi, přičemž jsou tři možnosti, jak s tímto konceptuálním modelem pracovat. Database first Nejdříve se vytvoří databáze a z té poté je vygenerován entity data model. Model first V tomto přístupu je více způsobů, jak EF využít. Například se nadefinují entity pomocí EDM designéru a poté se vygeneruje script pro vytvoření databáze pomocí Generate Database Script Wizard. Code first Tento přístup je použit v aplikaci Cesta k bohatství. Jde o poslední a nejnovější z možností. Tato funkcionalita je poprvé v EF 4.1. V přístupu code first se nejdříve definuje model pomocí CLR tříd. Tyto třídy se pak mapují na existující databázi, nebo se nechá EF vytvořit databázové schéma zcela automaticky. Další informace o ADO.NET Entity frameworku [19]. 37

38 4. Volba technologie 4.5 CSS CSS je jazyk pro definování vzhledu a rozvržení webových stránek. Pomocí CSS se přistupuje k jednotlivým prvkům HTML, XHTML užitím selektorů. Jednotlivým prvkům stránek se nastavuje pozice, barva písma, barva pozadí apod. Například: 1. class_name { c o l o r : black }) Vybere prvky, které patří do třídy class_name a těmto prvkům nastaví barvu na černou. CSS mohou také vybírat prvky podle identifikátoru nebo na základě jména. 1 #id_name { c o l o r : black } 2 <h2> { c o l o r : red } Aplikace CKB využívá CSS verzi 3.0, která umožňuje nastavovat nejnovější vlastnosti prvkům (například nastavení kulatých rohů). Bohužel některé z těchto vlastností nejsou některými staršími prohlížeči podporovány (například v Internet Exploreru verze 8 kulaté rohy neuvidíte). Více o tom, jak jsou vlastnosti CSS využity v aplikaci CKB, se dozvíte v kapitole 3.4 Více o CSS na stránkách [14]. 4.6 AJAX Asynchronous JavaScript and XML [10] je označení pro přístup, ve kterém je pomocí JavaScriptu v kombinaci s CSS, možné implementovat prvky, se kterými lze pracovat bez potřeby obnovování celé stránky. Lze tak vložit do webové stránky ovládací prvek, který je odesílán asynchronně. ASP.NET MVC 3 obsahuje rozsáhlou podporu AJAXu a při založení nového MVC projektu jsou již všechny potřebné skripty vloženy do složky Scripts. AJAX umožňuje také jednoduché a rychlé psaní asynchronních ovládacích prvků. Více o tom, jak je AJAX využit v aplikaci CKB, se dozvíte v kapitole jquery jquery je javascriptová knihovna, která umožňuje pracovat s jednotlivými prvky html stránky. Pomocí jquery se prvkům nastavují animace, reakce na události a další vlastnosti. Mimo to může jquery také manipulovat a upravovat CSS styly jednotlivých prvků, a tím dynamicky měnit vzhled stránek bez nutnosti znovu načítat stránku. jquery navíc poskytuje možnost vložení uživatelských prvků, mezi které patří tlačítka, dialogy, ikony atd. Těmto prvkům pak lze nastavit vzhled ručně za pomoci CSS a nebo si CSS nechat vygenerovat pomocí ThemeRoller. Další informace o jquery a ThemeRoller [24]. 38

39 Kapitola 5 Realizace 5.1 Subversion Ať už vývoj aplikace probíhá pouze jedním vývojářem a nebo ve velké skupině programátorů, vývoj by se neobešel bez SVN. 7 Subversion umožňuje přístup k jednomu zdrojovému kódu více uživatelům. Na vývoji aplikace tak může pracovat mnoho programátorů najednou. Zároveň se subversion, jak už napovídá sám název, stará o správu jednotlivých verzí aplikace; pomocí subversion například lze zjistit, v jaké verzi je právě vyvíjený software. Subversion také zálohuje jednotlivé verze zdrojového kódu a tak je možné se vrátit k některé z předchozích verzí [6]. 5.2 Přihlašování Při zakládání nového projektu v ASP.NET MVC je na výběr zda vytvořit aplikaci prázdnou, internetovou nebo intranetovou. Pokud je zvolena aplikace internetová, obsahuje ASP.NET Membership Provider, což je featura, která vytvoří do aplikace account controller. Ten umožní uživatelům přihlašování do aplikace pod unikátním uživatelským jménem a heslem. MP poskytuje kromě samotného přihlášení uživatele například i možnost změnit heslo, smazat uživatele atd. MP uchovává informace o uživatelích v SQL databázi. Pro ukládání uživatelského hesla je možné využít jednu ze tří možných forem: čistý text, zašifrovaný text a nebo hashovaný text. V základním nastavení je heslo ukládáno v hashované formě, což je nejbezpečnější z těchto tří variant. 7 Případně jsou k dispozici jiné služby pro sdílení souborů, jakou je například Dropbox. 39

40 5. Realizace Obrázek 5.1: Membership provider 40

41 5.3. Ovládací prvky MP neuchovává pouze jméno a heslo uživatele, ale umožňuje i nastavování uživatelských rolí, volbu oprávnění pro jednotlivé role, uchovává verzi SQL schématu, datum posledního přihlášení uživatele, název aplikace a mnoho dalších informací. Proto je také pro využívání v malých až středních aplikacích kritizováno, a to ne jen pro svou robustnost, ale také pro využití GUID. GUID je 128bitový identifikátor, což je možných čísel. Díky tak vysokému počtu možností a speciálnímu algoritmu pro generování těchto čísel, je skoro nemožné vygenerovat dvě stejná čísla. GUID má však samozřejmě i své nevýhody. Zdá se totiž zbytečné využít 128bitů dlouhý GUID (místo například 32bitového integeru), pro databázi, která obsahuje malý počet záznamů. Kde tedy GUID využívat? Například pro databáze, kde chceme, aby mohlo větší množství uživatelů vytvářet záznamy bez potřeby zjišťovat, jaké unikátní ID je na řadě.[23] Aplikace CKB, patří právě mezi ony menší aplikace, kde není třeba miliony záznamů. V plánu je také využít databázi CKB i pro další webové aplikace, a tak je databáze vytvořená Membership Providerem s primárním klíčem GUID. 5.3 Ovládací prvky Žádná aplikace se neobejde bez widgetů 8. Widget poskytuje uživateli možnost interakce. Tvorba widgetů pro webovou aplikaci není tak jednoduchá jako u klasických desktop aplikací. Při každé interakci s widgetem se totiž odesílá celá webová stránka serveru a ten stránku zpracuje a zašle zpět. Pokud tedy je na stránce více widgetů, odesílají se všechny najednou a nezáleží na tom, který widget uživatel reálně využíval. Tento problém řeší AJAX (co je to AJAX, bylo již popsáno v kapitole 4.6). Implementace widgetu v aplikaci CKB je nejlépe vidět na widgetu pro hodnocení otázek. Jak tento widget vypadá je znázorněno na obrázku 4.2. Samotná implementace widgetu je velmi jednoduchá: nejdříve je vytvořen controller, který provede požadované akce a vrátí partial view. 9 1 [ HttpPost ] 2 p u b l i c PartialViewResult QuestionRanking ( s t r i n g ranking, 3 s t r i n g q u e s t i o n I d ) 4 { 5 i n t id ; 6 Int32. TryParse ( questionid, out id ) ; 7 rep. ChangeQuestionRanking ( id, ranking ) ; 8 return PartialView ( rep. RandomDisapprovedQuestion ( ) ) ; 9 } 8 Widget, ovládací prvek 9 Partial view; částečný pohled se využívá převážně, pokud má být nějaká část stránky použitá na více místech najednou, bez nutnosti duplikace kódu. 41

42 5. Realizace Obrázek 5.2: Widget hodnocení otázky Poté je vytvořeno samotné view, jehož kouzlo spočívá v tom, že data jsou odeslána specifikovanému controlleru. Ten data zpracuje a vrátí nový partial view, který nakonec nahradí div s id, jež je nastaveno v UpdateTargetId. CKB. Models. DisapprovedQuestionModel 2 3 <d i v i d =" ajaxrankingform"> ( Ajax. BeginForm ( " QuestionRanking ", " Pages ", 5 new AjaxOptions 6 { 7 InsertionMode = InsertionMode. Replace, 8 HttpMethod = "POST", 9 OnFailure = " s e a r c h F a i l e d ", 10 UpdateTargetId = " ajaxrankingform ", 11 } ) ) 12 { 13 <h2>ohodno t te pros ím ot ázku</h2> 14 <h3>@model. Question </h3> 15 <input type="submit " name=" ranking " value ="Dobrá " /> 16 <input type="submit " name=" ranking " value ="Průmě r " /> 17 <input type="submit " name=" ranking " value ="Špatn á " /> 18 <input type="hidden " name=" q u e s t i o n I d " 19 value ="@Model. QuestionId. ToString ( ) " /> 20 } 21 </div> Implementace controlleru a view je oproti samotné implementaci v aplikaci CKB zkrácena. Jde na tomto místě tedy pouze o ukázku, jak jsou v aplikaci CKB vytvářeny ovládací prvky. 42

43 5.4. Databáze Obrázek 5.3: Diagram databáze CKB 5.4 Databáze Databázové schéma díky EF nemusí být vytvářeno ručně. EF totiž vygeneruje schéma automaticky z vytvořeného modelu. Výsledné schéma je na obrázku 5.4. Přestože, schéma neobsahuje velké množství tabulek, jsou v něm všechny potřebné informace. Základem je tabulka UserModels obsahující veškeré potřebné informace o zaregistrovaném uživateli. Další důležitou tabulkou je TopicModels. Tato tabulka slouží pro přiřazení ke každé otázce některé z témat. Pokud má být otázka vložena pouze do volné hry, je třeba nastavit TopicId na 0. S tabulkou TopicModels úzce souvisí tabulka QuestionModels, která slouží k uložení všech schválených otázek ve hře. Při ukládání nové otázky je třeba si dát pozor, zda pro otázku existuje téma s příslušným ID. DisapprovedQuestionModels je tabulka pro otázky, které přidali sami uživatelé. Pro ukládání výsledků hráče slouží tabulka ResultModels, ve které kromě samotného výsledku je i datum, kdy hráč výsledku dosáhl. Tabulka ForumModels uchovává jednotlivé příspěvky na fóru. 43

44 5. Realizace 5.5 Požadované funkce Hlavním bodem implementace bylo vytvořit všechny požadované základní funkce. Tyto funkce jsou zakresleny do use case diagramu 3.3. Tato část bakalářské práce se tak zabývá popisem těchto funkcí, se zaměřením na nestandardní části implementace Hra Samotná hra se skládá ze dvou částí: hra a volná hra. Hra Hra je pouze pro registrované hráče. Po jejím spuštění má hráč na výběr z jednotlivých témat, přičemž u každého z nich je progressbar zobrazující nejlepší úspěšnost hráče. Hráč tak ví, které téma má již splněné. Po vybrání jednoho z tématu je z databáze náhodně vygenerována otázka na dané téma. Hráč na otázku odpoví a je mu zobrazena správná odpověď. Tímto způsobem hra pokračuje, dokud není zodpovězeno 20 náhodných otázek. Pokud je na konci hry dosaženo skóre alespoň 19, je hráči zobrazena gratulace a úroveň hráče automaticky vzroste. Volná hra Pro hraní Volné hry není na rozdíl od klasické hry třeba registrace. V této hře jsou otázky znovu náhodně generovány z databáze, ale nejsou omezeny na některé z témat. Tato hra nikdy nekončí a tak po zodpovězení otázky jsou znovu a znovu generovány nové náhodné otázky. Nestandardní části První nestandardní částí implementace hry je vytvoření progress barů pro jednotlivá témata. Progres bar je vytvořen pomocí jquery. Bohužel při standardním využití jsou každému divu z id progressbar přiřazeny pomocí skriptu třídy, pro které je nastaven vzhled pomocí CSS. To je obrovské omezení, protože není možné tímto způsobem vytvořit více různých progress barů na jedné stránce. Toto omezení tak muselo být vyřešeno nastavením jednotlivých tříd ručně. Druhou nestandardní částí implementace hry je využití databáze pro ukládání veškerých výsledků hráče. Při běžné implementaci by takovéto informace nebyly ukládány do databáze, ale do cookies. To by přinášelo velké omezení. Hráč například po rozehrání hry nemůže odejít a vrátit se k rozehrané hře později a právě z tohoto důvodu je pro veškeré ukládání mezivýsledků využita databáze. 44

45 5.5. Požadované funkce Fórum Fórum umožňuje hráčům diskutovat, a to jak o hře samotné, tak o daných otázkách, přičemž tato funkce je otevřena pouze pro registrované hráče. Nestandardní části První nestandardní částí je možnost při vkládání příspěvku vložit jakékoliv uživatelské jméno. Hráč tak nemusí odhalit svou skutečnou identitu a zůstává v anonymitě. Toto řešení je zvoleno proto, aby hráči mohli přidávat komentáře ke hře bez strachu, že za ně budou potrestáni. Jak se toto řešení projeví v praxi, se samozřejmě ukáže až časem Druhou nestandarní částí je rozdělení fóra na dvě view. První část, pro vložení komentáře, je generována metodou Forum v controlleru Pages. Druhá část, zobrazující jednotlivé komentáře, je dogenerované partial view metodou ShowForum znovu z controlleru Pages Žebříček hráčů Hra obsahuje pro zpestření žebříček hráčů, který zobrazuje všechny zaregistrované hráče, čímž lze zobrazit výsledky jakéhokoliv hráče. Řazení hráčů v žebříčku probíhá podle dosažené úrovně. Pokud se úrovně hráčů ovšem shodují, tak po dle počtu správně zodpovězených otázek. A pokud ani toto kritérium nerozhodne, tak záleží na počtu špatných odpovědí. U nich je řazení samozřejmě obrácené, než u předchozích kritérií, což znamená, že čím méně špatných odpovědí, tím lepší postavení v žebříčku. Nestandardní části Prvním nestandardním řešením v hodnocení je listování. Implementace listování pochází z tutoriálu [5]. Implementace v CKB však přidává číslo pořadí záznamu, kdy je do modelu, který se předává view, přidána proměnná s názvem StartIndex obsahující pořadí prvního předaného hráče. Tato proměnná je pak při každém zobrazení informací o hráči zobrazena a zvýšena o Tvorba otázek Vytvořit novou otázku do aplikace CKB je možno dvěma způsoby. První možnost je vyhrazena pouze pro uživatele v roli administrátora, zatímco druhá pro libovolného i neregistrovaného hráče. Po přihlášení se do aplikace CKB s rolí administrátora je v hlavním menu zobrazena nová položka Nastavení. V této položce má administrátor možnost vytvořit libovolnou otázku a nebo téma. Při vytvoření otázky pomocí formuláře je otázka uložena do databáze a rovnou přiřazena do otázek ve hře. 45

46 5. Realizace Druhý způsob vytvoření otázky je složitější. Otázka totiž není přiřazena rovnou do otázek ve hře, ale do otázek neschválených. Neschválené otázky jsou zobrazovány uživatelům aplikace a ti je mohou ohodnotit pokud byla otázka dobře ohodnocena, je přiřazena do otázek ve volné hře. Přesný popis, jak a kdy je otázka schválena, je v části Nestandardní části První nestandardním řešením, v tomto případě spíše zajímavým, je tvorba uživatelské role administrátora. Pro vytvoření administrátora je třeba provést několik kroků. Prvním je zapnutí uživatelských rolí, druhým je vytvoření potřebných uživatelských rolí (v případě CKB jde o role Administrators a Users) a nakonec třetím krokem je samotné přiřazení role uživateli, například pomocí UI ASP.NET Configuration Hodnocení otázek Hodnocení otázek slouží ke schválení otázek vytvořených uživateli a je implementováno pomocí widgetu, který se nachází na pravé straně webové stránky a jeho vzhled je na obrázku 5.2. Tento widget obsahuje tři tlačítka: Dobrá, Průměr, Špatná, přičemž po kliknutí na tlačítko Dobrá je hodnocení otázky zvednuto o 3, po kliknutí na tlačítko Průměr je hodnocení otázky zvednuto o 1 a po kliknutí na tlačítko Špatná je hodnocení otázky sníženo o 2. Pokud některá z otázek dosáhne hodnocení lepšího než 20, je přesunuta do otázek ve volné hře. Naopak pokud dosáhne hodnocení menšího než -20 je odstraněna. Nestandardní části První nestandardním řešením hodnocení otázky je přesunutí neschválené otázky do otázek schválených. To je provedeno tak, že je vytvořena nová instance třídy pro schválené otázky (QuestionModel) a té je do konstruktoru předána otázka neschválená (DisapprovedQuestionModel). Konstruktor vezme neschválenou otázku, prohází odpovědi a ty společně se správnou odpovědí vloží do jednotlivých proměnných dané třídy. Nakonec se pouze neschválená otázka odstraní a schválená uloží do databáze. 46

47 Kapitola 6 Testování Důležitým krokem při vývoji aplikace je testování. Testování umožňuje ověřit správnou funkci aplikace, nebo některé z jejich částí. Při testování se ale neověřuje pouze funkce aplikace. Testy také zvyšují kvalitu aplikace. Testování aplikace CKB probíhalo v několika stadiích. Po napsání nové vlastnosti probíhaly nejdříve unit testy, které testovaly jednotlivé nejmenší části aplikace. Po otestování všech částí aplikace pomocí unit testů nastala fáze funkčních a zátěžových testů. 6.1 Unit testy Unit testy jsou testy, které se zaměřují na nejmenší části aplikace. Testují jednotlivé metody, třídy a jejich funkčnost. Při psaní každého testu je nutné se zaměřit pouze na jednu funkcionalitu. Díky tomu je při nesplnění některého z unit testů okamžitě jasné, kde je chyba a může tak být velmi rychle napravena. Mimo to jsou unit testy velmi rychlé; je tak možné po každé větší změně aplikace spustit znovu celou sadu testů, čímž se ověří, zda při implementaci nové vlastností nedošlo k poškození některé z předchozích funkcí aplikace. Pomocí unit testů se v ASP.NET MVC testují jednotlivé controllery, metody, validační pravidla, routovací pravidla a mnoho dalších součástí aplikace [21]. Pro kompletní otestování aplikace pomocí unit testů na to musí být brán zřetel již při vývoji. MVC pattern sice totiž výborně rozdělí aplikaci na tři části: model, view a controller, které jsou jako takové snadno testovatelné, nemusí to ale samo o sobě stačit pro řádné otestování. Pro kompletní otestování aplikace je potřeba využít další patterny, a proto v aplikaci Cesta k bohatství jsou implementovány následující patterny. 47

48 6. Testování Repository pattern Repository pattern [20] slouží k oddělení business logiky od samotné aplikace a umožňuje tak pokrýt unit testy i části aplikace, které přistupují k databázi. Ať už jde o mazání záznamů z databáze, změnu záznamů nebo vytváření nových. Kromě ulehčení testování repository pattern přináší i další spoustu výhod. Zde jsou alespoň ty hlavní tři: Možnost stejných dotazů na databázi z různých míst bez zbytečného duplicitního kódu. Shromáždění všech dotazů na jedno místo. Zpřehlednění a lepší udržitelnost kódu. Implementace repository patternu je jednoduchá pouze se pro veškeré dotazy vytvoří třída repository a v té se vytvoří potřebné metody, přičemž každá taková metoda obsahuje právě jeden dotaz na databázi. Například implementace repository patternu pro třídu GameController: 1 p u b l i c c l a s s GameController : C o n t r o l l e r 2 { 3 p r i v a t e EFDbContext db ; 4 5 p u b l i c ActionResult Index ( ) 6 { 7 return View ( 8 db. User. OrderByDescending ( p => p. UserLevel ). 9 ThenByDescending ( p => p. TotalRightAnswerCount ). 10 ThenByDescending ( p => p. TotalWrongAnswerCount ) ; 11 ) ; 12 } 13 } By nejdříve nahradila dotaz za příslušnou metodu: 1 p u b l i c c l a s s GameController : C o n t r o l l e r 2 { 3 p r i v a t e CKBRepository rep ; 4 5 p u b l i c ActionResult Index ( ) 6 { 7 return View ( rep. TopPlayers ( ) ) ; 8 } 9 } 48

49 6.1. Unit testy A následně implementovala samotnou třídu repository: 1 p u b l i c c l a s s CKBRepository 2 { 3 p r i v a t e EFDbContext db ; 4 5 p u b l i c IQueryable<UserModel> TopPlayers ( ) 6 { 7 return db. User. OrderByDescending ( p => p. UserLevel ). 8 ThenByDescending ( p => p. TotalRightAnswerCount ). 9 ThenByDescending ( p => p. TotalWrongAnswerCount ) ; 10 } // Dal š í dotazy 13 } Pomocí repository patternu jsou tedy odděleny jednotlivé dotazy od samotné aplikace. Stále se však musí všechny unit testy provádět proti databázi. Provádění všech testů přímo nad databází by bylo sice možné, ale hlavně při testování částí, které mažou, vkládají a mění záznamy v databázi, velmi pomalé. Po každém provedeném unit testu, který mění databázi, by se totiž musela databáze dostat do původního stavu, a proto je potřeba další pattern. Dependency injection DI spolu v kombinaci s vhodným mocking frameworkem 6.1 a repository patternem 6.1 umožňuje provádění unit testů bez jakéhokoliv zásahu do databáze. DI má velké množství využití, to které je hlavní v tomto případě však je pro vložení takzvaného mock objektu. Implementace DI patternu umožňuje při vytváření controlleru vybrat, zda bude předán konstruktoru mock objekt, nebo konstruktor zůstane bez vstupního parametru. V případě, že je předán konstruktoru mock objekt (někdy se také využívá implementace takzvaného fake repository), nebude controller provádět dotazy nad reálnou databází, ale nad mock objektem [22]. 49

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

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

Více

Maturitní projekt do IVT Pavel Doleček

Maturitní projekt do IVT Pavel Doleček Maturitní projekt do IVT Pavel Doleček CO FILMBOOK JE Filmbook je uzavřená webová aplikace pro celkovou správu informací a dat souvisejících se sledováním filmů. Primárně je zaměřen na uchovávání a spravování

Více

WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK

WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK Systém WorkWatch je určen pro malé a střední firmy, které se zabývají službami nebo zakázkovou výrobou. Zajistí dokonalý přehled o všech zakázkách a jejich rozpracovanosti.

Více

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. 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

Více

IS pro podporu BOZP na FIT ČVUT

IS pro podporu BOZP na FIT ČVUT IS pro podporu BOZP na FIT ČVUT Závěrečná zpráva pro 2. iteraci 21. dubna 2011 Zadavatel: Ing. Jiří Chludil Řešitelský tým: Jiří Kopecký Jan Kratochvíl Milan Matějček Štefan Pinďák Kristýna Streitová Úvod

Více

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE

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é

Více

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá

Více

Tvorba internetových aplikací s využitím framework jquery

Tvorba internetových aplikací s využitím framework jquery Tvorba internetových aplikací s využitím framework jquery Autor Michal Oktábec Vedoucí práce PaedDr. Petr Pexa Školní rok: 2009-10 Abstrakt Tato práce se zabývá využití frameworku jquery pro vytváření

Více

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ SPOLEČNOST DECADIC PROJEKT FRAMETRIX

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ SPOLEČNOST DECADIC PROJEKT FRAMETRIX FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ MANAGEMENT PROJEKTŮ SPOLEČNOST DECADIC PROJEKT FRAMETRIX SPECIFIKACE POŽADAVKŮ AUTOR DOKUMENTU JIŘÍ JANDA BRNO 15. března 2012 Obsah 1 Úvod........................................

Více

INFORMAČNÍ SYSTÉMY NA WEBU

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

Více

Webové stránky fotbalového klubu

Webové stránky fotbalového klubu Semestrální práce pro X36WWW Webové stránky fotbalového klubu DOKUMENTACE autor: David Komárek 1. Zadání Naprogramujte informační web fotbalového klubu. V klubu jsou registrována dvě mužstva, A mužstvo

Více

ROZHRANÍ PRO ZPŘÍSTUPNĚNÍ A PREZENTACI ZNALOSTNÍ DATABÁZE INTERPI UŽIVATELSKÁ PŘÍRUČKA

ROZHRANÍ PRO ZPŘÍSTUPNĚNÍ A PREZENTACI ZNALOSTNÍ DATABÁZE INTERPI UŽIVATELSKÁ PŘÍRUČKA ROZHRANÍ PRO ZPŘÍSTUPNĚNÍ A PREZENTACI ZNALOSTNÍ DATABÁZE INTERPI UŽIVATELSKÁ PŘÍRUČKA INTERPI Interoperabilita v paměťových institucích Program aplikovaného výzkumu a vývoje národní kulturní identity

Více

1 Webový server, instalace PHP a MySQL 13

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

Více

Uživatelská příručka 6.A6. (obr.1.)

Uživatelská příručka 6.A6. (obr.1.) Uživatelská příručka 6.A6 Na stránky se dostanete zadáním URL adresy: http://sestasest.tym.cz do vašeho prohlížeče. Teď jste se dostali na úvodní stránku, na které vidíte fotku, přivítání, odkaz na Uživatelskou

Více

NÁVOD NA OBSLUHU INTERNETOVÉ PREZENTACE. Ataxo Czech s.r.o.

NÁVOD NA OBSLUHU INTERNETOVÉ PREZENTACE. Ataxo Czech s.r.o. NÁVOD NA OBSLUHU INTERNETOVÉ PREZENTACE Ataxo Czech s.r.o. ÚVOD Internetové stránky vytvořené společností Ataxo v rámci produktu Mini web můžete jednoduše a rychle upravovat prostřednictvím on-line administrace.

Více

Příručka uživatele HELPDESK GEOVAP

Příručka uživatele HELPDESK GEOVAP HELPDESK GEOVAP verze 1.2 11.11.2008 OBSAH 1 REGISTRACE DO HELPDESK...1 2 PŘIHLÁŠENÍ A ODHLÁŠENÍ...1 3 ZÁKLADNÍ OBRAZOVKA HELPDESK...2 4 PŘEHLED HLÁŠENÍ...2 5 ZALOŽENÍ NOVÉHO HLÁŠENÍ...3 6 ZOBRAZENÍ/EDITACE

Více

Aplikace pro srovna ní cen povinne ho ruc ení

Aplikace pro srovna ní cen povinne ho ruc ení Aplikace pro srovna ní cen povinne ho ruc ení Ukázkový přiklad mikroaplikace systému Formcrates 2010 Naucrates s.r.o. Veškerá práva vyhrazena. Vyskočilova 741/3, 140 00 Praha 4 Czech Republic tel.: +420

Více

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

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é

Více

Postupy práce se šablonami IS MPP

Postupy práce se šablonami IS MPP Postupy práce se šablonami IS MPP Modul plánování a přezkoumávání, verze 1.20 vypracovala společnost ASD Software, s.r.o. dokument ze dne 27. 3. 2013, verze 1.01 Postupy práce se šablonami IS MPP Modul

Více

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 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

Více

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

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ž

Více

Obsah. Zpracoval:

Obsah. Zpracoval: Zpracoval: houzvjir@fel.cvut.cz 03. Modelem řízený vývoj. Doménový (business), konceptuální (analytický) a logický (návrhový) model. Vize projektu. (A7B36SIN) Obsah Modelem řízený vývoj... 2 Cíl MDD, proč

Více

Vyhledávač datových referencí. Dokumentace

Vyhledávač datových referencí. Dokumentace Dokumentace goshoom 18.8.2010 OBSAH Obsah... 1 Základní informace... 2 Podporované verze Microsoft Dynamics AX... 2 Podporované jazyky... 2 Instalace... 3 Uživatelská příručka... 4 Jak používat Vyhledávač

Více

1. Webový server, instalace PHP a MySQL 13

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

Více

Informační systém pro e-learning manuál

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

Více

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková Ruby on Rails Bc. Tomáš Juřík Bc. Bára Huňková Co nás dnes čeká? Ruby (programovací jazyk) Ruby on Rails (webový framework) Praktická ukázka Ruby (programovací jazyk) Ruby (programovací jazyk) Skriptovací

Více

Na vybraném serveru vytvoříme MySQL databázi. Soubory scratch.jpa, kickstart.php a en-gb.kickstart.ini nahrajeme na vybraný server.

Na vybraném serveru vytvoříme MySQL databázi. Soubory scratch.jpa, kickstart.php a en-gb.kickstart.ini nahrajeme na vybraný server. 1 Práce se systémem Tento dokument popíše způsob instalace a základy práce se systémem Joomla!, ve kterém je učebnice jazyka Scratch vytvořena. Podrobný návod k systému Joomla! je popsán v dokumentaci

Více

Individuální projekt z předmětu webových stránek 2012/2013 - Anketa

Individuální projekt z předmětu webových stránek 2012/2013 - Anketa Individuální projekt z předmětu webových stránek 2012/2013 - Anketa Daniel Beznoskov, 2 IT A Skupina 1 Úvod Prohlášení o autorství Prohlašuji, že jsem individuální projekt z předmětu webových stránek na

Více

Angličtina program k procvičování slovní zásoby

Angličtina program k procvičování slovní zásoby Středoškolská technika 2011 Setkání a prezentace prací středoškolských studentů na ČVUT Angličtina program k procvičování slovní zásoby Kamil Hanus Střední průmyslová škola elektrotechniky a informačních

Více

Moje Cisco Nejčastější dotazy

Moje Cisco Nejčastější dotazy 1. Co je Moje Cisco? Moje Cisco umožňuje mobilní, přizpůsobitelné zobrazení vašich oblíbených informací na webu Cisco.com. 2. Jak otevřít stránku Moje Cisco? Moje Cisco lze otevřít dvěma způsoby: Rozbalovací

Více

Olga Rudikova 2. ročník APIN

Olga Rudikova 2. ročník APIN Olga Rudikova 2. ročník APIN Redakční (publikační) systém neboli CMS - content management system (systém pro správu obsahu) je software zajišťující správu dokumentů, nejčastěji webového obsahu. (webová

Více

1 Tabulky Příklad 3 Access 2010

1 Tabulky Příklad 3 Access 2010 TÉMA: Vytvoření tabulky v návrhovém zobrazení Pro společnost Naše zahrada je třeba vytvořit databázi pro evidenci objednávek o konkrétní struktuře tabulek. Do databáze je potřeba ještě přidat tabulku Platby,

Více

Formy komunikace s knihovnami

Formy komunikace s knihovnami Formy komunikace s knihovnami Současné moderní prostředky Jiří Šilha a Jiří Tobiáš, Tritius Solutions a.s., Brno Osnova Základní požadavky na komunikaci s knihovnami Historie komunikace s knihovnami Confluence

Více

BENCHMARKING VENKOVA. Uživatelská příručka nástroje ehomer.cz. Verze dokumentu: 1.1

BENCHMARKING VENKOVA. Uživatelská příručka nástroje ehomer.cz. Verze dokumentu: 1.1 BENCHMARKING VENKOVA Uživatelská příručka nástroje ehomer.cz V této uživatelské příručce jsou popsány funkcionality webového nástroje ehomer.cz Verze dokumentu: 1.1 OBSAH 1. Popis struktury stránek 2.

Více

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě PHP PHP původně znamenalo Personal Home Page a vzniklo v roce 1996, od té doby prošlo velkými změnami a nyní tato zkratka znamená Hypertext Preprocessor. PHP je skriptovací programovací jazyk, určený především

Více

E-NABÍDKA PARTNER.REDA.CZ

E-NABÍDKA PARTNER.REDA.CZ E-NABÍDKA PARTNER.REDA.CZ Reda e-nabídka představuje mocný nástroj, díky kterému mohou naši registrovaní klienti přímo z prostředí e-shopu partner.reda.cz vytvářet vlastní produktové nabídky pro své zákazníky.

Více

[APLIKACE PRO PŘEHRÁVÁNÍ VIDEA - PROJEKT MIAMI - SERVEROVÁ ČÁST]

[APLIKACE PRO PŘEHRÁVÁNÍ VIDEA - PROJEKT MIAMI - SERVEROVÁ ČÁST] [APLIKACE PRO PŘEHRÁVÁNÍ VIDEA - PROJEKT MIAMI - SERVEROVÁ ČÁST] [Aktualizace dokumentu: 27.8.2011 3:02:37 Verze dokumentu: 1.0 Obsah Obsah... 2 1. Struktura databáze a souborů... 3 2. Soubor registerdevice.php...

Více

REGIONÁLNÍ INFORMAČNÍ SYSTÉM S PODPOROU MAP

REGIONÁLNÍ INFORMAČNÍ SYSTÉM S PODPOROU MAP Středoškolská technika 2010 Setkání a prezentace prací středoškolských studentů na ČVUT REGIONÁLNÍ INFORMAČNÍ SYSTÉM S PODPOROU MAP Karel Soukup Vyšší odborná a Střední průmyslová škola Varnsdorf Mariánská

Více

DOKUMENTACE REDAKČNÍHO SYSTÉMU PINYA

DOKUMENTACE REDAKČNÍHO SYSTÉMU PINYA DOKUMENTACE REDAKČNÍHO SYSTÉMU PINYA Obsah Obsah... 4 Pinya CMS... 5 Přihlášení do systému... 6 Položky v menu administrace... 7 Uživatelé... 8 Správa uživatelů... 8 Nový uživatel... 9 Role... 10 Vytvoření

Více

MBI - technologická realizace modelu

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,

Více

Aplikační profily v PLC Tecomat

Aplikační profily v PLC Tecomat Aplikační profily v PLC Tecomat TXV 003 39.01 první vydání září 2012 změny vyhrazeny 1 TXV 003 39.01 Historie změn Datum Vydání Popis změn Září 2012 1 První vydání OBSAH 1 Úvod...3 2 Kontrola aplikačních

Více

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

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

Více

HLEDEJCENY.mobi. Obsah. Mobilní verze e-shopu. Důvody instalace

HLEDEJCENY.mobi. Obsah. Mobilní verze e-shopu. Důvody instalace Obsah HLEDEJCENY.mobi Mezi Vodami 1952/9 e-mail: info@hledejceny.cz HLEDEJCENY.mobi... 1 Mobilní verze e-shopu... 1 Důvody instalace... 1 Výhody... 2 Co je k mobilní verzi potřeba... 2 Objednávka služby...

Více

3 MOŽNÉ PŘÍSTUPY K TVORBĚ APLIKACÍ NAD SVG DOKUMENTY

3 MOŽNÉ PŘÍSTUPY K TVORBĚ APLIKACÍ NAD SVG DOKUMENTY 3 MOŽNÉ PŘÍSTUPY K TVORBĚ APLIKACÍ NAD SVG DOKUMENTY 3.1 Tenký a tlustý klient Klientské aplikace nad XML dokumenty v prostředí internetu se dají rozdělit na dvě skupiny: tenký klient a tlustý klient.

Více

Postup. Úvodem. Hlavní myšlenka frameworku. application. system. assets. uploads

Postup. Úvodem. Hlavní myšlenka frameworku. application. system. assets. uploads Postup Úvodem Můj úkol při tomto projektu byl vytvořit model pro data, dle návrhového vzoru MVC. Jelikož v poslední době pracuji spíše s návrhovým vzorem HMVC (http://en.wikipedia.org/wiki/hmvc) ve frameworku

Více

Provozní dokumentace. Seznam orgánů veřejné moci. Příručka pro běžného uživatele

Provozní dokumentace. Seznam orgánů veřejné moci. Příručka pro běžného uživatele Provozní dokumentace Seznam orgánů veřejné moci Příručka pro běžného uživatele Vytvořeno dne: 7. 7. 2011 Aktualizováno: 7. 6. 2017 Verze: 2.4 2017 MVČR Obsah Příručka pro běžného uživatele 1 Úvod...3 1.1

Více

2012 ET NETERA a.s. Wicket přehled technologie Martin Strejc www.etnetera.cz 5.4.2012

2012 ET NETERA a.s. Wicket přehled technologie Martin Strejc www.etnetera.cz 5.4.2012 Wicket přehled technologie Martin Strejc www.etnetera.cz 5.4.2012 Osnova přednášky 1. Vznik Wicketu 2. Co Wicket umí a co neumí? 3. Účely užití výhody a nevýhody 4. Rozšiřitelnost Wicketu 5. Srovnání s

Více

Mapa Česka: www.mapa-ceska.cz

Mapa Česka: www.mapa-ceska.cz Mapa Česka: www.mapa-ceska.cz Mapový portál Mapa Česka, který je dostupný na internetové adrese www.mapa-ceska.cz, byl vytvořen v roce 2014 v rámci bakalářské práce na Přírodovědecké fakultě Univerzity

Více

Dobrý FOTO Popis produktu a jeho rozšíření

Dobrý FOTO Popis produktu a jeho rozšíření Dobrý FOTO Popis produktu a jeho rozšíření 502M012.N00 11/11/2011 www.dobry-foto.cz www.dlaex.cz info@dlaex.cz OBSAH 1 Úvod...3 2 Účel produktu...3 3 Vlastnosti produktu...3 3.1 Koncepce...3 3.2 Základní

Více

Webová stránka. Matěj Klenka

Webová stránka. Matěj Klenka Webová stránka Matěj Klenka Osobní webová stránka Toto je dokumentace k mé webové stránce This is a documentation to my web page Já, Matěj Klenka, prohlašuji, že má webová stránka byla vytvořena mnou a

Více

TECHNICKÁ DOKUMENTACE SOCIÁLNÍ SÍŤ MRSHARE. David Malát, Adam Novák, David Vurbs, Dominik Walta. SPŠ Na Proseku 2012/13. Pod velením Davida Vurbse

TECHNICKÁ DOKUMENTACE SOCIÁLNÍ SÍŤ MRSHARE. David Malát, Adam Novák, David Vurbs, Dominik Walta. SPŠ Na Proseku 2012/13. Pod velením Davida Vurbse TECHNICKÁ DOKUMENTACE SOCIÁLNÍ SÍŤ MRSHARE David Malát, Adam Novák, David Vurbs, Dominik Walta SPŠ Na Proseku 2012/13 Pod velením Davida Vurbse Zadání práce Adam Novák-Vytvořit zeď a její funkce a technickou

Více

CÍLOVÝ KONCEPT. Ghoul Wars. pro. Jihočeskou univerzitu Pedagogickou fakultu Předmět: TDSA

CÍLOVÝ KONCEPT. Ghoul Wars. pro. Jihočeskou univerzitu Pedagogickou fakultu Předmět: TDSA pro Jihočeskou univerzitu Pedagogickou fakultu Předmět: TDSA Zpracovatel: Bohuslav Pindryč Datum zpracování: 20.04. 2010 Verze: 1 Stránka 2/13 OBSAH 1. Identifikace 4 2. Přílohy 4 3. Schvalovací doložka

Více

Část IV - Bezpečnost 21. Kapitola 19 Bezpečnostní model ASP.NET 23

Čá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

Více

Michal Augustýn www.augi.cz Microsoft Most Valuable Professional

Michal Augustýn www.augi.cz Microsoft Most Valuable Professional Michal Augustýn www.augi.cz Microsoft Most Valuable Professional dříve převážně desktopové aplikace rozmach internetu poptávka po webových vývojářích ASP.NET WebForms snadný přechod - RAD mezitím jiné

Více

M4 PDF rozšíření. Modul pro PrestaShop. http://www.presta-addons.com

M4 PDF rozšíření. Modul pro PrestaShop. http://www.presta-addons.com M4 PDF rozšíření Modul pro PrestaShop http://www.presta-addons.com Obsah Úvod... 2 Vlastnosti... 2 Jak modul funguje... 2 Zdroje dat... 3 Šablony... 4 A. Označení šablon... 4 B. Funkce Smarty... 5 C. Definice

Více

Provozní dokumentace. Seznam orgánů veřejné moci. Příručka pro běžného uživatele

Provozní dokumentace. Seznam orgánů veřejné moci. Příručka pro běžného uživatele Provozní dokumentace Seznam orgánů veřejné moci Příručka pro běžného uživatele Vytvořeno dne: 7. 7. 2011 Aktualizováno: 11. 2. 2015 Verze: 2.2 2015 MVČR Obsah Příručka pro běžného uživatele 1 Úvod...3

Více

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky Otázka 20 A7B36DBS Zadání... 1 Slovníček pojmů... 1 Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky... 1 Zadání Relační DB struktury sloužící k optimalizaci

Více

Administrace webu Postup při práci

Administrace webu Postup při práci Administrace webu Postup při práci Obsah Úvod... 2 Hlavní menu... 3 a. Newslettery... 3 b. Administrátoři... 3 c. Editor stránek... 4 d. Kategorie... 4 e. Novinky... 5 f. Produkty... 5 g. Odhlásit se...

Více

1 Administrace systému 3. 1.3 Moduly... 3 1.4 Skupiny atributů... 4 1.5 Atributy... 4 1.6 Hodnoty atributů... 4

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.......................................

Více

Uživatelská příručka

Uživatelská příručka B2B CENTRUM a.s. 3.2011 Obsah Začínáme... 3 Přihlášení a zapomenuté heslo... 3 Vytvoření uživatele... 3 Editace osobních údajů... 5 Vkládání souborů... 6 Elektronický podpis... 8 Stavební deník... 11 Identifikační

Více

RELAČNÍ DATABÁZE ACCESS

RELAČNÍ DATABÁZE ACCESS RELAČNÍ DATABÁZE ACCESS 1. Úvod... 2 2. Základní pojmy... 3 3. Vytvoření databáze... 5 4. Základní objekty databáze... 6 5. Návrhové zobrazení tabulky... 7 6. Vytváření tabulek... 7 6.1. Vytvoření tabulky

Více

ACTIVATE HERE - FAQ. Zakoupením této položky získáte do 60 minut do požadovaného emailu aktivační klíče k vybranému produktu.

ACTIVATE HERE - FAQ. Zakoupením této položky získáte do 60 minut do požadovaného emailu aktivační klíče k vybranému produktu. ACTIVATE HERE - FAQ Co je to Activate-Here produkt? Zakoupením této položky získáte do 60 minut do požadovaného emailu aktivační klíče k vybranému produktu. Součástí emailu je i odkaz, kde si můžete vybraný

Více

Zadání maturitní práce ve školním roce 2016/2017

Zadání maturitní práce ve školním roce 2016/2017 Zadání maturitní práce ve školním roce 2016/2017 vydané podle 15 odst. 1 vyhlášky č. 177/2009 Sb., o bližších podmínkách ukončování vzdělávání ve středních školách maturitní zkouškou, ve znění pozdějších

Více

E-learningovýsystém Moodle

E-learningovýsystém Moodle E-learningovýsystém Moodle Jan Povolný Název projektu: Věda pro život, život pro vědu Registrační číslo: CZ.1.07/2.3.00/45.0029 Co je to Moodle? - systém pro tvorbu a správu elektronických výukových kurzů

Více

ISPOP 2019 MANUÁL PRO PRÁCI V REGISTRU ODBORNĚ ZPŮSOBILÝCH OSOB

ISPOP 2019 MANUÁL PRO PRÁCI V REGISTRU ODBORNĚ ZPŮSOBILÝCH OSOB ISPOP 2019 MANUÁL PRO PRÁCI V REGISTRU ODBORNĚ ZPŮSOBILÝCH OSOB Správce výrobce verze 1.0 1 z 24 Obsah 1. Seznam zkratek... 3 2. Přehled změn manuálu... 3 3. Úvod... 4 4. Popis Registru OZO... 5 4.1. Uživatelské

Více

Hledání správné cesty

Hledání správné cesty Semestrální práce z předmětu A6M33AST Závěrečná zpráva Hledání správné cesty Nela Grimová, Lenka Houdková 2015/2016 1. Zadání Naším úkolem bylo vytvoření úlohy Hledání cesty, kterou by bylo možné použít

Více

CineStar Černý Most Praha 31. 10. 2012

CineStar Černý Most Praha 31. 10. 2012 CineStar Černý Most Praha 31. 10. 2012 Stejná aplikace na více zařízeních Michael Juřek Microsoft s.r.o. Potřebné ingredience 1. Portable libraries 2. Návrhový vzor MVVM 3. XAML 4. Abstrakce platformy

Více

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER váš partner na cestě od dat k informacím globtech spol. s r.o. karlovo náměstí 17 c, praha 2 tel.: +420 221 986 390 info@globtech.cz

Více

NewLink Moravia. CSP aplikace: RedHorse Content management ISM Issue management

NewLink Moravia. CSP aplikace: RedHorse Content management ISM Issue management NewLink Moravia CSP aplikace: RedHorse Content management ISM Issue management Činnost společnosti NewLink NewLink se zabývá webovými aplikacemi a informačními systémy pro průmyslové podniky a obchodní

Více

Analýza a Návrh. Analýza

Analýza a Návrh. Analýza Analysis & Design Návrh nebo Design? Design = návrh Není vytváření použitelného uživatelského prostředí (pouze malinká podmnožina celého návrhu) Často takto omezeně chápáno studenty nedokáží si představit,

Více

Příručka pro nasazení a správu výukového systému edu-learning

Příručka pro nasazení a správu výukového systému edu-learning Příručka pro nasazení a správu výukového systému edu-learning Obsah: Edu-learning pro firmy a organizace... 2 Varianty nasazení... 2 A. Systém umístěný v lokální síti zákazníka... 3 B. Systém umístěný

Více

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11 Obsah Úvodem 9 Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10 Kapitola 1 Než začneme 11 Dynamické vs. statické stránky 11 Co je a k čemu slouží PHP 12 Instalace potřebného softwarového

Více

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

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

Více

Redakční systém Joomla. Prokop Zelený

Redakční systém Joomla. Prokop Zelený Redakční systém Joomla Prokop Zelený 1 Co jsou to red. systémy? Redakční systémy (anglicky Content Management System - CMS) jsou webové aplikace používané pro snadnou správu obsahu stránek. Hlavním cílem

Více

WNC::WebNucleatCreator

WNC::WebNucleatCreator Tomáš Dlouhý WNC::WebNucleatCreator Verze: 5.1 1 Obsah Obsah...2 Úvod...3 Novinky...3 Požadavky...4 Instalace...4 Přihlášení se do WNC...6 Moduly...7 Modul Blog...7 Modul Categories...8 Modul News...8

Více

PROFI TDi s.r.o. 696 37, Želetice 40 www.profi-tdi.cz info@profi-tdi.cz. Návod k používání systému OTDI.CZ

PROFI TDi s.r.o. 696 37, Želetice 40 www.profi-tdi.cz info@profi-tdi.cz. Návod k používání systému OTDI.CZ Návod k používání systému OTDI.CZ Vážený kliente. Děkujeme za projevený zájem o náš on-line systém evidence kontrol, určený speciálně pro účely dozorů staveb. Systém OTDI.CZ nabízí svým uživatelům zejména:

Více

Obsah. Úvodem 9 Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10

Obsah. Úvodem 9 Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10 Obsah Úvodem 9 Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10 KAPITOLA 1 Co budeme potřebovat 11 Co knihovna jquery nabízí 11 Editor zdrojového kódu 12 Webový server 12 Software pro ladění

Více

Evidence požadavků uživatelů bytů a nebytových prostor

Evidence požadavků uživatelů bytů a nebytových prostor Evidence požadavků uživatelů bytů a nebytových prostor Úvod Pro zjednodušení a zprůhlednění Vaší komunikace se správní firmou (dále jen SF ), která má na starost objekt, v němž se nachází bytový či nebytový

Více

Elektronická podpora výuky předmětu Komprese dat

Elektronická podpora výuky předmětu Komprese dat Elektronická podpora výuky předmětu Komprese dat Vojtěch Ouška ouskav1@fel.cvut.cz 19. června 2006 Vojtěch Ouška Elektronická podpora výuky předmětu Komprese dat - 1 /15 Co je to SyVyKod? SyVyKod = Systém

Více

Zadání grafického designu Trh poptávek

Zadání grafického designu Trh poptávek 2012 Zadání grafického designu Trh poptávek Dokument obsahuje shrnutí cílů webu Trh poptávek a požadavky na grafický design Zelinka Josef LogisCom s.r.o 1.1.2012 Obsah 1. Cíle dokumentu... 2 2. Cíle webu...

Více

Dobrý SHOP Popis produktu a jeho rozšíření

Dobrý SHOP Popis produktu a jeho rozšíření Dobrý SHOP Popis produktu a jeho rozšíření 501M012.N01 11/11/2011 www.dlaex.cz info@dlaex.cz OBSAH 1 Úvod...3 2 Účel produktu...3 3 Vlastnosti produktu...3 3.1 Koncepce...3 3.2 Základní y...3 3.3 Doplňkové

Více

Manuál PVU zadavatel Platnost pro elektronický nástroj X-EN verze 4 a novější

Manuál PVU zadavatel Platnost pro elektronický nástroj X-EN verze 4 a novější Manuál PVU zadavatel Platnost pro elektronický nástroj X-EN verze 4 a novější 1 Vytvoření profilu zadavatele... 2 1.1 Doplnění identifikátoru profilu zadavatele ve VVZ... 2 2 Správa profilu... 3 2.1 Vytvoření

Více

Jak testovat software v praxi. aneb šetříme svůj vlastní čas

Jak testovat software v praxi. aneb šetříme svůj vlastní čas Jak testovat software v praxi aneb šetříme svůj vlastní čas Proč testy nepíšeme Nemáme na to čas Platí v cca 5% případů Nový projekt Prototyp je třeba mít během pár dní Počítá se s tím, že další verze

Více

Po prvním spuštění Chrome Vás prohlížeč vyzve, aby jste zadali své přihlašovací údaje do účtu Google. Proč to udělat? Máte několik výhod:

Po prvním spuštění Chrome Vás prohlížeč vyzve, aby jste zadali své přihlašovací údaje do účtu Google. Proč to udělat? Máte několik výhod: Internetový prohlížeč CHROME Pro správné fungování veškerých funkcionalit, které nám nástroje společnosti Google nabízí, je dobré používat prohlížeč Chrome. Jeho instalaci je možné provést z webové adresy:

Více

Řízení reálných projektů, agilní metodiky

Řízení reálných projektů, agilní metodiky Agent Technology Group Katedra kybernetiky Fakulta elektrotechnická - České vysoké učení technické Praha, 2009 Osnova Lze vyvíjet software bez metodiky? - bohužel ano menší komerční firmy (zejména vývoj

Více

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í.

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

Více

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

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

Více

Manuál pro obsluhu Webových stránek

Manuál pro obsluhu Webových stránek ResMaster Systems s.r.o. Truhlářská 1119/20, 110 00 Praha 1 Manuál pro obsluhu Webových stránek (Prosinec 2018) Jana Vítová, +420 225 388 130 2018 Obsah Úvod Webové stránky... 3 Slovník pojmů... 3 URL

Více

Kurz je rozdělen do čtyř bloků, které je možné absolvovat i samostatně. Podmínkou pro vstup do kurzu je znalost problematiky kurzů předešlých.

Kurz je rozdělen do čtyř bloků, které je možné absolvovat i samostatně. Podmínkou pro vstup do kurzu je znalost problematiky kurzů předešlých. Soubor kurzů XHTML, CSS, PHP a MySQL Kurz je rozdělen do čtyř bloků, které je možné absolvovat i samostatně. Podmínkou pro vstup do kurzu je znalost problematiky kurzů předešlých. Jeden blok se skládá

Více

Úvod...1 Instalace...1 Popis funkcí...2 Hlavní obrazovka...2 Menu...3 Práce s aplikací - příklad...5

Úvod...1 Instalace...1 Popis funkcí...2 Hlavní obrazovka...2 Menu...3 Práce s aplikací - příklad...5 Rejstřík Úvod...1 Instalace...1 Popis funkcí...2 Hlavní obrazovka...2 Menu...3 Práce s aplikací - příklad...5 Úvod Správcovská aplikace slouží k vytvoření vstupního a zašifrovaného souboru pro odečtovou

Více

Obsah. 1.1 Práce se záznamy... 3 1.2 Stránka Dnes... 4. 2.1 Kontakt se zákazníkem... 5

Obsah. 1.1 Práce se záznamy... 3 1.2 Stránka Dnes... 4. 2.1 Kontakt se zákazníkem... 5 CRM SYSTÉM KORMORÁN UŽIVATELSKÁ PŘÍRUČKA Obsah 1 Základní práce se systémem 3 1.1 Práce se záznamy................................. 3 1.2 Stránka Dnes.................................... 4 1.3 Kalendář......................................

Více

Uživatelská příručka

Uživatelská příručka PŘÍLOHA B Uživatelská příručka Před prvním spuštění aplikace je nezbytné ujasnit si některé pojmy: web URL webových stránek, pro které se budou zjišťovat pozice. klíčové slovo - Slovní spojení nebo samostatné

Více

Nemocnice. Prvotní analýza a plán projektu

Nemocnice. Prvotní analýza a plán projektu Nemocnice Projekt do předmětu AIS Prvotní analýza a plán projektu Lukáš Pohl, xpohll00, xkosti03 Jan Novák, xnovak79 2009/2010 1 Neformální specifikace FN potřebuje informační systém, který bude obsahovat

Více

ISPOP 2019 MANUÁL PRO PRÁCI V REGISTRU ODBORNĚ ZPŮSOBILÝCH OSOB

ISPOP 2019 MANUÁL PRO PRÁCI V REGISTRU ODBORNĚ ZPŮSOBILÝCH OSOB ISPOP 2019 MANUÁL PRO PRÁCI V REGISTRU ODBORNĚ ZPŮSOBILÝCH OSOB Odborně způsobilá osoba verze 1.0 1 z 19 Obsah 1. Seznam zkratek...3 2. Přehled změn manuálu...3 3. Úvod...4 4. Popis Registru OZO...5 4.1.

Více

Outdoor Expert. Uživatelský manuál. Verze aplikace: OutdoorExpert_Manual.docx 1 /

Outdoor Expert. Uživatelský manuál. Verze aplikace: OutdoorExpert_Manual.docx 1 / Outdoor Expert Uživatelský manuál Verze aplikace: 1.0 28. 12. 2014 OutdoorExpert_Manual.docx 1 / 35 2015-01-01 Obsah 1 ÚVOD... 3 2 POPIS FUNKČNOSTÍ APLIKACE... 3 2.1 SPUŠTĚNÍ APLIKACE... 3 2.2 ZALOŽENÍ

Více

Program pro tvorbu technických výpočtů. VIKLAN - Výpočty. Uživatelská příručka. pro seznámení se základními možnostmi programu. Ing.

Program pro tvorbu technických výpočtů. VIKLAN - Výpočty. Uživatelská příručka. pro seznámení se základními možnostmi programu. Ing. Program pro tvorbu technických výpočtů VIKLAN - Výpočty Uživatelská příručka pro seznámení se základními možnostmi programu Ing. Josef Spilka VIKLAN - Výpočty Verse 1.10.5.1 Copyright 2010 Ing. Josef Spilka.

Více

Národní elektronický nástroj. Import profilu zadavatele do NEN

Národní elektronický nástroj. Import profilu zadavatele do NEN Národní elektronický nástroj Import profilu zadavatele do NEN V 1.2 2014 Obsah 1 Cíl...... 2 2 Nutné podmínky k umožnění importu profilu zadavatele...... 2 3 Povinnosti zadavatele dle metodiky k vyhlášce

Více

SRSW4IT Inventarizační SW. Prezentace aplikace. Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek

SRSW4IT Inventarizační SW. Prezentace aplikace. Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek Prezentace aplikace Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek Osnova Úvod Programovací jazyk - PHP Etapy vývoje Funkce aplikace Co SW umí Na čem se pracuje Vize do budoucna Úvod Úvod Inspirováno

Více