UNICORN COLLEGE
Katedra informačních technologií
BAKALÁŘSKÁ PRÁCE Selftest systém v ASP.NET Autor BP: Milan Klapač Vedoucí BP: Ing. David Hartman Ph.D. 2013 Praha
Čestné prohlášení Prohlašuji, že jsem svou bakalářskou práci na téma Selftest systém v ASP.NET vypracoval samostatně, pod vedením vedoucího bakalářské práce a s použitím výhradně odborné literatury a dalších informačních zdrojů, které jsou v práci citovány a jsou také uvedeny v seznamu literatury a použitých zdrojů. Jako autor této bakalářské práce dále prohlašuji, že v souvislosti s jejím vytvořením jsem neporušil autorská práva třetích osob 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 Praze dne 1. 5. 2013
…….…………………………… (Milan Klapač)
Poděkování Děkuji vedoucímu bakalářské práce Ing. Davidu Hartmanovi Ph.D. za účinnou metodickou, pedagogickou a odbornou pomoc a další cenné rady při zpracování mé bakalářské práce.
Selftesst systém m v ASP P.NET Self‐tesst system m in ASP P.NET
5
Abstrakt Tato práce se zabývá návrhem a vývojem testovacího systému pro výukové a školící účely poskytující automatickou zpětnou vazbu uživatelům. Systém je realizován pomocí technologie ASP.NET. Je zde ukázáno jedno z možných řešení takovéto webové aplikace a možnosti jejího použití a dalšího rozšiřování. Kromě samotného návrhu a vývoje se práce zabývá popisem a analýzou změn, které přineslo HTML5, a možnostmi a výhodami jejich využití v kombinaci s ASP.NET. První část je věnována právě HTML5 a jeho použití v ASP.NET. Druhá část se pak zabývá návrhem a popisem aplikace. Na konci druhé části se nachází popis ovládání aplikace. Klíčová slova: HTML5, ASP.NET, JSON, RGraph, webová aplikace, návrh aplikace
Abstract This paper describes the design and development of a test system for educational and training purposes providing automatic feedback to users. The system is implemented using the ASP.NET technology. One of the possible solutions for such web applications and possibilities of their use and further dissemination is shown here. In addition to the design and development, this paper deals with the description and analysis of the changes, which HTML5 brought and the opportunities and benefits of their use in combination with ASP.NET. The first part is devoted to HTML5 and its application in ASP.NET. The second part deals with the design and description of the application. At the end of the second part, there is a description of how to work with the application. Keywords: HTML5, ASP.NET, JSON, RGraph, web application, application design
6
Obsah 1. Úvod .............................................................................................................................. 11 2. Popis technologií ........................................................................................................... 13 2.1. ASP.NET ................................................................................................................... 13 2.1.1. Webforms ........................................................................................................... 13 2.1.2. MVC ................................................................................................................... 13 2.1.3. Srovnání WebForms a MVC .............................................................................. 14 2.2. JavaScript .................................................................................................................. 14 2.3. JSON ......................................................................................................................... 14 2.4. Ajax ........................................................................................................................... 14 2.5. Další pojmy použité v práci....................................................................................... 15 2.5.1. Code-behind ........................................................................................................ 15 2.5.2. ADO.NET ........................................................................................................... 15 2.5.3. Entity Framework ............................................................................................... 15 2.5.4. Session ................................................................................................................ 15 2.5.5. Cookies ............................................................................................................... 16 2.5.6. Flash .................................................................................................................... 16 2.5.7. BTS ..................................................................................................................... 16 2.5.8. Unicorn Universe ................................................................................................ 16 3. HTML5 .......................................................................................................................... 17 3.1. Historie HTML .......................................................................................................... 17 3.2. Seznámení s HTML5................................................................................................. 18 3.3. Syntaxe HTML5 ........................................................................................................ 19 3.4. Struktura HTML5 ...................................................................................................... 20 3.4.1. Prvek header ....................................................................................................... 20 3.4.2. Prvek nav ............................................................................................................ 20 3.4.3. Prvek aside ......................................................................................................... 21 7
3.4.4. Prvek article ........................................................................................................ 21 3.4.5. Prvek section ....................................................................................................... 22 3.4.6. Prvek footer ........................................................................................................ 22 3.5. Formuláře .................................................................................................................. 22 3.5.1. Nové atributy ...................................................................................................... 23 3.5.2. Nové formulářové vstupní typy a prvky ............................................................. 25 3.6. Audio/Video .............................................................................................................. 27 3.7. Canvas a SVG ........................................................................................................... 29 3.7.1. Canvas................................................................................................................. 29 3.7.2. SVG .................................................................................................................... 30 3.8. Geolokace .................................................................................................................. 31 3.9. WebWorkers .............................................................................................................. 31 3.10. Drag and Drop ......................................................................................................... 31 3.11. Offline aplikace a WebStorage................................................................................ 32 3.11.1. Offline aplikace ................................................................................................ 32 3.11.2. Web Storage...................................................................................................... 33 3.12. Ostatní nové HTML5 prvky .................................................................................... 34 3.12.1. Prvek hgroup ..................................................................................................... 34 3.12.2. Prvek figure a figcaption .................................................................................. 34 3.12.3. Prvek progress a meter...................................................................................... 35 3.12.4. Prvek mark ........................................................................................................ 35 3.12.5. Prvek time ......................................................................................................... 35 3.12.6. Prvek details...................................................................................................... 35 3.12.7. Style a atribut scope .......................................................................................... 36 3.12.8. Atribut async ..................................................................................................... 36 4. HTML5 v ASP.NET...................................................................................................... 37 4.1. Nové strukturální prvky............................................................................................. 37 8
4.2. Validátory .................................................................................................................. 37 4.3. Nové vstupní typy ..................................................................................................... 38 4.4. Drag and Drop ........................................................................................................... 38 4.5. Audio a Video ........................................................................................................... 39 4.6. Canvas ....................................................................................................................... 39 5. Návrh aplikace ............................................................................................................... 40 5.1. Zadání ........................................................................................................................ 40 5.2. Role ........................................................................................................................... 41 5.3. Funkční požadavky.................................................................................................... 41 5.4. Nefunkční požadavky ................................................................................................ 42 5.5. Use case model .......................................................................................................... 43 5.5.1. Nepřihlášený uživatel a Public/Student .............................................................. 43 5.5.2. Teacher ............................................................................................................... 44 5.5.3. Admin ................................................................................................................. 45 5.5.4. Seznam případů užití .......................................................................................... 46 5.6. High level pohled ...................................................................................................... 48 5.7. Použité technologie ................................................................................................... 49 5.7.1. Knihovny třetích stran ........................................................................................ 49 5.8. Popis komponent systému ......................................................................................... 50 5.8.1. KlapacBP – hlavní projekt .................................................................................. 51 5.8.2. KlapacBPdata – podpůrný projekt ...................................................................... 66 5.9. Databázový model ..................................................................................................... 68 5.9.1. Selftesty .............................................................................................................. 68 5.9.2. Uživatelé ............................................................................................................. 71 5.9.3. Výsledky testů .................................................................................................... 73 5.10. Podrobný popis vybraných komponent ................................................................... 74 5.10.1. Zobrazení testu.................................................................................................. 74 9
5.10.2. Vyhodnocení testu ............................................................................................ 76 5.10.3. Dynamické načítání uživatelských komponent ................................................ 76 5.10.4. Grafy ................................................................................................................. 78 5.10.5. Drag and Drop .................................................................................................. 79 5.10.6. JSON ................................................................................................................. 82 6. Ovládání systému .......................................................................................................... 84 6.1. Absolvování testu ...................................................................................................... 85 6.2. Vytvoření nové otázky .............................................................................................. 86 6.2.1. Drag and Drop .................................................................................................... 87 6.3. Vytvoření testu .......................................................................................................... 87 6.3.1. JSON ................................................................................................................... 88 6.4. Typy otázek a odpovědí ............................................................................................ 88 6.4.1. Otázky ................................................................................................................. 88 6.4.2. Odpovědi............................................................................................................. 89 7. Závěr .............................................................................................................................. 92 8. Conclusion ..................................................................................................................... 94 9. Citovaná literatura ......................................................................................................... 96 10. Seznam obrázků........................................................................................................... 98 11. Seznam kódů ............................................................................................................. 100 12. Seznam tabulek .......................................................................................................... 101 13. Seznam příloh ............................................................................................................ 102 Příloha 1 – CD ................................................................................................................. 103
10
Bakalářská práce Selftest systém v ASP.NET Self-test system in ASP.NET
1. Úvod V posledních dvou desetiletích došlo k výraznému rozvoji informačních technologií. Téměř každá domácnost má dnes vysokorychlostní připojení k internetu. S počítači se děti setkávají už v raném věku doma, ve školách apod. Díky internetu je snadno dostupné velké množství informací, mimo jiné i široké možnosti vzdělávání. Je zde možné nalézt mnoho kurzů či aplikací pro rozšíření znalostí. Kromě tohoto i školy začínají nabízet materiály ke studiu v elektronické formě. Některé (například zahraniční MIT1 nebo z českých Masarykova univerzita či Unicorn College s. r. o.) mají velmi kvalitní elektronický systém pro podporu vzdělávání a nabízejí studentům další možnosti nabytí a procvičení znalostí. Jsou to však spíše výjimky. I když jsou materiály studentům poskytovány, chybí možnost ověřit si míru získaných znalostí. Podobná situace je i u webových portálů zabývajících se vzděláváním. Ty sice nabízejí možnost ověření znalostí pomocí různých testů, ale mnoho z těchto portálů zastarává a nevyužívá plně možností nových technologií. Tyto technologie mohou na jedné straně velmi usnadnit vývoj kvalitní aplikace (nejen) pro sebevzdělávání, na druhé straně nabídnout uživatelům bohaté funkčnosti, které by bez těchto technologií nebylo možné vůbec, či jen s obtížemi, vytvořit. Například www.HelpForEnglish.cz poskytuje velmi kvalitní materiály pro zlepšení znalostí anglického jazyka. Přestože je velká část webu zaměřena na testování znalostí, je zde jediný typ otázky, a to výběr z předpřipravených možností (otázky „ABC“). Součástí některých zadání testů jsou i audio nahrávky, ale pro jejich přehrání je potřeba mít nainstalovaný dodatečný software. Možnost řešení těchto nedostatků poskytuje HTML5. Umožňuje vytvořit, pro výuku angličtiny vhodné, přiřazování dvojic slov k sobě pouhým přetahováním objektů na stránce. Mimo jiné má i schopnost nahradit současný přehrávač audia vlastními prvky, které ke své funkci jiný software nepotřebují. Tyto výhody poskytují příjemnější práci uživatelům a zefektivňují proces sebevzdělávání. Proto se v této práci zabývám návrhem a vývojem systému pro testování znalostí, který využívá nových technologií a nabízí široké možnosti v oblasti tvorby testů. Zahrnuje více druhů otázek (audio/video, obrázky, přetahování, doplňování do textu a další), statistiky výsledků či nahrávání souborů metodou Táhni a Pusť (Drag and Drop). Tato aplikace slouží jako základní stavební kámen pro její další rozvoj dle specifických požadavků jed-
1
http://www.mit.edu/
11
Bakalářská práce Selftest systém v ASP.NET Self-test system in ASP.NET notlivých provozovatelů, kteří o ni budou mít zájem. Snadná rozšiřitelnost (hlavně o nové typy otázek) je jednou z klíčových vlastností systému. V první části jsou popsány vybrané technologie týkající se webových aplikací. Velký důraz je kladen na HTML5. Jsou zde novinky, které přináší, a rady, jak je správně a vhodně použít. Na konci této části je pak popsána práce s HTML5 v ASP.NET. Další část se zabývá návrhem a popisem samotné aplikace. Je zde analýza požadavků, pohledy na systém a popis jeho částí. Kromě toho ukazuje příklady využití HTML5 a výhody či problémy, které to přináší. Dále jsou zde řešení problémů, které mohou při vývoji takovéto aplikace nastat. V poslední části je pak ukázáno ovládání aplikace. To má za úkol usnadnit novým uživatelům lepší orientaci v systému a popsat složitější funkčnosti, které nabízí. Zároveň slouží jako ukázka aplikace a použití implementovaných funkčností z pohledu uživatele.
12
Bakalářská práce Selftest systém v ASP.NET Self-test system in ASP.NET
2. Popis technologií 2.1. ASP.NET ASP.NET (Active Server Pages .NET) je technologie pro vývoj dynamických webových stránek od společnosti Microsoft (LEE, 2005 str. 1). Je součastí .NET frameworku. Název převzala z technologie ASP, která byla předchůdcem ASP.NET a sloužila k tvorbě dynamicky zpracovávaných stránek na straně serveru. I když zůstal tento koncept zachován, nelze říct, že by ASP.NET byla jen její vylepšená verze. ASP.NET těží z vlastností .NET frameworku, jako je například CLR (Common Language Runtime), díky němuž lze psát webové stránky v jakémkoliv jazyce podporujícím CLR. Lze rozdělit na dvě hlavní větve, a to na WebForms a MVC.
2.1.1. Webforms Webforms vzniklo dříve než MVC, konkrétně v roce 2002. Jeho hlavní myšlenkou je vyřešit bezestavovost HTTP protokolu. To řeší kombinací HTML a JavaScriptu a za pomoci dvou základních mechanizmů. Prvním je View state, který má za úkol uchovávat hodnoty na webové stránce persistentní, aby nedocházelo k jejich ztrátě mezi požadavky na server. Toho je docíleno uchováváním hodnot jednotlivých prvků na stránce v zakódovaném tvaru ve speciálním skrytém poli. To však samo o sobě nestačí, jelikož kvůli bezestavovosti HTTP by server neměl potřebné informace o předchozích požadavcích klienta. To řeší druhý mechanizmus zvaný Session state. Ten má naopak na starosti uchovávat na serveru potřebná data o celkovém průběhu relace. S každým požadavkem klienta je tak odeslán i identifikátor dané relace a vše potřebné je podle něj dohledáno na serveru. Díky tomu nemusí být všechna data posílána neustále a sníží se tak objem přenášených dat. Na druhou stranu však roste zátěž serveru, jelikož musí tato data uchovávat. (ASP.NET, 2012 str. 1)
2.1.2. MVC MVC je mladší alternativa WebForms a její vývoj začal v roce 2008. Umožňuje tvorbu webových aplikací podle architektury Model-View-Controller. Nepoužívá již View state a je nezávislá na JavaScriptu, který je u WebForms nezbytný k spouštění jednotlivých událostí, na kterých je založen. (ASP.NET, 2012 str. 1)
13
Bakalářská práce Selftest systém v ASP.NET Self-test system in ASP.NET
2.1.3. Srovnání WebForms a MVC Jak WebForms, tak MVC mají své výhody i nevýhody a hodí se pro různé typy aplikací. MVC díky rozdělení na model, view a controller usnadňuje zvládání komplexních aplikací a umožňuje snadnější vývoj ve větších týmech. Jelikož nepoužívá View state a serverové formuláře jako Webforms, mají vývojáři větší kontrolu nad chováním aplikace. Na druhou stranu, co je pro někoho výhodou, je pro jiného nevýhodou. A tak právě Webforms díky bohaté nabídce předpřipravených serverových prvků, View state a efektivní práci s daty usnadňuje vývoj webové aplikace a umožňuje například využít vlastností AJAXu i bez znalosti JavaScriptu. Je vhodný spíše pro menší týmy vývojářů, zvláště pro takzvaný Rapid Application Development přístup vývoje softwaru.
2.2. JavaScript JavaScript je programovací jazyk, který se používá na webových stránkách. Je součástí stránky a je spouštěn až na klientském počítači. Díky němu lze oživit stránky a přidat jim zajímavé funkčnosti. Nové HTML5 hojně využívá tohoto jazyka a poskytuje mu API pro další možnosti využití nových HTML5 prvků (například audio či Drag and Drop). I v samotném ASP.NET (zvláště u Webforms) je mnoho funkčností přímo závislých na JavaScriptu. Ze serverových prvků se generují klientské skripty pro validace či u tlačítek JavaScriptem volané dotazy na server.
2.3. JSON JSON (JavaScriptový objektový zápis) je způsob zápisu dat s důrazem na jejich čitelnost pro člověka i počítač. Data jsou ukládána ve tvaru klíče a hodnoty v textové formě. Používá se (mimo jiné) k serializaci objektů a jejich přenosu sítí, například ze serveru ke klientovi či naopak. Jedná se o jazykově a platformně nezávislý formát, proto je vhodný i k výměně dat mezi rozdílnými systémy. (CHOW, 2007)
2.4. Ajax Ajax (Asynchronní JavaScript a XML) je označení pro způsob vývoje webových stránek. Ty mohou být poté dynamicky modifikovány programovacím jazykem, který si vyžádá data pouze v případě, kdy je potřebuje bez nutnosti znovu načítat celý obsah stránky. (GROSS, 2006 str. 1). 14
Bakalářská práce Selftest systém v ASP.NET Self-test system in ASP.NET
2.5. Další pojmy použité v práci 2.5.1. Code‐behind Tento termín označuje kód ASP.NET stránky, který je od ní oddělen a nachází se v samostatném souboru. To umožňuje oddělení HTML kódu od prezentační logiky. (Microsoft, 2007)
2.5.2. ADO.NET ADO.NET (Microsoft ActiveX Data Objects .NET) představuje množinu tříd nabízejících služby pro přístup k datům a tvorbu databázových aplikací. Daty máme nyní na mysli převážně informace uložené v databázích. Ať se již jedná o data v databázích například na Microsoft SQL Serveru či data zpřístupněná přes OLE DB nebo XML. Mezi jeho přednosti patří především jednoduchý způsob použití, rychlost při zpracování a další. Stačí vytvořit spojení se serverem, s kterým budeme chtít pracovat, pomocí zvoleného adaptéru a zadaného dotazu získat z databáze data a ty pak načíst do některé z připravených konstrukcí pro práci s daty z tabulek. (BĚHÁLEK, 2007 stránky 1, kapitola 7)
2.5.3. Entity Framework Poskytuje platformu pro objektově-relační mapování, které dokáže pracovat s relačními daty jako doménově specifickými objekty a odstraňuje tak potřebu vytvářet většinu obslužného kódu pro přístup k datům. (Microsoft, 2012)
2.5.4. Session Session reprezentuje specifické spojení mezi klientským počítačem a hostujícím počítačem, které umožňuje vzájemnou komunikaci. Termín označuje množinu dat, která toto spojení umožňuje, ale také se používá pro označení času, během kterého komunikace probíhá. (Microsoft, 2010)
15
Bakalářská práce Selftest systém v ASP.NET Self-test system in ASP.NET
2.5.5. Cookies Cookies jsou malé soubory uložené na klientském počítači webovým serverem. Ten je používá pro identifikaci uživatele. Cookies může číst pouze server, který je do počítače uložil. (Microsoft, 2005)
2.5.6. Flash Adobe Flash je software pro tvorbu vektorové grafiky, animací a multimediálního obsahu. Flash se používá mimo jiné pro přidání audio a video přehrávačů či interaktivního obsahu do webových stránek. Zobrazení zajišťuje Adobe Flash Player. (Adobe.com, 2012)
2.5.7. BTS BTS (Base Transceiver Station ), česky základnová převodní stanice, je vysílač a přijímač rádiových signálů (ITBiz.cz). V práci se konkrétně jedná vysílač a přijímač signálů mobilních telefonů.
2.5.8. Unicorn Universe Unicorn Universe (UU) je internetová služba provozující informační systémy založené na platformě Unicorn ES. Je určena pro řízení podniku, zaznamenávání a sdílení informací, řízení podnikových procesů, zadávání úkolů a sledování jejich plnění. (POLÁKOVÁ, 2010 str. 3)
16
Bakalářská práce Selftest systém v ASP.NET Self-test system in ASP.NET
3. HTML5 3.1. Historie HTML HyperText Markup Language (HTML) je značkovací jazyk určený pro tvorbu internetových stránek v systému World Wide Web (WWW). Tento jazyk vznikl před více než dvaceti lety ve švýcarském CERNu. Od té doby prodělal mnoho změn. Rozdělil se na dvě větve (HTML a XHTML) a nyní je aktuálně ve verzi HTML5, která opět spojuje tyto dvě větve do jedné. Pojďme se však podívat na samotný začátek vzniku HTML. Vše začalo v roce 1989 ve švýcarském CERNu. Tim Berners-Lee zde pracoval v oddělení správy výpočetní techniky, když dostal nápad na vytvoření portálu, kde by si mohli vědci z celého světa vyměňovat informace. Nemělo však jít pouze o poskytování informací (vědeckých prací, výsledků výzkumů apod.) ke stažení, ale tyto dokumenty měly být navzájem provázány. Čtenář jedné práce tak mohl snadno, díky provázání dokumentů, přejít na jinou práci poskytující například rozšiřující informace k danému tématu. A právě k tomuto účelu navrhl první verzi HTML. HTML bylo silně založeno na jazyku SGML (Standard Generalized Mark-up Language), což byl obecně uznávaný jazyk pro strukturování textu. V září roku 1991 rozpoutal Tim Berners-Lee po internetu diskusi o jazyce HTML, jeho budoucnosti a vývoji. O tyto nápady projevilo zájem mnoho odborníků a veřejně se tak diskutovalo o vlastnostech, které by HTML mělo mít. V roce 1992 začaly vznikat první webové prohlížeče, zatím pouze v textovém režimu. V tomtéž roce v NCSA (National Center for Supercomputer Applications) započaly práce na grafickém webovém prohlížeči Mosaic, jehož první verze byla vydána roku 1993. Objevil se zde i návrh HTML verze 2.0, která sjednocovala dosavadní zlepšení přidaná do HTML 1.0 a navíc přidala práci s formuláři. V roce 1994 byla vydána vylepšená verze prohlížeče Mosaic nazvaná Netscape. Téhož roku na scénu vstoupilo sdružení W3C (World Wide Web Consorcium), jehož cílem byl plynulý a organizovaný rozvoj internetu a HTML. Oficiální verze HTML 3.2 byla vydána roku 1996. Tato verze navíc přidala práci s tabulkami. O rok později vyšla verze 4.0, která rozšířila práci s tabulkami, formuláři a přidala rámy, kaskádové styly a skriptování. Zde se vývoj jazyka prakticky zastavil. V roce 1999 byla vydána verze 4.01, která pouze opravovala drobné chyby v předchozí specifikaci, ale nové elementy přidány nebyly. ( RAGGETT, a další, 1998) 17
Bakalářská práce Selftest systém v ASP.NET Self-test system in ASP.NET S příchodem XML vznikla v roce 2000 další specifikace HTML, a to konkrétně XHTML ve verzi 1.0. Ta měla syntaxi odvozenou od XML, nikoliv od SGML jako původní HTML, avšak jinak se tato specifikace výrazně nelišila od HTML 4.0. W3C poté začalo pracovat na nové verzi XHTML 2.0, které měla přinést nové funkčnosti. Avšak za cenu nekompatibility s předchozími verzemi XHTML a HTML. To byl pro výrobce prohlížečů příliš radikální krok, a tak založili v roce 2004 organizaci WHATWG (The Web Hypertext Application Technology Working Group), která začala vyvíjet vlastní specifikaci (Web Applications 1.0 - dnešní HTML5). Rozštěpení vývoje HTML však nebylo žádoucí, a tak po dlouhých diskusích W3C ukončilo vývoj XHTML 2.0 a společně s WHATWG začalo v roce 2007 pracovat na HTML5. (GOLDSTEIN, a další, 2011 stránky 25,26)
3.2. Seznámení s HTML5 HTML5 je aktuálně nejnovější verzí tohoto jazyka. Tato specifikace je stále ve vývoji. První verze 5.0 by měla být dokončena roku 2014 a verze 5.1 o dva roky později. HTML5 v sobě spojuje všechny platné prvky z HTML4 a XHTML 1.0 a navíc přidává mnoho nových elementů, funkcí a API založených na skriptech. Mimo to upravuje sémantiku, aby byl web lépe čitelný lidem i strojům. HTML5 se snaží reagovat na změny v potřebách programátorů a uživatelů a umožnit tvorbu webu bez nutnosti používat další pluginy jako Flash či SilverLight. Zde je také třeba uvést, že termín „HTML5“ je často používán i pro jiné nové technologie a funkce, které však nejsou součástí HTML5 specifikace. Některé tyto funkce dříve byly jeho součástí, ale později se oddělily do samostatné větve. Existují i technologie, které nikdy nebyly součástí HTML5, přesto jsou často zahrnovány pod tento termín. Jedná se například o offline úložiště či API pro geolokaci. Pro potřeby této práce budeme i na tyto technologie odkazovat jako na HTML5. (GOLDSTEIN, a další, 2011 stránky 23,24) (W3.org, 2012) Konsorcium W3C při návrhu HTML5 postupovalo dle principů, které mají zajistit, že bude fungovat téměř na jakékoliv platformě a že bude kompatibilní se staršími prohlížeči (W3.org, 2007). To se mu zatím dle mého názoru daří, jelikož i většina přidaných funkcí funguje ve starších prohlížečích nebo alespoň nepůsobí chyby a místo nich se vykreslí prvky, které starší prohlížeče znají. Nová verze jazyka přináší nové prvky pro práci s audiem a videem, zjednodušuje sémantiku webu, zavádí nové elementy pro strukturování stránky (například section, hea18
Bakalářská práce Selftest systém v ASP.NET Self-test system in ASP.NET der, footer, aside), prvky a API pro práci s grafikou, offline úložiště, rozšiřuje práci s formuláři a více se zaměřuje na strojové zpracování webové stránky (W3.org, 2012). V následujících podkapitolách si stručně tyto změny představíme.
3.3. Syntaxe HTML5 Jednou ze změn v HTML5 je zjednodušení zápisu vybraných elementů. Spolu s přidáním nových elementů pro strukturování stránky (viz následující kapitola Struktura HTML5) je tak kód stránky více přehledný. Cílem bylo co nejvíce zjednodušit zápis kódu při zachování kompatibility se staršími prohlížeči. Co není nutné pro správné vykreslení stránky, není v HTML5 vyžadováno. Na obrázku 1 je uvedena nejjednodušší syntaxe HTML5 dle W3C. Kód 1 - HTML5 syntaxe
Zdroj: Vlastní zpracování
Jak je z obrázku patrné, došlo především k výraznému zjednodušení deklarace typu dokument (doctype). Pro srovnání v HTML 4.01 Transitional vypadala následovně:
Transition-
Dále došlo ke zjednodušení definice znakové sady v prvku head, která byla zkrácena na nezbytné minimum. Prvek script je nyní oproštěn od nutnosti uvádět atribut type, jelikož je JavaScript nejrozšířenějším a prakticky jediným běžně používaným skriptovacím jazykem pro webové stránky. (GOLDSTEIN, a další, 2011 str. 37) Zjednodušené, respektive benevolentnější, jsou nyní i zápisy prvků a atributů. Jejich názvy mohou obsahovat malá i velká písmena a hodnoty atributů lze uvádět i bez uvozovek (ale pouze pokud neobsahují mezeru). Nepárové prvky nyní není nutné ukončovat lomítkem, dokonce i některé párové prvky toto nevyžadují (například
), avšak tuto „výhodu“ bych nedoporučoval, jelikož to může vést k nepřehlednosti kódu.
19
Bakalářská práce Selftest systém v ASP.NET Self-test system in ASP.NET
3.4. Struktura HTML5 Nová verze HTML vylepšuje strukturování stránky přidáním několika nových elementů. Umožňují zpřehlednit zdrojový kód, který se tak stává pro člověka čitelnějším. Navíc vzhledem k danému významu těchto elementů je kód lépe strojově zpracovatelný (mobilní prohlížeče, vyhledávací roboti). Dříve bylo potřeba pro členění stránky použít elementy
a přiřadit jim potřebné identifikátory. Z těchto
elementů však nedokázali roboti indexující stránky správně pochopit strukturu dokumentu. Díky těmto novým prvkům dokážou vyhledávače nabídnout relevantnější výsledky, jelikož správně pochopí, která část dokumentu obsahuje hlavní sdělení. Na obrázku 1 je ukázána základní struktura webu za použití nových HTML5 elementů. Obrázek 1 - Struktura webu v HTML5
Zdroj: http://interval.cz/podklady/1999-2008/hunt/1434/structure-html5.png
3.4.1. Prvek header Prvek header slouží k označení obsahu vyjadřujícího úvod či hlavičku stránky nebo sekce. Dle specifikace WHATWG (2013 str. 21) se používá pro „skupinu úvodních či navigačních
pomůcek“.
Jedná
se
tedy
o
element,
který
odpovídá
dřívějšímu