Bankovní institut vysoká škola Praha Katedra Informatiky a kvantitativních metod
Tvorba GUI pro laboratoř BIVŠ Diplomová práce
Autor:
Bc. Jaroslav Dušek Informační technologie a management
Vedoucí práce:
Praha
Ing. Jan Háněl
Červen, 2014
Prohlášení Prohlašuji, ţe jsem diplomovou práci zpracoval samostatně a v seznamu uvedl veškerou pouţitou literaturu. Svým podpisem stvrzuji, ţe odevzdaná elektronická podoba práce je identická s její tištěnou verzí, a jsem seznámen se skutečností, ţe se práce bude archivovat v knihovně BIVŠ a dále bude zpřístupněna třetím osobám prostřednictvím interní databáze elektronických vysokoškolských prací.
V Praze, dne 25.6.2014
Bc. Jaroslav Dušek
2
Poděkování Děkuji Ing. Janu Hánělovi za odborné vedení mé práce a za cenné rady, které mě poskytl.
3
Anotace Diplomová práce popisuje vytvoření webové aplikace pro IT laboratoř BIVŠ s vyuţitím podpory technologie ASP.NET 4. Klíčová slova: ASP.NET 4, ADO.NET Entity Framework 4, LINQ, SQL Server 2008, C#
Annotation This thesis describes how to create web applications for IT lab BIVŠ with support ASP.NET 4. Key words: ASP.NET 4, ADO.NET Entity Framework 4, LINQ, SQL Server 2008, C#
4
ÚVOD PRÁCE ............................................................................................................................................... 7 1
ANALÝZA POŢADAVKŮ LABORATOŘE BIVŠ ............................................................................ 8
2
POUŢITÉ TECHNOLOGIE ............................................................................................................ 10 2.1 2.2 2.3 2.4
3
ASP.NET 4 .......................................................................................................................................... 10 JAZYK C# ............................................................................................................................................. 11 ADO.NET ENTITY FRAMEWORK 4 ...................................................................................................... 12 SQL SERVER 2008 ............................................................................................................................ 13
NÁVRH ............................................................................................................................................ 15 3.1 GRAFICKÉ ROZHRANÍ ........................................................................................................................... 17 3.2 NAVIGAČNÍ SYSTÉM ............................................................................................................................. 18 3.3 DATOVÉ ÚLOŢIŠTĚ ............................................................................................................................... 20 3.4 ČLENSTVÍ............................................................................................................................................. 21 3.4.1 Datové úloţiště pro členství ............................................................................................................ 23 3.4.2 Uchovávání hesel ............................................................................................................................ 24 3.5 UŢIVATELSKÉ PROFILY ........................................................................................................................ 27 3.5.1 Datové úloţiště pro profily ............................................................................................................. 29 3.6 AUTORIZACE A ROLE ........................................................................................................................... 30 3.6.1 Datové úloţiště pro správu rolí....................................................................................................... 31 3.7 REZERVAČNÍ SYSTÉM........................................................................................................................... 32
4
IMPLEMENTACE........................................................................................................................... 35 4.1 GRAFICKÉ ROZHRANÍ ........................................................................................................................... 35 4.2 NAVIGAČNÍ SYSTÉM ............................................................................................................................. 37 4.3 ČLENSTVÍ............................................................................................................................................. 40 4.4 UŢIVATELSKÉ PROFILY ........................................................................................................................ 44 4.5 AUTORIZACE A ROLE ........................................................................................................................... 47 4.6 NASAZENÍ ............................................................................................................................................ 51 4.6.1 Hosting............................................................................................................................................ 51 4.6.2 Nasazení webu ................................................................................................................................ 53 4.6.3 Nasazení databáze .......................................................................................................................... 54 4.7 DATOVÉ ÚLOŢIŠTĚ ............................................................................................................................... 58 4.8 REZERVAČNÍ SYSTÉM........................................................................................................................... 66 4.8.1 Vloţení rezervace ............................................................................................................................ 66 4.8.2 Editování rezervace ........................................................................................................................ 68 4.8.3 Smazání rezervace .......................................................................................................................... 69 4.8.4 Zobrazení vlastních rezervací ......................................................................................................... 70 4.8.5 Uţivatelsky přívětivý design............................................................................................................ 70
5
VYHODNOCENÍ ............................................................................................................................. 72 5.1 ROLE „ADMIN“ .................................................................................................................................... 72 5.1.1 Spravovat uţivatele ......................................................................................................................... 73 5.1.2 Přidat uţivatele ............................................................................................................................... 76 5.1.3 Spravovat role................................................................................................................................. 78 5.1.4 Přidat roli ....................................................................................................................................... 78 5.1.5 Nastavit počet počítačů v učebně .................................................................................................... 79 5.2 ROLE „VYUČUJÍCÍ“ .............................................................................................................................. 80 5.2.1 Zobrazit všechny události ............................................................................................................... 81
5
5.2.2 Spravovat moje události.................................................................................................................. 82 5.2.3 Zjistit volný termín + zadat událost ................................................................................................ 85 5.3 ROLE „STUDENT“ A „EXTERNISTA“ ..................................................................................................... 89 5.3.1 Editovat profil ................................................................................................................................. 90 5.3.2 Zobrazit moje události .................................................................................................................... 91 5.3.3 Šablona ........................................................................................................................................... 92 ZÁVĚR ..................................................................................................................................................... 93
6
Úvod práce Cílem diplomové práce je vytvořit funkční webovou aplikaci (dále jen aplikace) pro BIVŠ laboratoř. Pedagogům na BIVŠ aplikace umoţní zarezervovat si v daný čas počet počítačů potřebných k výuce studentů, které v rezervaci taktéţ označí. Poté po přístupu do systému, označení studenti uvidí, kdy se mají dostavit na výuku, případně zjistí další informace poskytnuté vyučujícím. Nad vším bude dohlíţet administrátor, který bude disponovat rozšiřujícími oprávněními. V prvé kapitole nastíním, čím se BIVŠ laboratoř zabývá. Podrobněji také popíši poţadavky laboratoře na vyvíjenou aplikaci. Druhá kapitola bude čistě teoretická, protoţe bude popisovat pouţitou technologii při vývoji aplikace. Ve třetí kapitole se budu zabývat plánováním a návrhem aplikace. V jednotlivých podkapitolách se nejdříve budu věnovat teoretickým poznatkům a následně, vycházejíc z těchto poznatků, navrhnu vlastní řešení. Ve čtvrté kapitole zrealizuji to, co jsem navrhl v kapitole předcházející. Protoţe nelze popsat veškerou problematiku realizace vyvíjené aplikace, zaměřím se jen na ty aspekty, které povaţuji za důleţité. V páté kapitole popíši veškerou funkcionalitu aplikace. Přesto tato kapitola nemůţe nahradit poznatky z vyzkoušení aplikace na počítači. Na závěr zhodnotím to, zda se mi podařilo danou aplikaci vyvinout tak, jak jsem si předsevzal.
7
1 Analýza poţadavků laboratoře BIVŠ V roce 2013 se otevřela studentům a pedagogům BIVŠ specializované IT pracoviště umoţňující simulaci nestandardních stavů systémů pouţívaných v bankovních a finančních institucí. Budování laboratoře stále pokračuje, projekt je dlouhodobý a počítá s postupným uplatněním dalších moderních hardwarových i softwarových technologií. Srdcem laboratoře jsou servery typu IBM Power 5 a SUN vybavené různými operačními systémy. Součástí vybavení jsou rovněţ disková pole, zálohovací zařízení a záloţní zdroje. Projekt počítá se softwarovým vybavením pro analýzu, algoritmizaci a programování, práci s databázemi, modelování a optimalizaci procesů, aplikační software, projektové řízení apod. Laboratoř je vybudována nejen pro rozšíření výuky informačních technologií a kvantitativních metod na příslušné katedře BIVŠ, ale také pro přípravu a realizaci výukových programů a dále pro vědecko-výzkumnou činnost. Slouţí také pro administraci a údrţbu v ní umístěných výukových počítačových systémů. Je tvořena serverovnou a dvěma učebnami propojenými lokální sítí. Jedna učebna je určena primárně pro výukové a školící účely, druhá, experimentální, slouţí pedagogům, vědeckým pracovníkům a nadaným studentům informačních technologií k vědecké a výzkumné činnosti. (1) Mým úkolem je vytvořit funkční webovou aplikaci, která umoţní pedagogům zarezervovat čas a počet volných počítačů v učebně slouţící k výuce. Ke kaţdé rezervaci mají také moţnost přiřadit vybrané studenty, kteří se dané výuky budou účastnit. Pedagogové budou mít přehled o všech zarezervovaných termínech jak svých, tak i ostatních vyučujících. Vlastní rezervace mohou v budoucnu editovat či mazat. Do aplikace budou mít také přístup studenti a externisté. Jejich práva budou omezená. Nejdůleţitější pro ně bude to, aby věděli, kdy a na jakou výuku se mají dostavit do učebny. Formou poznámky jim vyučující můţe sdělit další podrobnosti.
8
Nad vším bude bdít administrátor, případně skupina administrátorů. Administrátor vytváří, edituje, maţe uţivatele všech oprávnění a vytváří, edituje, maţe rezervované termíny. Vytváří také studentské, nebo i jiné skupiny uţivatelů. V administrátorské sekci nastavuje počet všech počítačů v učebně, které je moţné zarezervovat. Aplikace bude obsahovat algoritmus, který pozná podle počtu dostupných počítačů v učebně, zda je v daný čas moţné rezervaci provést či nikoliv.
9
2 Pouţité technologie 2.1 ASP.NET 4 Kdyţ byla před téměř deseti lety vydána první verze .NET Frameworku, byl to začátek radikálně nového směru v navrhování softwaru. Společnost Microsoft, inspirována tím nejlepším, co nabízely Java, COM a web, a vědoma si chyb a omezení předchozích vývojových technologií, se rozhodla začít se zcela novým a modernějším systémem. Výsledkem byla sada překvapivě vyspělých technologií, s nimiţ mohou vývojáři dělat všechno moţné – budovat aplikace Windows, spouštět databázové dotazy nebo vyuţívat nástroje pro budování webů známý pod názvem ASP.NET Ačkoliv ASP.NET je dnes populárnější neţ kdykoliv předtím, není uţ tak revoluční. A přestoţe je základní funkcionalita tvořící jádro ASP.NET – překvapivě – v podstatě stejná jako před deseti lety, Microsoft přidal vrstvy nových funkcí a vyšších úrovní kódových abstrakcí. ASP.NET stojí na sedmi pilířích. (2): 1. ASP.NET je integrováno s .NET Frameworkem. 2. ASP.NET se neinterpretuje, ale kompiluje. 3. ASP.NET je vícejazyčné. 4. ASP.NET běţí uvnitř společného runtime jazyků. 5. ASP.NET je objektově orientované. 6. ASP.NET podporuje všechny prohlíţeče. 7. ASP.NET se snadno nasazuje a konfiguruje. Od svého vzniku, aţ do dnešních dnů, prodělalo ASP.NET několik aktualizací. (3)
10
ASP.NET 1.0 a 1.1 ASP.NET 2.0 V listopadu 2005 bylo vydáno nové ASP.NET 2.0 a Visual Studio 2005. K příjemnému překvapení mnoha vývojářů po celém světě, se Microsoftu podařilo výrazně vylepšit svůj produkt. Byly přidány nové funkce a nástroje, které sníţily sloţitost ASP.NET 2.0 oproti předcházející verzi. ASP.NET 3.5 a 4 V listopadu 2007 Microsoft vydal novou verzi Visual Studia 2008 a ASP.NET 3.5. V březnu 2010 následovalo vydání Visual Studia 2010 a ASP.NET 4. Obě verze přidaly mnoho nových funkcionalit. Mohu zmínit například LINQ, ASP.NET AJAX Framework, ADO.NET Entity Framework, jQuery a mnohé další technologie. ASP.NET 4.5 Současná verze je postavena na technicky vydařené předchozí verzi ASP.NET 4. Přesto oproti předchozí verzi opouští některé funkce, které byly vývojáři oblíbené. Na druhou stranu je nahrazuje funkcemi novými v jiných oblastech.
2.2 Jazyk C# Kdybychom označili jazyk C# a související prostředí .NET Frameworku za nejdůleţitější novou technologii pro vývojáře za posledních mnoho let, rozhodně bychom nepřeháněli. Návrh technologie .NET poskytuje nové prostředí, ve kterém lze vyvíjet téměř libovolné aplikace určené pro systém Windows, a C# je nový programovací jazyk, který byl navrţen zejména pro spolupráci s technologií .NET. Pomocí jazyka C# můţeme například napsat dynamickou webovou stránku, webovou sluţbu XML, komponentu distribuované aplikace, komponentu pro přístup k databázi, klasickou aplikaci pro pracovní plochu systému Windows, nebo dokonce novou inteligentní klientskou s podporou reţimů online i offline. (4)
11
Společnost Microsoft oficiálně popisuje jazyk C# jako „jednoduchý, moderní, objektově orientovaný a typově bezpečný programovací jazyk, který je odvozen od jazyků C a C++“. Většina nezávislých pozorovatelů by tento popis pravděpodobně opravila na „odvozený od jazyků C, C++ a Java“. Tyto definice jsou technicky přesné, ale příliš nezachycují krásu či eleganci jazyka. Syntakticky se jazyk C# velmi podobá jazykům C++ a Java do takové míry, ţe mnohá klíčová slova jsou shodná. C# také sdílí stejnou strukturu bloků se závorkami ({}) pro označení bloků kódu a odděluje příkazy pomocí středníků. Výpis kódu C# na první pohled velmi připomíná kód v jazycích C++ nebo Java. Navzdory této prvotní podobnosti se však jazyk C# lze naučit mnohem snáze neţ C++ a jeho obtíţnost je srovnatelná s jazykem Java. Jeho struktura lépe vyhovuje moderním vývojovým prostředím neţ oba starší jazyky a byl navrţen tak, aby programátorům současně poskytl jednoduchost pouţívání jazyka Visual Basic a v případě potřeby vysoký výkon a nízkoúrovňový přístup k paměti jako jazyk C++. (5)
2.3 ADO.NET Entity Framework 4 ADO.NET Entity Framework je objektově relační mapovací prostředí, které vychází z platformy .NET 3.5. (6) S jeho pomocí můţeme provádět dotazy nad databází a manipulovat s daty v databázi. Rozhraní Entity Framework můţeme pouţít pro generování logického modelu databáze, kterému se říká entitní datový model, nad nímţ pak můţeme psát svůj kód. Pomocí rozhraní Entity Framework můţeme vytvářet třídy, které mapují prvky logického modelu (neboli entity) na fyzické tabulky v databázi. Tato mapovací vrstva pomáhá izolovat aplikaci od jakýchkoliv změn, k nimţ můţe později dojít ve struktuře databáze, a dále můţe poskytovat určitý stupeň nezávislosti na technologii pouţité pro implementaci databáze. Můţeme tak například sestavit aplikaci, která pouţívá rozhraní Entity Framework a přistupuje k datům v databázi Oracle, a později databázi přenést na SQL Server. Logika naší aplikace by neměla vyţadovat ţádnou změnu. Jediné, co budeme muset udělat, je aktualizovat způsob, jakým jsou logické entity implementované v mapovací vrstvě. (7) Entity Framework je technologií, jenţ klade velký důraz na vytváření Entity Data Modelu (EDM) (8), jak ukazuje následující obrázek. 12
Obrázek 1 – Vytvoření EDM (zdroj: (9))
Jak je patrné z obrázku, ADO.NET Entity Framework je určen do sloţitějších situací, kde vţdy neplatí mapovací poměr 1:1 mezi entitami a fyzickým databázovým schématem. (10) Rozhraní Entity Framework dokáţe pracovat s variantou jazyka LINQ nazvanou LINQ pro Entity (LINQ to Entities). (11)
2.4 SQL SERVER 2008 Přestoţe ve vyvíjené aplikaci pouţiji SQL SERVER 2008 Express Edition, popíši v této kapitole plnou verzi SQL Serveru, protoţe přechod z Express Edition na plnou verzi není nijak sloţitý. Microsoft SQL Server je vlajkovou databází společnosti Microsoft jiţ více neţ 15 let. Za tuto dobu databázový systém SQL Server vyspěl a místo zpracování malých úkolů na úrovni podnikových oddělení nyní obsluhuje největší databáze světa. Verze SQL Server 2000 znamenala zásadní vývojový posun. Nejedná se jiţ pouze o jednoduchou „databázi“, ale Microsoft SQL Server nyní představuje kompletní řešení architektury 13
dat, které dokáţe splnit poţadavky na ukládání dat a manipulaci s nimi v libovolné organizaci. Verze SQL Server 2005 rozšiřuje datovou platformu o důleţité nové funkce týkající se programování, integrace s architekturou .NET, vysoké dostupnosti, instrumentace řízení a analytických nástrojů. Tato vylepšení funkcí byla tak výrazná, ţe přes zachování stejného vzhledu a ovládání databáze Microsoft SQL Server společnost Microsoft v praxi vytvořila zcela novou datovou platformu. Verze SQL Server 2008 na tento rychlý vývoj navazuje. Kromě toho, ţe zdokonaluje stovky stávajících funkcí, zároveň přidává stovky dalších. SQL Server 2008 také nabízí vysoce škálovatelnou a mimořádně přizpůsobitelnou platformu architektury dat, na které lze vybudovat libovolnou myslitelnou aplikaci. (12)
14
3 Návrh Návrhy moderních webových aplikací vychází ze stejných doporučení. Já se těchto doporučení budu drţet, protoţe není rozumné vymýšlet něco, co jiţ bylo vymyšleno, odzkoušeno a prokazatelně funguje. Prvním krokem při vývoji nového webu je návrh jeho vizuální podoby, která sestává z celkového rozvrţení jednotlivých grafických prvků. Vizuální architektura webu významnou měrou ovlivňuje pocit, jaký bude mít uţivatel při jeho prohlíţení. Začneme tedy tak, ţe si stanovíme, jaký by měl na uţivatele působit, načeţ navrhneme mechanismy, s jejichţ pomocí tohoto cíle dosáhneme. Zaměříme se především na menu a navigaci, na obrázky a uspořádání prvků na stránce. Menu musí být intuitivní a mělo by být doplněno navigačními pomůckami, jako je mapa stránek nebo navigační cesta(navigace pomocí „sypaných drobků chleba“ – breadcrumb navigation), které uţivateli připomínají, kde se právě nachází vzhledem k webu jako celku. Navigační cesta se skládá z posloupnosti krátkých odkazů, které tvoří stezku, po níţ se můţe uţivatel vydat, chce-li se po hierarchii stránek vracet vzhůru, zpět ke dříve navštíveným úrovním. (13) Ve Photoshopu jsem si vytvořil šablonu a rád bych, aby konečný vizuální výsledek hotového webu byl stejný. Je ale moţné, ţe během vývoje webových částí narazím na rozličné technické problémy a budu muset šablonu poopravit. Návrh šablony je následovný. Návrh přihlašovací stránky.
15
Obrázek 2 - Přihlašovací rámeček (zdroj: autor)
Návrh webu po přihlášení. V tomto případě sekce pro vloţení události.
Obrázek 3 - Ukázka struktury webu po přihlášení (zdroj: autor)
16
3.1 Grafické rozhraní Plánuji vytvořit takové grafické rozhraní, které bude splňovat následující atributy (14): Dobře vypadající grafická šablona (rozvrţení grafických prvků), která se bude zobrazovat stejně v Internet Exploreru, Firefoxu nebo v Google Chrome. Včetně mechanismu pro dynamickou aplikaci různých barevných schémat a ostatních vizuálních atributů na tuto šablonu. Jednoduchý způsob sdílení vytvořené šablony všemi stránkami webové aplikace, aniţ bychom do kaţdé z nich museli kopírovat a vkládat celý kód. Navigační systém, jenţ umoţní snadnou úpravu odkazů v menu, z něhoţ bude uţivatelům zřejmé, kde se v rámci mapy webu právě nacházejí a kudy se mohou vydat zpět. Vyuţitím stránek ASP.NET, vzorových stránek a tabulek kaskádových stylů můţeme velmi dobře oddělit formuláře a funkčnost, přičemţ vzhled webových stránek je definován odděleně od jejich operací. V moderní webové aplikaci by mělo být moţné, nechat uţivatele zvolit si vlastní grafické zobrazení stránek. K tomu slouţí takzvané Motivy. Prostřednictvím motivů se dostaneme ještě o krok dále a budeme mít moţnost dynamicky měnit vzhled stránek podle několika námi dodaných motivů. Kaţdý motiv se bude skládat z následujících částí: jméno motivu, volitelné tabulky kaskádových stylů CSS, skinů (.skin) umoţňující změny stylu jednotlivých ovládacích prvků.
17
Definice motivů se bude nacházet ve sloţce ASP.NET nazvané App_Themes. Tato sloţka můţe obsahovat neomezené mnoţství podsloţek, jednu pro kaţdý motiv, kde její jméno definuje jméno motivu. (15) Základní šablona se bude jmenovat DefaultTemplate.
Obrázek 4 - Sloţka motivů (zdroj: autor)
3.2 Navigační systém Navigace je fundamentální komponentou jakéhokoli webu. Přestoţe je dost snadné přenést uţivatele z jedné stránky na jinou, vytvořit unifikovaný navigační systém, který bude dobře fungovat po celém webu, uţ zabere trochu práce. (16) Navigační systém ve formě menu lze zobrazovat na několik způsobů. Můţeme jej napevno zapsat ve formě HTML – kódu (17), coţ v mém případě není vhodné řešení. Já budu menu zobrazovat dynamicky, protoţe ne kaţdému uţivateli se zrovna musí zobrazit stejná nabídka. Administrátorovi se zobrazí tato nabídka.
18
Obrázek 5 - Menu pro administrátora (zdroj: autor)
Přednášejícímu se zobrazí.
Obrázek 6 - Menu pro přednášející (zdroj: autor)
Externistovi, nebo studentovi se zobrazí tato nabídka. Jelikoţ plánuji, ţe administrátor bude mít moţnost vytvářet nové role pro další uţivatele, tak tito ostatní uţivatelé budou zařazeni v tomto posledním módu.
Obrázek 7 - Menu pro studenty a externisty (zdroj: autor)
Kromě menu potřebujeme svým uţivatelům také nabídnout nějaké vizuální vodítko poskytující informace o tom, kde se právě nacházejí a kudy vede cesta zpět na úvodní stránku. Tento problém se obvykle řeší pomocí navigační cesty, coţ je navigační lišta 19
s odkazy na všechny stránky nebo sekce v hierarchii od úvodní aţ po aktuální stránku. (18) Jestliţe administrátor bude chtít přidat nového uţivatel, zobrazí se mu tato navigační cesta, která je zobrazena v šabloně vlevo nahoře.
Obrázek 8 - Ukázka navigační cesty (zdroj: autor)
3.3 Datové úloţiště Nejprve si musím rozhodnout, jaký druh datového úloţiště zvolím. Mohu zvolit: 1. XML soubory. 2. Access databázi. 3. Databázi typu RDBMS ( Relational Database Management System). SQL Server Oracle DB2 MySQL Postgress Pokud bychom očekávali, ţe web bude poměrně statický, tedy bez častých změn, pak se nám přímo nabízejí XML-soubory nebo bychom mohli pouţít formát databáze Access. Ten je oproti XML-souborům v mnoha směrech lepší, na druhou stranu Access 20
je převáţně desktopová aplikace a pro souběţný přístup několika uţivatelů nebo větší mnoţství záznamů by nebyla nejvhodnější. Neobsahuje ţádné prvky škálování, takţe se pro webové aplikace vůbec nehodí. Dále bychom mohli uvaţovat o jakékoliv moderní databázi typu RDBMS (Relational Database Management System), jako jsou například SQL Server, Oracle, DB2, MySQL či Postgress. Pro potřeby tohoto webu vyhovuje jakákoliv databáze typu RDBMS. Většina softwarových vývojářů na platformě .NET volí jako svůj RDBMS SQL Server společnosti Microsoft, a to hned z několika důvodů, mezi něţ můţe patřit excelentní integrace nástrojů pro SQL Server v prostředí aplikace Visual Studio nebo fakt, ţe je jednodušší koupit IDE a RDBMS od stejné společnosti (můţeme být přihlášeni k odběru MSDN softwaru, coţ zahrnuje úplně vše) anebo relativně nízká cena a vysoký výkon SQL Serveru běţícího pod Windows jdoucí ruku v ruce se snadnou správou. Rozhodl jsem se pouţít SQL Server 2008. Přesněji řečeno SQL Server 2008 Express Edition, který je přijatelnou volbou pro malé aţ středně velké webové aplikace. Stačí s ním začít a v případě, ţe by na špičkových serverech bylo zapotřebí většího výkonu, není problém provést upgrade na některou z ostatních edic (Workgroup, Standard či Enterprise), aniţ by bylo nutné jakkoliv měnit kód. Výhodou edice Express je způsob nasazení ve stylu XCopy. Stačí totiţ jen umístit databázový soubor typu .mdf do lokálního podadresáře (pro webové aplikace existuje speciální adresář /App_Data) a dynamicky jej připojit specifikováním jeho cesty pomocí atributu AttachDBFilename v řetězci popisujícím připojení k databázi. Tímto způsobem je moţné zkopírovat celou strukturu webu na vzdálený server, přičemţ vše je ihned připraveno ke spuštění bez jakéhokoliv zdrţování se konfigurací databázového serveru. (19)
3.4 Členství
21
Ačkoli ověřování zaloţené na formulářích řeší základní podstatu implementace vlastních bezpečných přihlašovacích formulářů pro aplikace ASP.NET, úkoly, které musíme zvládnout při implementaci přihlašovacích formulářů a komunikace s podkladovým úloţištěm dokladů, jsou pro všechny webové aplikace téměř vţdy stejné a stejně únavné. Navíc musíme mít stále na zřeteli, ţe ověřování zaloţené na formulářích poskytuje infrastrukturu pouze pro ověření identity uţivatelů. Pokud nějaký vývojář pouţívá vlastní úloţiště dat, musí si sám napsat vlastní administrační aplikaci pro správu uţivatelů, kterou potřebuje pro implementaci nezbytných funkcionalit, jako je přidávání uţivatelů, odstraňování uţivatelů, obnova hesel apod. Implementace takové funkcionality je podobná pro všechny webové aplikace a rychle se stane poměrně nudnou záleţitostí. Aby bylo moţné se s těmito záleţitostmi zdárně vypořádat, ASP.NET 2.0 obsahovalo funkcionalitu zvanou API členství (membership API), která se v podstatě v ASP.NET 4 nezměnila. API členství je Framework, který je nadstavbou existující infrastruktury ověřování zaloţeného na formulářích. Kdyţ pouţíváme API členství, nemusíme implementovat ani přihlašovací stránky, ani úloţiště pro doklady. (20) API členství nám poskytuje jiţ vytvořený mechanismus k vytváření, ověřování a uchovávání uţivatelských údajů. API členství podporuje (21): Vytvoření nového uţivatele a hesla. Uloţení informací o členství (uţivatelská jména, hesla, podpůrné údaje) v Microsoft SQL Serveru, v Active Directory, nebo v alternativním úloţišti dat. Ověřování uţivatelů, kteří navštíví naše webové stránky. Můţeme ověřovat uţivatele programově, nebo můţeme pouţít ASP.NET přihlašovací ovládací prvky k vytvoření kompletního ověřovacího systému, který bude vyţadovat jen minimum kódu.
22
Správu hesel, která zahrnuje vytváření, změny a jejich obnovení. Obsahuje také automatizovaný systém k obnově hesla na základě bezpečnostní otázky a odpovědi. Vystavení jedinečné identifikace pro ověřené uţivatele, které můţeme pouţít ve svých vlastních aplikací a také je integrovat se systémem rolí a profilů. Určení vlastního zprostředkovatele členství, který umoţňuje nahradit vlastní kód pro správu členství a udrţovat data členství ve vlastním úloţišti dat.
3.4.1 Datové úloţiště pro členství Na následujícím obrázku můţeme vidět tři třídy, které budou zásadní při práci s API členství.
23
Obrázek 9 - Databázové tabulky pro Api Členství (zdroj: autor)
Na obrázku je patrná jedna zajímavá věc, totiţ přítomnost tabulky aspnet_Applications, jeţ obsahuje odkaz na více webových aplikací. Obě tabulky, aspnet_Users i aspnet_Membership, se přes cizí klíč ApplicationId odkazují na záznam v tabulce aspnet_Applications. Díky tomuto návrhu lze pouţít tutéţ databázi pro uchovávání uţivatelských účtů pro více webových aplikací, coţ můţe být velmi uţitečné, máme-li několik webů, které pouţívají stejný databázový server (běţný stav u firemních webových stránek nebo u levného komerčního sdíleného hostingu). (22)
3.4.2 Uchovávání hesel Uchovávat hesla lze pomocí tří metod (23):
24
1. Nejpohodlnější metodou uchovávání hesel z hlediska vývojářů a správců je ukládat hesla jako holý text do databázového pole. Tato metoda je pohodlná také pro uţivatele, kterým tak snadno můţeme odeslat e-mail s heslem v případě, ţe je zapomenou. Nicméně jde o nejméně bezpečný způsob, protoţe všechna hesla jsou uloţena jako holý text – pokud by se do takové dostal hacker, měl by snadný přístup ke všem heslům. U takové databáze je tedy třeba nekompromisně dbát na její zamykání a zabezpečení souborů s jejími zálohami. 2. Pro zvýšení zabezpečení uchovávaných hesel je před uloţením do databáze můţeme zašifrovat. Existuje řada způsobů pro šifrování hesel, ale nejběţnějším typem je symetrická šifra, která pro zašifrování hesel všech uţivatelů pouţívá chráněné systémové heslo. Jedná se o dvoucestnou šifru: heslo zašifrujeme, přičemţ později je můţeme zase dešifrovat. Tato metoda nabízí vývojářům střední stupeň obtíţnosti pouţití, z hlediska uţivatelů však stále poskytuje dostatek pohodlí, poněvadţ zapomenutá hesla jim stále můţeme zasílat emailem. 3. Nejvyšší stupeň bezpečí vyţaduje určitou formu šifrování, jenţ správcům a vývojářům brání v získání přístupu k heslu kteréhokoliv z uţivatelů. Pouţívá jednocestné šifrování, kterému se také říká hašování. Pomocí osvědčeného algoritmu můţeme vţdy heslo zašifrovat, jeho dešifrování je pak při pouţití dostupné výpočetní kapacity prakticky neproveditelné. Tímto způsobem tedy můţeme ukládat hašovanou verzi hesla, přičemţ později, kdyţ budeme chtít ověřit heslo uţivatele při jeho dalším přihlášení, můţeme tentýţ hašovací algoritmus aplikovat na text, který zadá jako heslo. Poté jiţ stačí jen porovnat výsledek s hašem uloţeným v databázi a pokud se shodují, pak víme, ţe uţivatel zadal správné heslo. Tento způsob není pro vývojáře, správce ani uţivatele příliš pohodlný, protoţe není moţné uţivatelům posílat jejich zapomenutá hesla emailem. Jednou moţností pro případ, kdy uţivatel zapomene heslo, tak zůstává změna hesla na nějakou známou hodnotu a uloţení jeho haše. Rozhodl jsem se, ţe pro začátek pouţiji systém ukládání hesel, který je popsán v bodě jedna. Nebudu tedy pouţívat symetrické šifrování ani hašování. Důvod mého rozhodnutí je ten, ţe při vývoji aplikace budu potřebovat ověřovat si 25
přihlašování daných uţivatelů. Kdyţ se podívám do databáze, rovnou uvidím heslo a to můj vývoj webu urychlí. Kdybych například pouţil symetrickou šifru, dalo by mi nějakou práci neţ bych daného uţivatele dekódoval. Na následujícím obrázku je vidět rozdíl mezi symetrickým šifrováním a uloţením hesla bez šifrování. Uloţená hesla v databázi budou vypadat takto:
Obrázek 10 - Hesla v databázi (zdroj: autor)
Na prvních čtyřech řádcích je pouţita symetrická šifra, na ostatních ţádné šifrování pouţito nebylo. V případě ţe by webová aplikace byla nasazena do ostrého provozu, bylo by dobré na uchování hesel v databázi pouţít symetrickou šifru, nebo hašování. Abych ještě více usnadnil testování aplikace, budu zobrazovat heslo daného uţivatele přímo ve webové stránce. Heslo bude viditelné jen pro uţivatele, kteří mají roli administrátora.
26
Obrázek 11 - Zobrazené heslo (zdroj: autor)
Heslo bude vidět vlevo nahoře. V tomto případě jde o uţivatelské jméno „Externista“, který má heslo „externista..“. Pouţitý
kód
bude
velmi
jednoduchý
–
napsaný
pomocí
metody
Response.Write(“ “), aby jej bylo moţné snadno zakomentovat.
3.5 Uţivatelské profily Cílem funkce profilů ASP.NET je poskytovat transparentní způsob pro správu informací specifických pro uţivatele, aniţ bychom byli nuceni psát vlastní kód pro přístup k datům pomocí datových tříd ADO.NET. (24) V dobách ASP.NET 1.x byla situace taková, ţe pokud jsme chtěli s registrovaným uţivatelem spojit profil, museli jsme obvykle do databáze přidat vlastní tabulku nebo jej uloţit od téţe tabulky společně s ostatními daty uţivatele. K tomu jsme museli 27
napsat docela velké mnoţství kódu aplikační a datové vrstvy pro uloţení, získání a aktualizaci dat z webových stránek. Od verze 2.0 ASP.NET nabízí vestavěný mechanismus pro řízení uţivatelských, a to jednoduchým, přesto však kompletním a flexibilním způsobem. Díky tomu můţeme ušetřit hodiny, nebo dokonce celé dny práce! O vše se stará modul Profile – stačí jen nakonfigurovat, co bude profil obsahovat (tj. definovat jméno, typ a výchozí hodnoty poţadovaných vlastností), coţ se provede v kořenovém souboru web.config v sekci <profile>. (25) Plánuji, ţe v rámci profilů budu zobrazovat tyto atributy: Jméno Příjmení UČO Mobilní telefon Vybrané téma Grafický návrh pro editaci profilu je zobrazen na následujícím obrázku.
Obrázek 12 - Editace profilu (zdroj: autor)
Vybraný motiv se bude editovat zvlášť. Je to zobrazené na dalším obrázku.
28
Obrázek 13 - Editace Šablony (zdroj: autor)
3.5.1 Datové úloţiště pro profily Na následujícím obrázku jsou zobrazeny třídy, které je nutné implementovat, aby profily tak jak jsem je popsal, byly funkční komponentou.
29
Obrázek 14 - Databázové tabulky pro profily (zdroj: autor)
3.6 Autorizace a role Autorizace je proces, při kterém se zjišťuje, zda má ověřený uţivatel dostatečné oprávnění, aby směl vykonat danou akci. Tou můţe být ţádost o načtení webové stránky, přístup k nějakému zdroji, který je pod kontrolou operačního systému (jako jsou soubor nebo databáze) nebo vykonání nějaké úlohy specifické pro danou aplikaci (jakou je třeba umístění objednávky do systému pro správu objednávek, nebo přiřazení projektu v aplikaci pro správu projektů, jakou je například Microsoft Project Server). Některé z těchto činností vykonává zcela automaticky systém Windows, další lze deklarativně naprogramovat v souboru web.config. Jiné operace je nutné provádět přímo v kódu (pomocí objektu IPrincipal). (26)
30
Autentizační/autorizační systém by nebyl kompletní bez podpory rolí. Pomocí rolí lze totiţ seskupovat uţivatele dohromady za účelem přidělení sady oprávnění neboli autorizací. Mohli bychom sice kaţdému z uţivatelů přidělovat autorizace zvlášť, to by však byl pro správce doslova horor. Místo toho je lepší přiřadit uţivateli předem stanovenou roli a dát mu tak oprávnění, která jsou spojena s danou rolí. Můţeme tak například definovat roli Správce pro řízení přístupu na nepřístupné stránky, které slouţí pro přidávání, upravování a mazání obsahu našeho webu, přičemţ pouze uţivatelé, jimţ náleţí role Správců, budou schopni přispívat novými články a zprávami. Dále je moţné danému uţivateli přiřadit více neţ jednu roli. (27) V aplikaci vytvořím čtyři základní role: Admin Vyučující Externista Student
3.6.1 Datové úloţiště pro správu rolí Na následujícím obrázku je zobrazeno relační schéma tabulek modulu pro podporu rolí.
31
Obrázek 15 - Databázové tabulky pro podporu rolí část.1 (zdroj: autor)
Obrázek 16 - Databázové tabulky pro podporu rolí část.2 (zdroj: autor)
3.7 Rezervační systém 32
Rezervační systém bude základním kamenem celé webové aplikace. Od rezervačního systému očekávám: 1. Vloţení rezervace. Vloţit rezervaci mohou uţivatelé s rolí „Admin“, nebo „Vyučující“. Zadává se: o Počet počítačů. o
Počáteční a konečné datum + čas.
o Název události. o Okruh účastníků. o Účastníci události. o Komentář. 2. Editování rezervace. Edituje uţivatel, který rezervaci zadal. Editovat je moţné jakýkoliv atribut rezervace. 3. Mazání rezervace. Rezervaci maţe jen ten uţivatel, který jí vytvořil. 4. Zobrazení všech rezervací. Mají moţnost vidět uţivatelé s rolí „Admin“ a „Vyučující“.
33
Zobrazují se i proběhlé rezervace (konečné datum rezervace < aktuální datum). 5. Zobrazení vlastních rezervací pro přihlášeného uţivatele. Uţivatel, který událost vytvořil, má moţnost zobrazit jen své vlastní zadané rezervace. Zobrazují se i proběhlé rezervace (konečné datum rezervace < aktuální datum). 6. Validaci zadaných údajů. Data zadávána při rezervaci jsou validována na jejich relevanci. 7. Validaci volného termínu Při zadání rezervace se porovnává počet rezervovaných počítačů a volných počítačů. 8. Vyhledávání určité rezervace. Uţivatelé mají moţnost vyhledat jednotlivou rezervaci, nebo libovolný počet rezervací podle počátečního, konečného data a času. Zobrazují se i proběhlé rezervace (konečné datum rezervace je menší neţ aktuální datum). 9. Uţivatelsky přívětivý design Aktuální rezervace je podbarvena ţlutě. Budoucí rezervace je podbarvena zeleně. Jiţ proběhlá událost je podbarvena červeně.
34
4 Implementace 4.1 Grafické rozhraní Webová aplikace je zaloţena na tzv. „vzorové stránce“ (Master Page) a motivech. Vzorovou stránku jsem nazval Template.Master.
Obrázek 17 - Ukázkový soubor Template Master (zdroj: autor)
Obrázek 18 - Zdrojový kód Template.Master část.1 (zdroj: autor)
35
Obrázek 19 - Zdrojový kód Template.Master část.2 (zdroj: autor)
Motivy jsem vytvořil dva s názvem DefaultTemplate a SecondTemplate. Jsou uloţeny ve sloţce App_Themes.
Obrázek 20 - Motivy (zdroj: autor)
Motivy lze měnit. Uţivatel klikne na jedno ze dvou tlačítek.
36
Obrázek 21 - Tlačítka motivů (zdroj: autor)
A následující metoda pomocí stavu relace vybere daný motiv. Stav relace SessionTheme si pamatuje aktuální motiv mezi jednotlivými stránkami.
Obrázek 22 - Zdrojový kód pro motivy (zdroj: autor)
4.2 Navigační systém V Template.Master můţeme nalézt dva navigační ovládací prvky webového serveru. Jsou to SiteMapPath,
37
Obrázek 23 - SiteMapPath (zdroj: autor)
a TreeView.
Obrázek 24 - TreeView (zdroj: autor)
ASP.NET nám nabízí ještě třetí navigační ovládací prvek Menu, ale ten jsem nepouţil.
Aby ovládací prvek SiteMapPath správně zobrazoval to co má, je potřeba ještě implementovat další ovládací prvek SiteMapDataSource.
Obrázek 25 - SiteMapDataSource (zdroj: autor)
Pomocí tohoto ovládacího prvku se na stránku přidává sada navigačních odkazů, které jsou definovány v souboru Web.sitemap.
38
Obrázek 26 - Web.sitemap (zdroj: autor)
Ovládací prvek TreeView jsem řešil jinak. Při prvém načtení stránky se dynamicky vytvoří stromová nabídka dle role přihlášeného uţivatele.
Obrázek 27 - Načtení stránky (zdroj: autor)
Zde je ukázková metoda k vytvoření dynamické ChildNodes struktury TreeView.
39
Obrázek 28 - Ukázková metoda (zdroj: autor)
Celý kód je moţné nalézt v Template.Master.cs.
4.3 Členství Jako první jsem si vytvořil zprostředkovatele systému pro evidenci členů. Jedná se o SqlMembershipProvider a je specifikován v sekci <membership> v souboru Web.config.
Obrázek 29 - Zprostředkovatel členství (zdroj: autor)
Jednotlivé atributy nastavují zprostředkovatele takto:
40
Jméno řetězce pro připojení k databázi. Název webové aplikace. Oznamuje zapnutí metody a řídících prvků, jeţ umoţňují získat uţivateli zapomenuté heslo. Oznamuje zapnutí metody a řídících prvků pro resetování hesla a automatické generování nového. Oznamuje, ţe uţivatel nemusí odpovídat na tajnou otázku při resetování svého hesla. Není poţadován jedinečný e-mail pro jednotlivé uţivatele. Heslo není šifrované. Minimální poţadovaná délka hesla je 5 znaků. Minimální poţadovaná délka alfanumerických znaků je 0. Nastavení jednotlivých poskytovatelů členství je moţné vidět v API Členství (API Membership).
Obrázek 30 - Api Členství (zdroj: autor)
Pomocí této technologie lze bezpečně vytvářet, editovat a mazat uţivatele.
41
Obrázek 31 - Uživatelé v Api Členství (zdroj: autor)
ASP.NET obsahuje pro členství typické řídící prvky: Login ChangePassword LoginStatus LoginName LoginView Vyuţil jsem všechny aţ na prvek ChangePassword. V Template.Master nalezneme tyto řídící prvky.
42
Obrázek 32 - Řídící prvky v Template.Master (zdroj: autor)
A v přihlašovací stránce Login.aspx,
Obrázek 33 - Ukázka souboru Login.aspx (zdroj: autor)
nalezneme tento důleţitý řídící prvek, pomocí kterého se uţivatelé přihlašují do systému.
Obrázek 34 - Řídící prvek pro přihlášení (zdroj: autor)
Uţivatel s rolí „Admin“ má oprávnění dalšího uţivatele: Vytvářet Editovat Mazat
43
Tento fragment kódu, který lze nalézt v AddUser.aspx.cs má za cíl vytvořit nového uţivatele.
Obrázek 35 - Tvorba nového uţivatele (zdroj: autor)
Tento kód uţivatele maţe a lze ho nalézt v ManageUsers.aspx.cs.
Obrázek 36 - Smazání uţivatele (zdroj: autor)
4.4 Uţivatelské profily 44
Jelikoţ uţivatelské profily má na starosti modul Profile, je nutné správně nakonfigurovat, co daný modul bude obsahovat. Nakonfigurování provedeme opět v kořenovém souboru Web.config. Tentokrát v sekci <profile> .
Obrázek 37 - MyProfileProvider (zdroj: autor)
Z obrázku lze poznat, ţe jednotlivé profily budou obsahovat jméno, příjmení, učo, telefon a zvolený motiv daného uţivatele. Vytvářet profil můţe jen uţivatel s oprávněním „Admin“. Následuje metoda, která ukládá vytvořený, nebo editovaný profil do databáze.
Obrázek 38 - Soukromá proměnná (zdroj: autor)
45
Obrázek 39 - Nastavení profilu, část 1. (zdroj: autor)
Obrázek 40 - Nastavení profilu, část 2. (zdroj: autor)
Administrátor má také moţnost vytvářet jedinečné identifikační číslo (učo) pro uţivatele pomocí této metody.
46
Obrázek 41 - Generování identifikačního čísla uţivatele (zdroj: autor)
4.5 Autorizace a role Nastavení bezpečnostních oprávnění je nejméně komplikované na samostatných webových stránkách, ve webových sluţbách a v podadresářích. V ideálním případě by Framework webové aplikace měl podporovat autorizaci specifickou pro jednotlivé zdroje bez toho, aby bylo potřeba změnit kód programu a opětovně zkompilovat aplikaci. Tyto poţadavky ASP.NET splňuje pomocí deklarativních autorizačních pravidel, která lze definovat v souboru Web.config.
Autorizační
pravidla
se
definují
v prvku
v rámci
<system.web> souboru Web.config. Základní struktura vypadá následovně:
roles=“seznam rolí oddělovaných čárkami“
verbs=“seznam operací oddělovaných čárkami“ />
<deny users=“seznam uživatelů oddělovaných čárkami“
47
sekce
roles=“seznam rolí oddělovaných čárkami“
verbs=“seznam operací oddělovaných čárkami“ />
Řečeno jinými slovy, existují dva typy pravidel: povolující (allow) a zakazující (deny). Pravidel obou typů můţeme zadat libovolné mnoţství. Kaţdé pravidlo identifikuje jednoho nebo více uţivatelů nebo rolí (skupin uţivatelů). Pro nadefinování pravidla, které se bude aplikovat pouze na specifické typy poţadavků http (GET, POST, HEAD nebo DEBUG), lze pouţít atribut verbs. (28) V této aplikaci jsem pouţil následovné nastavení. Zakázal jsem zobrazení stránek, aniţ by se uţivatel přihlásil do systému.
Obrázek 42 - Zákaz zobrazení stránek nepovolaným uţivatelům (zdroj: autor)
Na následujícím obrázku je takovéto nastavení. Ke sloţce v kořenovém adresáři s názvem Admin má oprávnění jen uţivatel s rolí „Admin“. Ke sloţce s názvem Events má přístup uţivatel s rolí „Admin“ a také uţivatel s rolí „Vyučující“. K souboru DisplayEvents.aspx, který se nachází ve sloţce Events, mají přístup také registrovaní uţivatelé. Anonymní uţivatelé mají přístup zakázán.
48
Obrázek 43 - Nastavení rolí (zdroj: autor)
Tak jako členství i role lze nastavit pomocí API. V tomto případě se API nazývá API rolí a je zobrazeno na následujícím obrázku.
49
Obrázek 44 - Api Rolí (zdroj: autor)
Vytvořit novou roly můţe jen administrátor. Následuje metoda, která ukládá novou roly do databáze. Uvedený kód lze nalézt zde: Admin/AddRole.aspx.cs.
Obrázek 45 - Soukromá proměnná (zdroj: autor)
50
Obrázek 46 - Přidání role (zdroj: autor)
4.6 Nasazení 4.6.1 Hosting Aby bylo moţné hotovou naprogramovanou aplikaci vyzkoušet na serveru, rozhodl jsem se, ţe jí nasadím na bezplatný webhosting (dále jen freehosting), který je provozován firmou ASPone.cz (www.aspone.cz). Freehosting je provozován na platformě Windows Server 2008 R2 a tím i nabízí moţnost vyzkoušet si nejmodernější technologie v oblasti ASP.NET od verze 2 aţ 4.5. Freehosting nabízí (29): 1. Základní vlastnosti Diskový prostor 40 MB. Přístup pomocí FTP. 51
Neomezený přenos dat a neomezený počet souborů. Omezenou garanci rychlosti CPU. ASP.NET Full Trust Level. Sdílenou velikost RAM pro vlastní Application Pool. Hostování na ASPone Clusteru Hyper-V 3.0. Umístění serveru na páteřní síti. Pravidelné zálohování dat kaţdý den. 2. Domény Provoz na doméně 3. řádu (dusek1.aspone.cz). 3. Databáze Podporu MS SQL 2012 databází. Jednu databázi o velikosti 30 MB. Správu databáze přes webové rozhraní. Podporu MS Access. 4. Klientská sekce Nastavení aplikačního adresáře. Online správu a vytváření databází. Nastavení práv zápisu do zvoleného adresáře. Plánovač úloh. 52
Správu FTP účtů. Grafickou statistiku vyuţití webového a databázového prostoru.
4.6.2 Nasazení webu V tomto případě k nasazení webu pouţiji protokol FTP (File Transfer Protocol) a aplikaci Total Commander. Nejprve je nutné nastavit připojení FTP, coţ je vidět na následujícím obrázku.
Obrázek 47 - Nastavení připojení FTP (zdroj: autor)
A poté jiţ jen přetáhnu soubory ze svého lokálního počítače do sloţky s názvem www, která se nachází v levém okně na následujícím obrázku. 53
Obrázek 48 - Přetaţení souborů v Total Commanderu (zdroj: autor)
Jako poslední modifikuji připojovací řetězec v souboru Web.config těmito atributy.
Obrázek 49 - Připojovací řetězec (zdroj: autor)
4.6.3 Nasazení databáze Databázi nasazuji pomocí Visual Studia 2010. Konkrétně pomocí nástroje SQL Database Publishing Wizard.
54
Obrázek 50 - SQL Database Publishing Wizard (zdroj: autor)
Přihlašovací údaje jsou na následujícím obrázku.
55
Obrázek 51 - Přihlašovací údaje v SQL Dat. Pub. Wizard (zdroj: autor)
Takto vypadá úspěšné dokončení přenosu. Přenos trval asi tak 30 sekund.
56
Obrázek 52 - Úspěšnost přenosu tabulek (zdroj: autor)
Tabulky jsou správně naimportovány, jak je vidět na obrázku.
57
Obrázek 53 - Naimportovány tabulky na vzdáleném serveru (zdroj: autor)
4.7 Datové úloţiště Kompletně celou databázi vytvořím ve Visual Studiu a nazvu ji aspnetdb.
58
Obrázek 54 - Detail databáze aspnetdb.mdf (zdroj: autor)
Databáze se skládá ze dvou druhů tabulek. Mnou vlastně vytvořené tabulky určené pro rezervační systém. o Event_User
o Events
o RequestedPC
Převzaté tabulky (s prefixem aspnet_ ) z připravené Microsoftem vytvořené databáze Aspnet.mdf. 59
Schéma tabulek vypadá takto.
Obrázek 55 - Schéma tabulek databáze aspnetdb.mdf, část 1. (zdroj: autor)
60
Obrázek 56 - Schéma tabulek databáze aspnetdb.mdf, část 2. (zdroj: autor)
Protoţe v této aplikaci pouţívám Entity Framework, je ještě zapotřebí správně „namapovat“ data z databáze. Postup je následující. Zvolím si správný data model.
61
Obrázek 57- Vytvoření Entity Data Modelu (zdroj: autor)
Zvolím si, ţe si nechám vygenerovat data z jiţ existující databáze.
62
Obrázek 58 - Generování dat z databáze (zdroj: autor)
Nastavím si .mdf databázi, ke které se chci připojit a tím se mi i automaticky vytvoří připojovací řetězec.
63
Obrázek 59 - Vytvoření připojovacího řetězce (zdroj: autor)
A nakonec zvolím tabulky z databáze, které chci „namapovat“.
64
Obrázek 60 –„ Namapování“ vybraných tabulek (zdroj: autor)
Výsledný soubor lze nalézt ve sloţce MyCode viz následující obrázek.
65
Obrázek 61 - Cesta uloţení v aplikaci (zdroj: autor)
4.8 Rezervační systém Detailní popis technického řešení rezervačního systému by šel nad rámec této diplomové práce, proto zobrazím jen ten kód, který povaţuji za důleţitý. Nebudu se nutně drţet osnovy, kterou jsem si naplánoval, protoţe kód se můţe duplikovat a tím pádem bych popisoval téměř totoţnou problematiku.
4.8.1 Vloţení rezervace Předání dat z formuláře do objektu insertedEvent.
66
Obrázek 62 - Ukázka předání dat z formuláře do objektu (zdroj: autor)
Přidání uţivatele, který rezervaci vytváří.
Obrázek 63 - Přihlášený uţivatel je přidán do objektu (zdroj: autor)
Přidání účastníků k rezervaci.
Obrázek 64 - Účastníci události přidáni do objektu (zdroj: autor)
Nakonec se vše uloţí do databáze a zobrazí se potvrzující obrázek a text.
Obrázek 65 - Uloţení dat do databáze (zdroj: autor)
67
4.8.2 Editování rezervace Detekování té správné rezervace k editování zjišťuji z adresního řádku.
Obrázek 66 - Soukromá proměnná (zdroj: autor)
Obrázek 67 - Získání ID (zdroj: autor)
Načtení dat z databáze podle zjištěného ID a následně jejich publikování v rezervačním formuláři.
Obrázek 68 - Nastavení rezervačního formuláře (zdroj: autor)
Uloţení dat do databáze funguje na stejném principu jako u předchozí podkapitoly.
68
4.8.3 Smazání rezervace Smazání rezervace mají na starost dvě obsluţné rutiny, které jsou volány při zmáčknutí určitého tlačítka z datového prvku, který je zobrazen na následujícím obrázku.
Obrázek 69 - Asp:GridView (zdroj: autor)
První obsluţná rutina se nejprve zeptá, zda chceme rezervaci zrušit.
Obrázek 70 - Dotaz na zrušení rezervace (zdroj: autor)
Jestli zvolíme moţnost ano, zavolá se druhá rutina, která rezervaci vymaţe z databáze.
69
Obrázek 71 - Vymazání rezervace (zdroj: autor)
4.8.4 Zobrazení vlastních rezervací
Následující obrázek zobrazuje zobrazení vlastních rezervací pro daného uţivatele. Výsledek je řazen sestupně podle zadaného počátečního data.
Obrázek 72 - Zobrazení vlastních rezervací (zdroj: autor)
4.8.5 Uţivatelsky přívětivý design
70
Jednotlivé rezervace jsou barevně rozlišeny podle své aktuálnosti. Má to na starosti následující obsluţná rutina.
Obrázek 73 - Barevné podbarvení rezervací (zdroj: autor)
Následuje statická třída Helpers.
71
Obrázek 74 - Statická třída (zdroj: autor)
5 Vyhodnocení V této kapitole popíši celkovou funkčnost webové aplikace. Výsledný kód lze naleznout na přiloţeném CD a vše si řádně vyzkoušet. Přemýšlel jsem, jak nejlépe popsat funkcionalitu celé aplikace a rozhodl jsem se, ţe aplikaci popíší na základě jednotlivých rolí uţivatelů.
5.1 Role „Admin“ Přihlásím se jako: Login: admin Heslo: admin..
72
Po přihlášení do systému se uţivateli zobrazí domovská stránka. V levém sloupci lze volit mezi třemi odkazy. V této kapitole popíši jen odkaz Admin. Ostatní odkazy budou popsány v jiných kapitolách.
Obrázek 75 - Domovská stránka pro uţivatele s oprávněním „Admin“ (zdroj: autor)
Po stisknutí odkazu Admin se uţivateli zobrazí „Administrátorská sekce“ s pěti odkazy.
Obrázek 76 - Administrátorská sekce (zdroj: autor)
5.1.1 Spravovat uţivatele
73
Po kliknutí na první odkaz Spravovat uţivatele, se uţivateli zobrazí seznam všech uţivatelů, kteří jsou uloţeni v databázi.
Obrázek 77 - Seznam všech uţivatelů (zdroj: autor)
Kaţdého uţivatele mohu editovat, nebo smazat. Pokud ho budu chtít editovat, bude to vypadat následovně. V tomto případě budu chtít editovat uţivatele Admin4. Takto vypadá původní nastavení uţivatele Admin4.
74
Obrázek 78 - Editování uţivatele (zdroj: autor)
Zredukuji jeho role jen na roli „Admin“, jméno přejmenuji na Václav a příjmení na Janda. Vygeneruji také nové Učo. Mobil nastavím na 733135640. Po odeslání všech dat se mi zobrazí potvrzující zprávy.
75
Obrázek 79 - Editace zrealizována (zdroj: autor)
Pokud chceme uţivatele smazat, potvrdíme jeho smazání a daný uţivatel se vymaţe z databáze.
Obrázek 80 - Smazání uţivatele (zdroj: autor)
5.1.2 Přidat uţivatele
76
Na následujícím obrázku uvidíme nového přidaného uţivatele do systému. Stisknutím tlačítka Generovat heslo se mu vygenerovalo unikátní heslo a stisknutím tlačítka Generovat UČO se vygeneruje unikátní sled číslic reprezentující studentovo identifikační číslo. Uţivatel má nastavenou roli jako Student.
Obrázek 81 - Úspěšné přidání uţivatele (zdroj: autor)
Zkontrolujeme si, ţe uţivatel je správně vloţen v databázi. Postup je popsán v kapitole 5.1.1. Spravovat uţivatele.
Obrázek 82 - Zkontrolování přidaného uţivatele (zdroj: autor)
A zobrazíme si uţivatelovy detaily. 77
Obrázek 83 - Uţivatelovy detaily (zdroj: autor)
Jak je vidět z kontrolních obrázků, uţivatel je správně vloţen v databázi.
5.1.3 Spravovat role Po kliknutí na odkaz Spravovat role se uţivateli zobrazí seznam všech rolí. Seznam rolí lze řadit vzestupně či sestupně.
Obrázek 84 - Seznam rolí (zdroj: autor)
5.1.4 Přidat roli
78
Po kliknutí na odkaz Přidat roli má uţivatel moţnost přidat novou roli. Přidal jsem novou roli s názvem Skupina 21.
Obrázek 85 - Úspěšné přidání nové role (zdroj: autor)
Správné vloţení role zkontrolujeme na dalším obrázku.
Obrázek 86 - Vytvořená role v seznamu rolí (zdroj: autor)
5.1.5 Nastavit počet počítačů v učebně Zde se nastavuje celkový moţný počet počítačů, který lze rezervovat. Přednastavená hodnota je číslo 14. Počet počítačů lze samozřejmě změnit. Maximální moţný počet je 999 a minimální 0.
79
Obrázek 87 - Počet PC v učebně (zdroj: autor)
5.2 Role „Vyučující“ Přihlásím se jako: Login: vyucujici Heslo: vyucujici.. Uţivatel s rolí Vyučující vidí v levém sloupci dva odkazy.
Obrázek 88 - Domovská stránka pro uţivatele s rolí Vyučující (zdroj: autor)
Sekce Události se zobrazí po kliknutí na odkaz Události.
80
Obrázek 89 - Rezervační sekce (zdroj: autor)
5.2.1 Zobrazit všechny události Zde se zobrazují veškeré rezervace, které jsou i patřičně podbarvené, jak jsem jiţ popisoval dříve.
Obrázek 90 - Zobrazení všech rezervací (zdroj: autor)
Podle data lze nalézt jen ty rezervace, které nás zajímají, jak uvidíme na obrázku. 81
Obrázek 91 - Zobrazení rezervací podle data a času (zdroj: autor)
5.2.2 Spravovat moje události Protoţe jsem přihlášen jako vyucujici, zobrazí se mi jen ty rezervace, které vytvořil tento uţivatel.
82
Obrázek 92 - Zobrazení vlastních rezervací (zdroj: autor)
Samozřejmě mohu zobrazit podle data jen určité rezervace, jak bylo popsáno v předešlé kapitole. Na následujícím obrázku budu editovat rezervaci s ID 25. Počet PC změním na 4 a počáteční datum změním z 27. 6. 2014 na 28. 6. 2014.
83
Obrázek 93 - Editování rezervace (zdroj: autor)
A nakonec rezervaci zkontrolujeme.
Obrázek 94 - Zobrazená editovaná rezervace (zdroj: autor)
84
Rezervaci lze samozřejmě pomocí tlačítka znázorňující odpadkový koš také smazat.
5.2.3 Zjistit volný termín + zadat událost V této kapitole popíši, jak vytvořit rezervaci. Budu chtít zarezervovat 12 počítačů od 21. 06. 2014 8:00 hodin do 31. 07. 2014 8:00 hodin. A zmáčknu tlačítko Odeslat.
Obrázek 95 - Zjištění volného termínu (zdroj: autor)
Zobrazí se mi tabulka s jiţ existujícími rezervacemi. To znamená, ţe na tento termín nemohu zarezervovat 12 počítačů. Termín je obsazený.
85
Obrázek 96 - Termín k rezervaci je obsazený (zdroj: autor)
Změním konečné datum rezervace z 31. 07. 2014 8:00 hodin na 27. 06. 2014 8:00 hodin. Rezervaci stále není moţné uskutečnit, protoţe poţaduji zarezervovat dvanáct počítačů, ale v daném termínu je jiţ zarezervováno pět počítačů. Avšak maximální moţný počet zarezervovaných počítačů je nastaven na čtrnáct.
Obrázek 97 - Rezervace nelze uskutečnit z důvodu počtu PC (zdroj: autor)
Proto změním počet počítačů ze dvanácti na pět. V tomto případě mě systém pustí dál a zobrazí mi modře zbarvený odkaz Vytvořit událost.
86
Obrázek 98 - Lze vytvořit rezervaci (zdroj: autor)
Po jeho odkliknutí se mi zobrazí rezervační formulář.
Obrázek 99 - Formulář rezervace (zdroj: autor)
87
Vyplním jej a odešlu. Tato událost bude relevantní pro tři uţivatele: Václava Jandu (Učo:669292; login:Admin4). Ostatní dva uţivatelé jsou zřejmí z následujícího obrázku.
Obrázek 100 - Úspěšně vloţená rezervace (zdroj: autor)
Podle návodu v předchozí kapitole zkontroluji, zda jsem rezervaci skutečně vytvořil.
88
Obrázek 101 - Zobrazená vytvořená rezervace (zdroj: autor)
Stejně jako v předchozích kapitolách, i zde je moţné vytvořenou událost vymazat.
5.3 Role „Student“ a „Externista“ Přihlásím se jako: Login: Externista Heslo: externista.. V levém menu se mi zobrazí jen jeden odkaz.
89
Obrázek 102 - Domovská stránka pro externisty a studenty (zdroj: autor)
Po jeho zmáčknutí se mi zobrazí Uživatelská sekce.
Obrázek 103 - Uţivatelská sekce (zdroj: autor)
5.3.1 Editovat profil Po zmáčknutí Editovat profil se zobrazí uţivatelská data, která lze měnit. UČO editovat nelze.
90
Obrázek 104 - Úspěšné editování uţivatele (zdroj: autor)
5.3.2 Zobrazit moje události Zde se zobrazí události, kterých by se měl daný uţivatel účastnit. V kapitole 5.2.3 Zjistit volný termín + zadat událost jsem vytvořil novou rezervaci s ID 26 pro tohoto uţivatele. Na následujícím obrázku zjistíme, jestli opravdu tento uţivatel je k této události přiřazen a vše funguje tak jak má.
91
Obrázek 105 - Zobrazení událostí, kterých se daný uţivatel účastní (zdroj: autor)
Jak je vidět, povedlo se.
5.3.3 Šablona Zde je moţné přepínat mezi dvěma šablonami.
Obrázek 106 - Uţivatel si můţe vybrat šablonu (zdroj: autor)
92
Závěr Laboratoř BIVŠ se zabývá pedagogickou činností, vědecko-výzkumnou činností a spoluprací s absolventy oborů IT a ITM. Ke svému provozu vyuţívá technologii jako IBM Power 5(AS/400), HP Proliant a SUN Fire V240. K dispozici má tento operační systém: IBM i5/OS, LINUX, Windows a Solaris 10 OS. Protoţe je moţné pouţít OS Windows, naprogramoval jsem aplikaci s podporou produktů od firmy Microsoft, konkrétně s podporou ASP.NET 4, ADO.NET Entity Framework 4 a SQL Server 2008. Z toho důvodu je moţné tuto aplikaci nasadit na server laboratoře. Aplikaci jsem vyvíjel zhruba jeden měsíc. Tato doba zahrnovala: Shromáţdění a analýzu poţadavků laboratoře BIVŠ. Návrh vícevrstvé struktury aplikace. Návrh grafického designu a editovatelných šablon. Návrh a tvorbu databáze. Začlenění ADO.NET Entity Frameworku 4. Aplikování objektově orientovaných principů programování a implementaci návrhů. Testování. Nasazení aplikace na lokální server a také na vzdálený server (http://dusek1.aspone.cz). Aplikace by měla slouţit k plánování, organizování času, zdrojů a lidí. Vyuţít ji mohou administrátoři, vyučující, studenti či externisté. V případě potřeby laboratoře BIVŠ je moţné aplikaci, ale i databázi různě modifikovat, nebo ji rozšiřovat. Díky Entity Frameworku lze aplikaci napojit na jakoukoliv databázi, která je právě k dispozici. Aplikaci jsem vyvinul tak, aby ji bylo moţné co nejflexibilněji vyuţít a s malou námahou spravovat a rozšiřovat.
93
Seznam pouţité literatury a zdrojů Bibliografie 1. BIVŠ. BIVŠ otevírá novou IT laboratoř. bivs.cz. [Online] 2013. [Citace: 20. 6 2014.] http://www.bivs.cz/o-nasi-skole/bivs-v-mediich/bivs-otevira-novou-it-labarator. 2. MacDonald, Matthew, Freeman, Adam a Szpuszta, Mario. ASP.NET 4 a C# 2010 - tvorba dynamických stránek profesionálně, kniha 1. Brno : ZONER Press, 2011. str. 25. ISBN 978-80-7413131-8. 3. Spaanjaars, Imar. Beginning ASP.NET 4.5: in C# and VB. Indianapolis : John Wiley & Sons, Inc. str. 48. ISBN 978-1-118-31180-6. 4. Nagel, Christian, a další. C# Programujeme profesionálně. Brno : Computer Press, a.s., 2009. str. 29. ISBN 978-80-251-2401-7. 5. Nagel, Christian, a další. C# Programujeme profesionálně. Brno : Computer Press, a.s., 2009. str. 35. ISBN 978-80-251-2401-7. 6. Nagel, Christian, a další. C# Programujeme profesionálně. Brno : Computer Press, a.s., 2009. str. 685. ISBN 978-80-251-2401-7. 7. Sharp, John. Microsoft Visual C# 2010. Brno : Computer Press, a.s., 2010. str. 539. ISBN 978-80251-3147-3. 8. Driscoll Brian, Gupta Nitin, Vettor Rob, Hirani Zeeshan, and Tenny Larry. Entity Framework 6 Recipes, Second Edition. New York City : Apress Media, LLC, 2013. str. 3. ISBN13: 978-1-4302-5788-2. 9. Driscoll Brian, Gupta Nitin, Vettor Rob, Hirani Zeeshan, and Tenny Larry. ref.8. 10. Pialorsi, Paolo a Russo, Marco. Microsoft LINQ Kompletní průvodce programátora. Brno : Computer Press, a.s., 2009. str. 543. ISBN 978-80-251-2735-3. 11. Sharp, John. Microsoft Visual C# 2010. Brno : Computer Press, a.s., 2010. str. 539. ISBN 978-80251-3147-3. 12. Hotek, Mike. Microsoft SQL Server 2008 Krok za krokem. Brno : Computer Press, a.s., 2009. str. 21. ISBN 978-80-251-2466-6. 13. Bellinaso, Marco. Webové programování v ASP.NET 2.0 Problém, návrh, řešení. Brno : Computer Press, a.s., 2007. str. 27. ISBN 978-80-251-1893-1. 14. Bellinaso, Marco. Webové programování v ASP.NET 2.0 Problém, návrh, řešení. Brno : Computer Press, a.s., 2007. str. 29. ISBN 978-80-251-1893-1. 15. Nagel, Christian, a další, a další. C# Programujeme profesionálně. Brno : Computer Press, a.s., 2009. stránky 356-357. ISBN 978-80-251-2401-7.
94
16. MacDonald, Matthew, Freeman, Adam a Szpuszta, Mario. ASP.NET 4 a C# 2010 - tvorba dynamických stránek profesionálně, kniha 1. Brno : ZONER Press, 2011. str. 757. ISBN 978-80-7413131-8. 17. Bellinaso, Marco. Webové programování v ASP.NET 2.0 Problém, návrh, řešení. Brno : Computer Press, a.s., 2007. str. 43. ISBN 978-80-251-1893-1. 18. Bellinaso, Marco. Webové programování v ASP.NET 2.0 Problém, návrh, řešení. Brno : Computer Press, a.s., 2007. str. 45. ISBN 978-80-251-1893-1. 19. Bellinaso, Marco. Webové programování v ASP.NET 2.0 Problém, návrh, řešení. Brno : Computer Press, a.s., 2007. stránky 74-75. ISBN 978-80-251-1893-1. 20. MacDonald, Matthew, Freeman, Adam a Szpuszta, Mario. ASP.NET 4 a C# 2010 - tvorba dynamických stránek profesionálně, kniha 1. Brno : ZONER Press, 2011. str. 63. ISBN 978-80-7413131-8. 21. Microsoft. Vstudio. microsoft. [Online] 2014. [Citace: 20. 6 2014.] http://msdn.microsoft.com/en-us/library/vstudio/yh26yfzy%28v=vs.100%29.aspx. 22. Bellinaso, Marco. Webové programování v ASP.NET 2.0 Problém, návrh, řešení. Brno : Computer Press, a.s., 2007. str. 157. ISBN 978-80-251-1893-1. 23. Bellinaso, Marco. Webové programování v ASP.NET 2.0 Problém, návrh, řešení. Brno : Computer Press, a.s., 2007. stránky 145-146. ISBN 978-80-251-1893-1. 24. MacDonald, Matthew, Freeman, Adam a Szpuszta, Mario. ASP.NET 4 a C# 2010 - tvorba dynamických stránek profesionálně, kniha 1. Brno : ZONER Press, 2011. str. 174. ISBN 978-80-7413131-8. 25. Bellinaso, Marco. Webové programování v ASP.NET 2.0 Problém, návrh, řešení. Brno : Computer Press, a.s., 2007. str. 172. ISBN 978-80-251-1893-1. 26. MacDonald, Matthew, Freeman, Adam a Szpuszta, Mario. ASP.NET 4 a C# 2010 - tvorba dynamických stránek profesionálně, kniha 1. Brno : ZONER Press, 2011. str. 143. ISBN 978-80-7413131-8. 27. Bellinaso, Marco. Webové programování v ASP.NET 2.0 Problém, návrh, řešení. Brno : Computer Press, a.s., 2007. str. 167. ISBN 978-80-251-1893-1. 28. MacDonald, Matthew, Freeman, Adam a Szpuszta, Mario. ASP.NET 4 a C# 2010 - tvorba dynamických stránek profesionálně, kniha 1. Brno : ZONER Press, 2011. stránky 143-144. ISBN 97880-7413-131-8. 29. Aspone. Freehosting. Aspone.cz. [Online] 2007-2014. [Citace: 20. 6 2014.] http://www.aspone.cz/cz/Webhosting/Freehosting/.
95
Seznam obrázků OBRÁZEK 1 – VYTVOŘENÍ EDM (ZDROJ: (9))........................................................................................................... 13 OBRÁZEK 2 - PŘIHLAŠOVACÍ RÁMEČEK (ZDROJ: AUTOR) .......................................................................................... 16 OBRÁZEK 3 - UKÁZKA STRUKTURY WEBU PO PŘIHLÁŠENÍ (ZDROJ: AUTOR) ................................................................ 16 OBRÁZEK 4 - SLOŢKA MOTIVŮ (ZDROJ: AUTOR)........................................................................................................ 18 OBRÁZEK 5 - MENU PRO ADMINISTRÁTORA (ZDROJ: AUTOR)..................................................................................... 19 OBRÁZEK 6 - MENU PRO PŘEDNÁŠEJÍCÍ (ZDROJ: AUTOR).......................................................................................... 19 OBRÁZEK 7 - MENU PRO STUDENTY A EXTERNISTY (ZDROJ: AUTOR) .......................................................................... 19 OBRÁZEK 8 - UKÁZKA NAVIGAČNÍ CESTY (ZDROJ: AUTOR) ........................................................................................ 20 OBRÁZEK 9 - DATABÁZOVÉ TABULKY PRO API ČLENSTVÍ (ZDROJ: AUTOR) ................................................................. 24 OBRÁZEK 10 - HESLA V DATABÁZI (ZDROJ: AUTOR) .................................................................................................. 26 OBRÁZEK 11 - ZOBRAZENÉ HESLO (ZDROJ: AUTOR).................................................................................................. 27 OBRÁZEK 12 - EDITACE PROFILU (ZDROJ: AUTOR) ................................................................................................... 28 OBRÁZEK 13 - EDITACE ŠABLONY (ZDROJ: AUTOR) .................................................................................................. 29 OBRÁZEK 14 - DATABÁZOVÉ TABULKY PRO PROFILY (ZDROJ: AUTOR) ....................................................................... 30 OBRÁZEK 15 - DATABÁZOVÉ TABULKY PRO PODPORU ROLÍ ČÁST.1 (ZDROJ: AUTOR) .................................................. 32 OBRÁZEK 16 - DATABÁZOVÉ TABULKY PRO PODPORU ROLÍ ČÁST.2 (ZDROJ: AUTOR) .................................................. 32 OBRÁZEK 17 - UKÁZKOVÝ SOUBOR TEMPLATE MASTER (ZDROJ: AUTOR) .................................................................. 35 OBRÁZEK 18 - ZDROJOVÝ KÓD TEMPLATE.MASTER ČÁST.1 (ZDROJ: AUTOR) ............................................................. 35 OBRÁZEK 19 - ZDROJOVÝ KÓD TEMPLATE.MASTER ČÁST.2 (ZDROJ: AUTOR) ............................................................. 36 OBRÁZEK 20 - MOTIVY (ZDROJ: AUTOR) .................................................................................................................. 36 OBRÁZEK 21 - TLAČÍTKA MOTIVŮ (ZDROJ: AUTOR) .................................................................................................. 37 OBRÁZEK 22 - ZDROJOVÝ KÓD PRO MOTIVY (ZDROJ: AUTOR) ................................................................................... 37 OBRÁZEK 23 - SITEMAPPATH (ZDROJ: AUTOR) ....................................................................................................... 38 OBRÁZEK 24 - TREEVIEW (ZDROJ: AUTOR) ............................................................................................................. 38 OBRÁZEK 25 - SITEMAPDATASOURCE (ZDROJ: AUTOR) .......................................................................................... 38 OBRÁZEK 26 - WEB.SITEMAP (ZDROJ: AUTOR) ........................................................................................................ 39 OBRÁZEK 27 - NAČTENÍ STRÁNKY (ZDROJ: AUTOR) ................................................................................................... 39 OBRÁZEK 28 - UKÁZKOVÁ METODA (ZDROJ: AUTOR) ................................................................................................ 40 OBRÁZEK 29 - ZPROSTŘEDKOVATEL ČLENSTVÍ (ZDROJ: AUTOR)................................................................................ 40 OBRÁZEK 30 - API ČLENSTVÍ (ZDROJ: AUTOR) ......................................................................................................... 41 OBRÁZEK 31 - UŢIVATELÉ V API ČLENSTVÍ (ZDROJ: AUTOR) ..................................................................................... 42 OBRÁZEK 32 - ŘÍDÍCÍ PRVKY V TEMPLATE.MASTER (ZDROJ: AUTOR) ......................................................................... 43 OBRÁZEK 33 - UKÁZKA SOUBORU LOGIN.ASPX (ZDROJ: AUTOR) ............................................................................... 43 OBRÁZEK 34 - ŘÍDÍCÍ PRVEK PRO PŘIHLÁŠENÍ (ZDROJ: AUTOR) ................................................................................ 43 OBRÁZEK 35 - TVORBA NOVÉHO UŢIVATELE (ZDROJ: AUTOR) ................................................................................... 44 OBRÁZEK 36 - SMAZÁNÍ UŢIVATELE (ZDROJ: AUTOR)................................................................................................ 44 OBRÁZEK 37 - MYPROFILEPROVIDER (ZDROJ: AUTOR) ............................................................................................ 45 OBRÁZEK 38 - SOUKROMÁ PROMĚNNÁ (ZDROJ: AUTOR) ........................................................................................... 45 OBRÁZEK 39 - NASTAVENÍ PROFILU, ČÁST 1. (ZDROJ: AUTOR) .................................................................................. 46 OBRÁZEK 40 - NASTAVENÍ PROFILU, ČÁST 2. (ZDROJ: AUTOR) .................................................................................. 46 OBRÁZEK 41 - GENEROVÁNÍ IDENTIFIKAČNÍHO ČÍSLA UŢIVATELE (ZDROJ: AUTOR) .................................................... 47 OBRÁZEK 42 - ZÁKAZ ZOBRAZENÍ STRÁNEK NEPOVOLANÝM UŢIVATELŮM (ZDROJ: AUTOR) ......................................... 48 OBRÁZEK 43 - NASTAVENÍ ROLÍ (ZDROJ: AUTOR)...................................................................................................... 49 OBRÁZEK 44 - API ROLÍ (ZDROJ: AUTOR)................................................................................................................. 50 OBRÁZEK 45 - SOUKROMÁ PROMĚNNÁ (ZDROJ: AUTOR) ........................................................................................... 50 OBRÁZEK 46 - PŘIDÁNÍ ROLE (ZDROJ: AUTOR) ......................................................................................................... 51 OBRÁZEK 47 - NASTAVENÍ PŘIPOJENÍ FTP (ZDROJ: AUTOR) ..................................................................................... 53
96
OBRÁZEK 48 - PŘETAŢENÍ SOUBORŮ V TOTAL COMMANDERU (ZDROJ: AUTOR) ......................................................... 54 OBRÁZEK 49 - PŘIPOJOVACÍ ŘETĚZEC (ZDROJ: AUTOR) ............................................................................................ 54 OBRÁZEK 50 - SQL DATABASE PUBLISHING WIZARD (ZDROJ: AUTOR) ...................................................................... 55 OBRÁZEK 51 - PŘIHLAŠOVACÍ ÚDAJE V SQL DAT. PUB. WIZARD (ZDROJ: AUTOR) ..................................................... 56 OBRÁZEK 52 - ÚSPĚŠNOST PŘENOSU TABULEK (ZDROJ: AUTOR) ............................................................................... 57 OBRÁZEK 53 - NAIMPORTOVÁNY TABULKY NA VZDÁLENÉM SERVERU (ZDROJ: AUTOR) ............................................... 58 OBRÁZEK 54 - DETAIL DATABÁZE ASPNETDB.MDF (ZDROJ: AUTOR) .......................................................................... 59 OBRÁZEK 55 - SCHÉMA TABULEK DATABÁZE ASPNETDB.MDF, ČÁST 1. (ZDROJ: AUTOR) ............................................. 60 OBRÁZEK 56 - SCHÉMA TABULEK DATABÁZE ASPNETDB.MDF, ČÁST 2. (ZDROJ: AUTOR) ............................................. 61 OBRÁZEK 57- VYTVOŘENÍ ENTITY DATA MODELU (ZDROJ: AUTOR) .......................................................................... 62 OBRÁZEK 58 - GENEROVÁNÍ DAT Z DATABÁZE (ZDROJ: AUTOR) ................................................................................ 63 OBRÁZEK 59 - VYTVOŘENÍ PŘIPOJOVACÍHO ŘETĚZCE (ZDROJ: AUTOR)...................................................................... 64 OBRÁZEK 60 –„ NAMAPOVÁNÍ“ VYBRANÝCH TABULEK (ZDROJ: AUTOR).................................................................... 65 OBRÁZEK 61 - CESTA ULOŢENÍ V APLIKACI (ZDROJ: AUTOR) ..................................................................................... 66 OBRÁZEK 62 - UKÁZKA PŘEDÁNÍ DAT Z FORMULÁŘE DO OBJEKTU (ZDROJ: AUTOR) ................................................... 67 OBRÁZEK 63 - PŘIHLÁŠENÝ UŢIVATEL JE PŘIDÁN DO OBJEKTU (ZDROJ: AUTOR) ........................................................ 67 OBRÁZEK 64 - ÚČASTNÍCI UDÁLOSTI PŘIDÁNI DO OBJEKTU (ZDROJ: AUTOR) ............................................................. 67 OBRÁZEK 65 - ULOŢENÍ DAT DO DATABÁZE (ZDROJ: AUTOR) .................................................................................... 67 OBRÁZEK 66 - SOUKROMÁ PROMĚNNÁ (ZDROJ: AUTOR) ........................................................................................... 68 OBRÁZEK 67 - ZÍSKÁNÍ ID (ZDROJ: AUTOR) ............................................................................................................. 68 OBRÁZEK 68 - NASTAVENÍ REZERVAČNÍHO FORMULÁŘE (ZDROJ: AUTOR) .................................................................. 68 OBRÁZEK 69 - ASP:GRIDVIEW (ZDROJ: AUTOR) ....................................................................................................... 69 OBRÁZEK 70 - DOTAZ NA ZRUŠENÍ REZERVACE (ZDROJ: AUTOR) ............................................................................... 69 OBRÁZEK 71 - VYMAZÁNÍ REZERVACE (ZDROJ: AUTOR) ............................................................................................ 70 OBRÁZEK 72 - ZOBRAZENÍ VLASTNÍCH REZERVACÍ (ZDROJ: AUTOR) .......................................................................... 70 OBRÁZEK 73 - BAREVNÉ PODBARVENÍ REZERVACÍ (ZDROJ: AUTOR) .......................................................................... 71 OBRÁZEK 74 - STATICKÁ TŘÍDA (ZDROJ: AUTOR) ...................................................................................................... 72 OBRÁZEK 75 - DOMOVSKÁ STRÁNKA PRO UŢIVATELE S OPRÁVNĚNÍM „ADMIN“ (ZDROJ: AUTOR) ............................... 73 OBRÁZEK 76 - ADMINISTRÁTORSKÁ SEKCE (ZDROJ: AUTOR) ..................................................................................... 73 OBRÁZEK 77 - SEZNAM VŠECH UŢIVATELŮ (ZDROJ: AUTOR) ...................................................................................... 74 OBRÁZEK 78 - EDITOVÁNÍ UŢIVATELE (ZDROJ: AUTOR) ............................................................................................ 75 OBRÁZEK 79 - EDITACE ZREALIZOVÁNA (ZDROJ: AUTOR).......................................................................................... 76 OBRÁZEK 80 - SMAZÁNÍ UŢIVATELE (ZDROJ: AUTOR)................................................................................................ 76 OBRÁZEK 81 - ÚSPĚŠNÉ PŘIDÁNÍ UŢIVATELE (ZDROJ: AUTOR) .................................................................................. 77 OBRÁZEK 82 - ZKONTROLOVÁNÍ PŘIDANÉHO UŢIVATELE (ZDROJ: AUTOR) ................................................................. 77 OBRÁZEK 83 - UŢIVATELOVY DETAILY (ZDROJ: AUTOR) ............................................................................................ 78 OBRÁZEK 84 - SEZNAM ROLÍ (ZDROJ: AUTOR) .......................................................................................................... 78 OBRÁZEK 85 - ÚSPĚŠNÉ PŘIDÁNÍ NOVÉ ROLE (ZDROJ: AUTOR) ................................................................................. 79 OBRÁZEK 86 - VYTVOŘENÁ ROLE V SEZNAMU ROLÍ (ZDROJ: AUTOR) .......................................................................... 79 OBRÁZEK 87 - POČET PC V UČEBNĚ (ZDROJ: AUTOR) .............................................................................................. 80 OBRÁZEK 88 - DOMOVSKÁ STRÁNKA PRO UŢIVATELE S ROLÍ VYUČUJÍCÍ (ZDROJ: AUTOR) ........................................... 80 OBRÁZEK 89 - REZERVAČNÍ SEKCE (ZDROJ: AUTOR)................................................................................................. 81 OBRÁZEK 90 - ZOBRAZENÍ VŠECH REZERVACÍ (ZDROJ: AUTOR) ................................................................................. 81 OBRÁZEK 91 - ZOBRAZENÍ REZERVACÍ PODLE DATA A ČASU (ZDROJ: AUTOR)............................................................. 82 OBRÁZEK 92 - ZOBRAZENÍ VLASTNÍCH REZERVACÍ (ZDROJ: AUTOR) .......................................................................... 83 OBRÁZEK 93 - EDITOVÁNÍ REZERVACE (ZDROJ: AUTOR) ........................................................................................... 84 OBRÁZEK 94 - ZOBRAZENÁ EDITOVANÁ REZERVACE (ZDROJ: AUTOR) ........................................................................ 84 OBRÁZEK 95 - ZJIŠTĚNÍ VOLNÉHO TERMÍNU (ZDROJ: AUTOR) ................................................................................... 85 OBRÁZEK 96 - TERMÍN K REZERVACI JE OBSAZENÝ (ZDROJ: AUTOR) .......................................................................... 86
97
OBRÁZEK 97 - REZERVACE NELZE USKUTEČNIT Z DŮVODU POČTU PC (ZDROJ: AUTOR) ............................................ 86 OBRÁZEK 98 - LZE VYTVOŘIT REZERVACI (ZDROJ: AUTOR) ........................................................................................ 87 OBRÁZEK 99 - FORMULÁŘ REZERVACE (ZDROJ: AUTOR) ........................................................................................... 87 OBRÁZEK 100 - ÚSPĚŠNĚ VLOŢENÁ REZERVACE (ZDROJ: AUTOR).............................................................................. 88 OBRÁZEK 101 - ZOBRAZENÁ VYTVOŘENÁ REZERVACE (ZDROJ: AUTOR)...................................................................... 89 OBRÁZEK 102 - DOMOVSKÁ STRÁNKA PRO EXTERNISTY A STUDENTY (ZDROJ: AUTOR) ................................................ 90 OBRÁZEK 103 - UŢIVATELSKÁ SEKCE (ZDROJ: AUTOR) ............................................................................................. 90 OBRÁZEK 104 - ÚSPĚŠNÉ EDITOVÁNÍ UŢIVATELE (ZDROJ: AUTOR) ............................................................................ 91 OBRÁZEK 105 - ZOBRAZENÍ UDÁLOSTÍ, KTERÝCH SE DANÝ UŢIVATEL ÚČASTNÍ (ZDROJ: AUTOR) ................................. 92 OBRÁZEK 106 - UŢIVATEL SI MŮŢE VYBRAT ŠABLONU (ZDROJ: AUTOR)...................................................................... 92
98