Návrh a realizace internetového obchodu v ASP.NET

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

Download "Návrh a realizace internetového obchodu v ASP.NET"

Transkript

1 Bankovní institut vysoká škola Praha Informační technologie a elektronického obchodování Návrh a realizace internetového obchodu v ASP.NET Diplomová práce Autor: Bc. František Mencl Informační technologie a management Vedoucí práce: Ing.,Vít Fábera, Ph.D. Praha Duben, 2009

2 Prohlášení Prohlašuji, že jsem diplomovou práci zpracoval samostatně a s použitím uvedené literatury. V Praze, dne František Mencl

3 Poděkování Chtěl bych touto cestou poděkovat panu doktorovi Vítu Fáberovi za odborné vedení diplomové práce, poskytování rad a informačních podkladů.

4 Anotace V současné době je velmi důležité využívat informační systém pro podporu komunikace se zákazníkem a firmou, tedy využívat i takové možnosti internetu, jako jsou například nabídky výrobků. Tato práce se zabývá návrhem a implementací univerzálního internetového obchodu. V první části jsou popsány možnosti výběru platforem, volba použitých technologii a datových úložišť. Ve druhé části je popsán samotný návrh internetového obchodu. V práci byly využity moderní technologie od firmy Microsoft. Výstupem této práce je aplikace, kterou již může využít kterýkoli podnikatel, činný v některé z oblastí zabývajících se nabídkou zboží, který by chtěl nabízet své zboží pomocí internetového obchodu. Annotation Nowadays it is very important to use the information system to support the communication between the consumer and the company, among others to use even such internet alternatives as the offering of products. This thesis deals with the design and implementation of a universal internet shop. The first part describes the possibilities of the platform selection, the selection of applied technologies and data storages. The second part describes the design of the internet shop itself. Modern technologies, produced by Microsoft, have been used in this thesis. The output of this thesis is an application, which can be used by any enterpriser, who is dealing with the offering of products and who would like to offer his products by means of an internet shop.

5 Obsah Obsah Úvod Základní principy informačních systémů Výběr vývojových platforem Základní charakteristiky nejpoužívanějších platforem Vývojová platforma.net Framework Výhody technologie.net Architektura. NET Jazyk C# ASP.NET ADO.NET Vývojová platforma Java Architektura jazyka Java Virtuální stroj jazyka Java Volba databázového serveru Databáze SQL Server Databáze Oracle Výběr databázového serveru Modelovací jazyk UML a CASE nástroje Struktura jazyka UML Jazyk OCL Diagramy UML Diagramy pro popis struktur Diagramy pro popis chování CASE nástroje Použité technologie při vývoji aplikace Vývoj v prostředí ASP.NET Serverové ovládací prvky Vzorové stránky Analýza rizik Vývoj v prostředí ADO.NET

6 Normalizace databázového modelu Přístup k datům z databáze Volání uložených procedur Třída DataReader Třída DataSet Návrh a realizace internetového obchodu Základní požadavky na aplikaci Pohled z hlediska zákazníka Pohled z hlediska skladníka Návrh datového modelu v MS SQL Tabulky Uložené procedury Datový model v prostředí.net Návrh webové aplikace Registrování zákazníka a přihlášení do internetového obchodu Přehled zboží Detail o zboží Nákupní košík Objednávka Seznam objednávek moje objednávky Návrh skladové evidence Přihlášení do aplikace Skladová evidence Agenda Zboží Agenda Objednávky Agenda Zákazníci Agenda Export dat Závěr Seznam použité literatury

7 1. Úvod Cílem práce je seznámení se s architekturou moderních informačních systémů a dále návrh a implementace univerzálního objednávkového systému internetového obchodu. Obchod bude určen pro podnikatele, kteří mají v současnosti buď výhradně kamenný obchod a chtějí s nabídkou svého zboží proniknout do internetového světa, nebo pro ty, kteří chtějí své zboží nabízet výhradně prostřednictvím internetového obchodu. Cíle z hlediska uživatelské aplikace: Zákazníci si budou moci v internetovém obchodě vybírat nabízené zboží dle kategorie a zobrazit si detailní informace o vybraném zboží. V případě zájmu budou následovně mít možnost dané zboží vložit do nákupního košíku a konečně poslat objednávku majiteli internetového obchodu. Zákazníci rovněž budou schopni sledovat aktuální stav jejich zakázky. Majitel internetového obchodu bude moci vkládat zboží do internetového obchodu a následně sledovat aktuální stav zásob. Rovněž bude schopen sledovat objednávky zákazníků a potvrzovat aktuální stav objednávek. Tento obchod by měl splňovat všechny funkce, jež lze od internetového obchodu očekávat. K tomu patří i možnost vložit nejen pravidla nákupu pro konkrétní internetový obchod, ale i kontaktní údaje o majiteli internetového obchodu. 7

8 2. Základní principy informačních systémů Přesná definice pojmu Informační systém neexistuje a ani ji nelze jednoduše vytvořit, neboť každý uživatel či tvůrce Informačního systému používá různé terminologie a zdůrazňuje jiné aspekty. Můžeme však říci, že Informační systém (IS) lze chápat jako systém vzájemně propojených informací a procesů, které s těmito informacemi pracují. Pod pojmem procesy rozumíme funkce, které zpracovávají informace do systému vstupující a transformují je na informace ze systému vystupující. Zjednodušeně můžeme říci, že procesy jsou funkce zabezpečující sběr, přenos, uložení, zpracování a distribuci informací. Pod pojmem informace pak rozumíme data, která slouží zejména pro rozhodování a řízení v rozsáhlejším systému. Dalším důležitým pojmem v souvislosti s IS je tzv. architektura informačního systému. Tou označujeme rozložení komponent výpočetního systému podniku, jak z fyzického (typ počítačů, operačních systémů, programového vybavení a dalšího zařízení a jeho umístění) tak z logického hlediska (distribuce požadovaného zpracování či jeho dělení na uzly informačního systému). Je možné rozlišovat architekturu funkční, procesní, datovou, hardwarovou, softwarovou nebo technologickou. V konkrétních případech může mít architektura informačního systému velké množství podob, které můžeme rozlišit na centralizované (např. System Network Architecture) nebo distribuované. Hranice mezi nimi nejsou jasně ustanoveny, neboť velké množství firem provozuje servery na větším počtu menších počítačů, jež jsou umístěny v jednom centrálně spravovaném počítačovém sále. Z fyzického hlediska se jedná o centralizovanou architekturu (zpracování probíhá na jednom místě), z logického o distribuovanou architekturu (zpracování probíhá na různých strojích). Do celkové funkce IS se také promítá nezanedbatelná položka okolí. Okolí informačního systému tvoří veškeré objekty, které změnou svých vlastností ovlivňují samotný systém, a také objekty, které naopak mění své vlastnosti v závislosti na systému. Celkově tedy můžeme říci, že IS je softwarové vybavení firmy, které je schopné na základě zpracovávaných informací řídit procesy podniku nebo poskytovat tyto informace řídícím pracovníkům tak, aby byli schopni vykonávat řídící funkce, mezi které patří zejména plánování, koordinace a kontrola veškerých procesů firmy. 8

9 Kvalitní IS je v současnosti nutnou podmínkou úspěšnosti firem ve všech oblastech podnikání. Hlavním důvodem nutnosti vlastnit kvalitní IS je to, že Informační systém je jedním z hlavních faktorů efektivnosti řízení a konkurenceschopnosti firmy. Potřeba kvalitního IS roste s významem informace a dnešní firmy jsou závislé na kvalitních a včasných informacích. Tato situace je způsobena především prudkým růstem informatizace společnosti a právě proto se v posledních letech výrazně, a to až několikanásobně, zvyšují objemy finančních prostředků investovaných do inovace Informačních systémů a Informační technologie (IS/IT). Zrychlující se dynamika trhů a výrobních technik se odráží v trhu s výpočetní technikou, kde výrobek je schopen obstát na trhu maximálně 12 měsíců a poté je nahrazen novým výrobkem. Bez veškerých informací o situaci na trhu, bez vysoké technologické úrovně výroby a bez rychlé inovace vlastních výrobků a služeb by firma nebyla schopná se v současné době udržet na trhu a konkurovat ostatním firmám. IS velikou měrou ovlivňuje technologickou úroveň výroby a služeb. V dnešní době v mnoha firmách slouží IS od návrhu výrobku, technologické přípravy výroby, přes řízení výroby až po uzavření smlouvy se zákazníkem a dodání výrobku. IS umožňuje výrazné zlepšení služeb zákazníkům, neboť veškeré informace o nových požadavcích jsou evidovány, vyhodnocovány a poskytovány přímo zodpovědným osobám, čímž se podstatně urychlí inovace výrobků. IS také umožní lepší zpracování a vyhodnocení informací o vlastní činnosti firmy a tím efektivnější specifikaci cílů a činností firmy, které povedou ke zlepšení výroby a vyšším ziskům. Také umožňuje rychle a efektivně vyhodnocovat informace o ostatních konkurentech a využít těchto informací ke včasné reakci na jejich nové výrobky. Globalizace trhů a volný přístup k informacím znamená celosvětové propojení počítačovou sítí, tedy volný a rychlý přístup veškerých subjektů vyskytujících se v obchodním cyklu k informacím. Důsledkem volného přístupu k informacím je pro výrobce možnost získávat stále rychleji informace o požadavcích zákazníků, o nových technologiích výroby, o stavu konkurentů a možnostech dodavatelů. Oproti tomu jsou zákazníci lépe a rychleji informováni o výrobcích, cenách a službách poskytovaných firmami a tím rostou jejich možnosti výběru. Tyto skutečnosti vedou k rozšíření podnikání na celosvětovou úroveň a tím i k nutnosti sledovat situaci na jiných než lokálních trzích. Úloha IS plyne z důsledků globalizace a přístupu k informacím. IS zajišťují koordinaci 9

10 všech procesů tak, aby jejich spolupráce byla rychlá a vycházela z aktuálních údajů, například z aktuální situace a platných legislativ na daném území. Dále IS zajišťuje rychlou komunikaci zejména mezi firmou a zákazníky na celém světě. Rostoucí složitost rozhodování plyne zejména z vyšší oblasti působnosti, velkého množství nových technologií, konkurence a potřebných dat, z účasti na globálním trhu nebo zavádění ISO norem do výroby. IS umožňuje zpracovávat informace mnohem rychleji a efektivněji, členit je a poskytovat v ucelené struktuře tak, aby byly k dispozici ve chvíli, kdy jsou nutné pro včasné a správné rozhodnutí firmy. Nutnost reagovat na aktuální stav trhu a tedy nutnost mít aktuální informace o stavu a vývoji vlastních zdrojů, čímž jsou myšleny finanční zdroje, pracovní síly, zásoby materiálu a investice. Tato potřeba ústí v nutnost znalosti informací o vnitropodnikových procesech a aktivitách A samozřejmě je nutné také mít možnost tyto informace okamžitě změnit podle měnících se podmínek. Úlohou IS je zde poskytovat veškeré uložené informace v různých časových a věcných řezech, např. podle oblasti výroby, období, zákazníků a možnost získat statistické tabulky. Volný konkurenční trh, kde zaměstnanci mají možnost většího výběru zaměstnání podle platových podmínek, náplně práce, požadavků na kvalifikaci zaměstnanců a dalších parametrů vede k vysoké míře migrace pracovních sil. Je třeba uchovávat veškeré informace získané jednotlivými zaměstnanci tak, aby s jejich odchodem nebyly tyto informace ztraceny. Nutnost pružného a rychlého chování firmy v současném hospodářském prostředí vede k tendenci přecházet od hierarchických organizačních struktur k plochým strukturám. Přizpůsobení se novým podmínkám je mnohem snazší pro firmy s plochou organizační strukturou, než pro firmy se složitou hierarchickou strukturou s několika úrovněmi. IS v tomto procesu umožňuje koordinovat činnosti jednotlivých úseků firmy, která svou plochou strukturou je složitější než hierarchická a vyžaduje vyšší četnost a objem vyměňovaných informací. Tyto informace musí být distribuovány tak, aby v jednotlivých úsecích firmy byly tytéž aktuální informace a aby nedocházelo k jejich duplicitě. Vysoká konkurence trhu, kde firma neudrží svou pozici jen nabízením nových výrobků, ale i nabízením služeb a výhod zákazníkům vede firmy k nutnosti poskytovat nové služby. IS umožňuje propojení firemního systému a počítačové sítě a to zejména v 10

11 oblastech počítačové komunikace mezi zákazníkem a firmou, čímž je myšlena hlavně nabídka výrobků přes webovské stránky, dále propojením přes síť zkrátit doby standardních služeb, neboť vyřizování veškerých formalit by se využitím počítačové sítě mělo podstatně urychlit a v neposlední řadě zjednodušení celkové komunikace. 11

12 3. Výběr vývojových platforem V dnešní době jsou hlavními hráči vývojových platforem Microsoft, Sun Microsystems. Základní rozdíl by se dal charakterizovat tak, že Sun Microsystems je na rozdíl od Microsoftu volně dostupný. I přesto Microsoft nabízí volně dostupnou verzi pro vyzkoušení programování v jejich vývojovém prostředí. Tato platforma se nazývá Visual Studio Express. Každá z těchto platforem má svůj programovací jazyk. U Sun Microsystemu je to JAVA a Microsoftu buď klasické C++ či technologie.net. JAVA má tu výhodu, že je možné ji použít pro více operačních systémů. Na rozdíl od toho lze technologii.net použít pouze v systému Windows. Vzhledem k tomu, že aplikace poběží pouze v operačním systému Windows, zvolil jsem platformu Microsoft Základní charakteristiky nejpoužívanějších platforem Vývojová platforma.net Framework Platforma Framework od Microsoftu je vývojový systém, který slouží pro podporu programování jak webových aplikacích, tak i klasických aplikací pro MSWindows ale i pro Pocket PC Výhody technologie.net Platforma.NET Framework je od počátku kompletně založena na objektově orientovaných principech. Použité jazyky v technologii.net, tj. Visual Basic.NET, C#, J#, a spravované C++, kompilují do společného zprostředkujícího jazyka (Intermediate Language). Oproti prostředí ASP je lepší podpora dynamických webových stránek..net nabízí integrovanou podporu webových stránek pomocí nové technologie ASP.NET, v rámci níž je kód stránek kompilován a lze jej psát v jazyku vysoké úrovně, kompatibilním s technologií.net. Sada komponent. NET souhrnně označovaná jako ADO.NET zajišťuje efektivní přistup k relačním databázím a různým zdrojům dat. Navíc jsou k dispozici komponenty, které poskytují přístup k souborům a k adresářům. Zejména je do technologie.net integrována podpora jazyka XML, což umožňuje manipulaci s daty, která lze importovat nebo exportovat na jiné platformy než Windows. Zásadním 12

13 způsobem mění technologie.net sdílení kódu mezi aplikacemi, kde zavadí koncepci sestavení (assembly), která nahrazují tradiční knihovny DLL. Zjednodušeně můžeme říci, že technologie.net je snadná na vývoj ten je zcela objektově orientován, umožňuje automatické řízení životnosti objektů, je zaměřen na aplikační logiku nikoli na kontrolu aplikační infrastruktury..net odstraňuje komunikační bariéru mezi komponentami a aplikacemi zjednodušuje integraci, usnadňuje znovupoužitelnost kódu a dílčích nebo i celých komplexů řešení. Bezpečnost je zajištěna identifikací kódu, dále je přítomna typová bezpečnost. Odstraňuje problémy s komponentami COM. Umožňuje vyvíjet aplikace i pro mobilní zařízení Architektura. NET Zdroj: interní materiály firmy Cleverlance a.s. Obrázek 1. Schéma architektury.net. Základním stavebním kamenem.net Frameworku je modul Common Language Runtime (CLR) nebo-li běhový systém.net. Jakýkoli zdrojový kód vyžaduje před spuštěním v modulu CLR kompilaci, která musí v prostředí.net probíhat dvoufázově: 1) Kompilace zdrojového kódu do jazyka IL 2) Kompilace jazyka IL do kódu specifického pro cílovou platformu pomocí modulu CLR 13

14 Jak jsem již zmínil výše, existence jazyka IL je jednou ze zásadních výhod platformy.net. Jedná se o nízkoúrovňový jazyk s jednoduchou syntaxí, která nepracuje s textem, ale s číselnými kódy. Jeho prioritou je nezávislost, která se projevuje především tím, že stejný soubor s instrukcemi v bajtovém kódu lze přenést na libovolnou platformu. V době spuštění je možno snadno provést závěrečnou fázi kompilace, která zajistí spuštění kódu na příslušné platformě. Jazyk IL se vždy kompiluje metodou Just-In-Time (JIT), což znamená, že místo kompilace celé aplikace v jednom průchodu JIT zjednodušeně kompiluje každou z částí kódu v okamžiku jejího volání. Po první kompilaci kódu je výsledný nativní spustitelný soubor uložen, dokud není aplikace ukončena. Proto jej není nutné při opakovaném spuštění stejné části kódu kompilovat znovu. Nejméně stejně důležitá jako nezávislost na platformě je výhoda možnosti spolupráce mezi jazyky. Můžeme kompilovat do jazyka IL z jednoho programovacího jazyka a výsledný kód by měl spolupracovat s kódem, který byl do IL kompilován z jiného vyššího jazyka. 14

15 Zdroj: NAGEL, Ch., EVJEN, B., GLYNN, J., SKINNER, M., WATSON, K., JONES, A.. C# 2005 : Programujeme profesionálně. Brno : Computer Press, s. ISBN Obrázek 2. Schéma funkcí podílejících se na kompilaci a spuštění aplikace Jazyk C# Jazyk C# nelze pojímat izolovaně, ale je nutné o něm uvažovat souběžně s platformou.net Framework, neboť jeho kompilátor je speciálně zaměřen na platformu.net. To v podstatě znamená, že architektura a metodika jazyka C# jsou odrazem základních metodik platformy.net. Jedná se o jazyk založený na metodice objektově orientovaného návrhu. Podstatné je, že jazyk C# je samostatným jazykem. Generuje sice kód určený pro prostředí.net, ale sám o sobě není součástí platformy. Jazyk C# umožňuje vytvářet i konzolové aplikace textové programy, které se spouštějí v okně systému DOS. Ty můžeme použít například při jednotkovém testování knihoven tříd a při 15

16 vytváření démonů pro systémy Unix či Linux. Nejčastěji se však v jazyku C# vyvíjejí aplikace, které pracují s mnoha technologiemi souvisejícími s platformou.net ASP.NET Technologie ASP (Active Server Pages) společnosti Microsoft umožňuje vytvářet webové stránky s dynamickým obsahem. Stránka ASP je v podstatě soubor HTML s vloženými úseky VBScript nebo JavaScript, které se provádějí na straně serveru. ASP umožňuje snadné vytváření klientských aplikací založených na prohlížeči. Má však i své nedostatky, např., že stránky ASP se někdy zobrazují pomalu, protože kód na straně serveru je interpretován a nikoli kompilován. Navíc se někdy stává, že se soubory ASP obtížně udržují, protože nejsou strukturovány (části kódu ASP na straně serveru a prostého kódu HTML jsou vzájemně promíchány). Další nevýhodou technologie ASP je omezená podpora ošetření chyb a typové kontroly, což občas komplikuje vývoj. ASP.NET je přepracovaná verze technologie ASP, která řeší mnoho původních problémů. Jejím účelem není technologii ASP nahradit, obě technologie mohou koexistovat na stejném serveru. V některých ohledech se ASP.NET podobá jiným technologiím, jako jsou PHP, ASP nebo ColdFusion. Je zde však zásadní rozdíl technologie ASP.NET je založena na plné integraci do systému.net Framework, což zaručuje podporu jazyka C#. Největším benefitem stránek ASP.NET je jejich strukturovanost. To znamená, že každá stránka je v podstatě třídou, která je potomkem od třídy System.Web.UI.Page a může přepsat sadu metod, které jsou vyvolány v průběhu životnosti objektu Page. Díky tomu, že lze funkci stránek zahrnout do obsluh událostí s explicitními významy, jsou stránky ASP.NET srozumitelnější. Aby se dosáhlo maximální srozumitelnosti dovoluje kód v pozadí (code behind) v technologii ASP.NET dovést strukturovaný přístup ještě dále. ASP.NET umožňuje izolovat funkčnost stránky na straně serveru do třídy, zkompilovat třídu jako knihovnu DLL a příslušnou knihovnu umístit do adresáře pod částí ve formátu HTML. Kód na začátku stránky zajistí přidružení souboru s příslušnou knihovnou DLL. Když prohlížeč požádá o stránku, webový server odešle události ve třídě knihovně DLL s kódem pozadí dané stránky. Důležitým faktem je skutečnost, že se technologie ASP.NET vyznačuje vyšším výkonem, což je markantní ve srovnání se stránkami ASP, které jsou při každém požadavku na stránku interpretovány. Ve stejném případě si webový server uloží 16

17 zkompilované stránky ASP.NET do mezipaměti a tím pádem jsou následné požadavky na stránku ASP.NET vyřízeny rychleji než první požadavek. Technologie ASP.NET usnadňuje psaní stránek, které zajišťují zobrazení formulářů v prohlížeči, což je výhodné pro využití v prostředí sítě intranet. Formulářové aplikace sice poskytují bohatší uživatelské rozhraní, ale obtížněji se udržují, protože jsou spouštěny v mnoha různých počítačích. Proto se jim dávala přednost v případech, kdy bylo nutné zajistit bohaté uživatelské rozhraní a byla k dispozici účinná odborná pomoc. ASP.NET spolupracuje při doručování obsahu jako odpovědi na požadavky zaslané prostřednictvím protokolu http s IIS (Internet Information Server). Stránky ASP.NET jsou uloženy v souborech s příponou.aspx. Zdroj: NAGEL, Ch., EVJEN, B., GLYNN, J., SKINNER, M., WATSON, K., JONES, A.. C# 2005 : Programujeme profesionálně. Brno : Computer Press, s. ISBN Obrázek 3. Schéma architektury technologie ASP.NET. V průběhu zpracování ASP.NET je umožněn přístup ke všem třídám platformy.net, zákaznickým komponentám vytvořeným v C# nebo jiných jazycích, databázím atd.. Soubor ASP.NET může obsahovat příkazy zpracování na serveru, kód v jazycích (C#, Visual Basic.NET, JScript.NET nebo v jiným jazyce podporovaném.net Frameworkem), 17

18 obsah vhodný pro generování zdroje (např. HTML), kód skriptu klientské strany, vložené serverové řídící prvky ASP.NET apod ADO.NET ADO.NET je podobná technologii ADO pouze částečně, třídy a metody pro přístup k datům se zcela liší. ADO (ActiveX Data Objects) je knihovna komponent COM, pomocí které lze otevřít připojení k databázi, vybrat data do sady záznamů složené z polí, následně s těmito daty manipulovat, aktualizovat je na serveru a ukončit připojení. Tato technologie též poskytla tzv. odpojenou sadu záznamů, která se používá v případech, kdy není žádoucí udržovat připojení dlouhodobě aktivní. ADO však neřešila uspokojivě mnohé problémy, zvláště pak neskladnost odpojené sady záznamů z hlediska fyzické velikosti. S rozvojem webových počítačových technologií se význam podpory této funkce ještě zvýšil, a proto bylo nutno změnit přístup. Programování v ADO.NET a ADO má mnohé společné prvky, takže přechod z technologie ADO není příliš obtížný. Navíc je při použití SQL Serveru k dispozici nová sada řízených tříd, které jsou optimalizovány tak, aby při práci s databází poskytly maximální výkon. Technologie ADO.NET se dodává se čtyřmi jmennými prostory klientských databází jeden je určen pro SQL Server, další pro Oracle, třetí pro databáze ODBC a poslední lze použít s libovolnými databázemi, které jsou dostupné pomocí rozhraní OLEDB. Zdroj: NAGEL, Ch., EVJEN, B., GLYNN, J., SKINNER, M., WATSON, K., JONES, A.. C# 2005 : Programujeme profesionálně. Brno : Computer Press, s. ISBN Obrázek 4. Schéma znázorňující třídy pro připojení a jejich polohu v hierarchii tříd. 18

19 Vývojová platforma Java Java je dnes jedno z nejrozšířenějších programovacích prostředí. Je využívána širokým spektrem odběratelů, jak v jednoduchých aplikacích, tak v ohromných sálových počítačích. Čím je tak zajímavá? Java je dle svých tvůrců jednoduché, robustní, objektově orientované na platformě nezávislé, vícevláknové, dynamické univerzální programovací prostředí. Její univerzálnost je založena na obrovském množství aplikačních rozhraní, která jsou vystavěna na základech společné sady hlavních tříd. Hlavním znakem, který Javě umožňuje nadstandardní přizpůsobivost a získává jí obrovskou popularity, je její nezávislost na platformě. Tato vlastnost je implementována do systému, ve kterém jsou v Javě spouštěny všechny programy (applety). Jedná se o speciální virtuální prostředí, umožňující důsledné oddělení kódu od podkladového (hostitelského) systému Architektura jazyka Java Zjednodušeně lze říci, že Java je programovací jazyk, prostřednictvím kterého můžeme vyvíjet vlastní aplikace psát zdrojové soubory a překládat jejich obsah do bajtového kódu. Jazyk Java je však jen jednou z mnoha součástí prostředí Javy, je to v podstatě podkladová architektura poskytující Javě mnoho výhod, především nezávislost na použité platformě. Architekturu prostředí Javy tvoří ve skutečnosti kombinace čtyř komponent programovacího jazyka Java, formátu souboru.class, aplikačního programového rozhraní Java (API) a virtuálního stroje jazyka Java. Zdroj: JAVA. About the Java Technology [online]. [cit ]. Dostupný z www: < Obrázek 5. Schéma znázorňující proces vývoje software v Java. API aplikační programové rozhraní Javy tvoří základní rozhranní pro psaní programů, který je uspořádáno do tématicky jednotných balíčků. Rozhraní API Javy se dělí na následující tři platformy: Standard Edition (J2SE) obsahuje základní sadu tříd jazyku Java a třídy potřebné pro tvorbu grafického uživatelského rozhraní (GUI). 19

20 Enterprise Edition (J2EE) obsahuje třídy a rozhraní určené především pro vývoj webových aplikací, mimo jiné třídy potřebné pro tvorbu servletů, stránek JSP (Java Server Pages) a objektů EJB (Enterprise JavaBeans). Micro Edition (J2ME) tato sada poskytuje optimalizované prostředí zpracování, určené pro spotřebitelé produktů jako jsou pagery, mobilní telefony nebo navigační systémy pro automobily Virtuální stroj jazyka Java Virtuální stroj jazyka Java (JVM = Java Virtual Machine) je ve své podstatě software vystupující jako hardwarové zařízení a umožňující spouštění appletů v jazyce Java, tzn., že převádí jejich kód do nativních instrukcí pro hostitelský počítač. Ostatní programovací jazyky využívají překladač (compiler), který překládá zdrojový kód na kód spustitelný. Tento překladač je však závislý na typu procesorů často i na operačním systému. S nástupem internetu nastala nutnost vytvořit jazyk, který by byl nezávislý na jakékoli platformě. A to jazyk Java je, neboť výstupem překladače není standardní spustitelný kód. Překladač jazyka Java generuje optimalizovanou sadu instrukcí bajtový kód (též interpretovaný kód, pseudokód nebo p-kód). Jde o posloupnost formátovaných bajtů a program obsahující tento kód je interpretován systémem JVM. Typickou charakteristikou bajtového kódu je skutečnost, že tento kód není vykonáván přímo procesorem cílového počítače. Je spouštěn v prostředí virtuálního stroje, který jej teprve interpretuje a převádí na příslušná nativní volání. Proto je Java označována za interpretovaný jazyk, což je vlastnost, která jí umožňuje být nezávislou na cílové platformě. Druhou stranou mince je, že ve srovnání se standardním kódem spustitelných aplikací je vykonání kódu v Javě podstatně pomalejší, ale rychlejší než klasické interpretované jazyky. Všechny programy vytvořené v jazyce Java jsou spouštěny uvnitř instance virtuálního stroje, přičemž každá samostatná aplikace je spuštěna ve vlastní instanci virtuálního stroje. Kompilované soubory s kódem v Javě (soubory.class bajtové kódy) jsou načítány do virtuálního stroje, kde jsou zpracovávány řídícím strojem (execution engine). V průběhu zpracovávání bajtového kódu komunikuje virtuální stroj s hostitelským operačním systémem prostřednictvím tzv. nativních metod. 20

21 3.2. Volba databázového serveru Databáze SQL Server Firmy musí řešit mnoho úkolů týkajících se dat, k čemuž je například vede nutnost přijímat rychlejší rozhodnutí orientovaná na data a potřeba zvyšovat produktivitu a flexibilitu vývojářů, dále musí čelit tlakům na snížení celkové výše rozpočtů na informační technologie (IT) a současně škálovat infrastrukturu tak, aby vyhovovala stále náročnějším požadavkům. SQL Server je navržen tak, aby podnikům pomohl tyto úkoly vyřešit. Nové řešení pro správu a analýzu dat poskytuje zvýšené zabezpečení, škálovatelnost a dostupnost podnikových dat a analytických aplikací a současně usnadňuje jejich vytváření, nasazení a správu. SQL Server představuje integrované řešení pro správu a analýzu dat a usnadňuje organizacím všech velikostí provádět následující operace: vytvářet, nasazovat a spravovat podnikové aplikace, které jsou zabezpečenější, škálovatelnější a spolehlivější, maximalizovat produktivitu informačních technologií zjednodušením vývoje a podpory databázových aplikací, sdílet data mezi více platformami, aplikacemi a zařízeními, a usnadnit tak propojení interních i externích systémů, řídit náklady, aniž by došlo ke snížení výkonu, dostupnosti, škálovatelnosti či zabezpečení. SQL Server zdokonaluje infrastrukturu dat ve třech klíčových oblastech - správa podnikových dat, produktivita vývojářů a business intelligence (BI). Společnost Microsoft přišla s rozdělením produktové řady SQL Server 2005 do čtyř edicí, které mají lépe pokrývat možnosti a potřeby všech zákaznických segmentů - Express, Workgroup, Standard a Enterprise. Tyto edice nabízejí širokou škálu funkcionalit, počínaje vysokou dostupností a robustní škálovatelností, přes rozšířené nástroje pro business intelligence, až po vyšší bezpečnost, spolehlivost a snadnou správu této databázové platformy. 21

22 Škálovatelnost a výkon Funkce Express Workgroup Standard Enterprise Poznámky Počet CPU bez limitu Obsahuje podporu vícejádrových (multicore) procesorů RAM 1 GB 3 GB bez limitu bez limitu 64-bit podpora Windows on Windows (WOW) WOW Velikost databáze Partitioning Indexované pohledy Parallel Index Operations 4 GB bez limitu bez limitu 22 bez limitu Podpora pro rozsáhlé databáze Vytváření indexovaných pohledů je podporováno ve všech edicích, pouze edice Enterprise podporuje vytváření pomocí Query procesoru. Paralelní Zdroj: MICROSOFT. Microsoft SQL Server: Porovnání funkcí jednotlivých edicí SQL Serveru 2005 [online]. [cit ]. Dostupný z www: < Tabulka 1. Porovnání edicí SQL Serveru Databáze Oracle Před několika lety představil Oracle v rámci uvedení Oracle Database 10 koncept Enterprise Grid, který zásadně mění způsob, jakým je možné plánovat a provozovat datová centra. Dovoluje totiž transformovat ostrůvky samostatných IT prostředků do sad serverů a úložných zařízení sdílených různými aplikacemi. Sdružováním levných komoditních serverů a modulárních úložných zařízení do gridu (mříže) a sdílením jejich výkonu mezi aplikacemi mohou organizace efektivněji provozovat IT systémy s nejvyšším výkonem a dostupností.

23 Oracle Database 11 dále rozšiřuje tyto unikátní schopnosti. Uživatelé požadují rychlý a bezpečný přístup k aplikacím v nepřetržitém režimu a IT manageři musí tato jejich očekávání plnit bez zvyšování nákladů. Nové mechanismy v oblasti správy Oracle Database 11 byly navrženy tak, aby zjednodušily správu IT infrastruktury a umožnily úspěšně dosahovat uživateli požadované úrovně služeb. Tyto nové mechanismy a rozšíření dovolují zákazníkovi zvýšit produktivitu databázových administrátorů a snížit náklady na správu při současném zvýšení výkonu, škálovatelnosti a zabezpečení podnikových aplikací. Oracle Database 11g přináší výhody koncepce grid computing s důrazem na zjednodušení a automatizaci správy. To vše zákazníkovi bez nesnází dovoluje: inovovat rychle a bez rizika za pomocí Real Application Testing, spravovat větší množství dat s nižšími náklady pomocí pokročilého partitioningu a komprese, bezpečně chránit a auditovat data, a díky technologii Total Recall umožnit obnovu dat k libovolnému časovému bodu, integrovat a spravovat životní cyklus všech podnikových dat, zajistit nepřetržitý provoz díky unikátní architektuře pro vysokou dostupnost. Oracle Database 11g existuje ve třech základních edicích. Zatímco rozdílná úroveň mechanismů pro zajištění vysoké dostupnosti, výkonu a bezpečnosti umožňuje minimalizaci nákladů na pořízení a provoz systému při současném splnění provozních požadavků, společný základ a jednotné aplikační i administrátorské rozhraní umožňují snadný přechod na vyšší edice v případě zvýšení požadavků zákazníka. Doplňkové komponenty pro zvýšení výkonu, rozšiřitelnosti, dostupnosti, bezpečnosti a spravovatelnosti jsou k dispozici pro Oracle Database 11g Enterprise Edition. Základní vlastnosti Express Edition 10g Standard Edition One Standard Edition Enterprise Edition Maximum CPU 1 CPU 2 Patice 4 Patice Bez omezení RAM 1GB OS Max OS Max OS Max Velikost databáze 4GB Bez Bez Bez 23

24 omezení omezení omezení Windows Linux Unix 64 Bit Support Zdroj:ORACLE. Edice Databáze Oracle Oracle Database 11g [online]. [cit ]. Dostupný z www: < > Tabulka 2. Porovnání edicí Oracle Serveru Výběr databázového serveru Po provedení analýzy obou výše uvedených databázových serverů jsem zvolil MS SQL Server. Největší vliv na mé rozhodnutí měla skutečnost, že jsem chtěl mít celou aplikaci založenou na technologii od firmy Microsoft. MS SQL Server jsem zvolil rovněž proto, že jsem očekával větší vzájemné podpory vývojové platformy MS Visual Studia a MS SQL Serveru. Jsem toho názoru, a moje zkušenosti to jen potvrzují, že kombinování produktů od stejného výrobce je v každém případě uživatelsky výhodnější něž je implementace různých technologií Modelovací jazyk UML a CASE nástroje Modelovací jazyk UML (Unified Modeling Language) byl vytvořen ve snaze popsat objektově orientovanou analýzu a návrh. Používá se k vizualizaci, specifikaci, navrhování a dokumentaci programovaných systémů. Je v podstatě souhrnem grafických notací k vyjádření analytických a návrhových modelů. Tento jedinečný modelovací jazyk umožňuje modelovat jednoduché i složité aplikace pomocí stejné formální syntaxe. UML spadá do množiny CASE (Computer Aided Software Engineering) nástrojů, což jsou nástroje pro podporu analýzy a návrh aplikací. Cílem autorů UML bylo poskytnout uživatelům použitelný vizuální modelovací jazyk pro vytváření a výměnu smysluplných modelů. V rámci toho je třeba nabídnout mechanismy rozšiřitelnosti a specializace pro vyšší nabídku základních konceptů. Bylo nutné vytvořit specifikaci nezávislou na konkrétních programovacích jazycích a procesech vývoje a analýzy. Autoři poskytli uživatelům formální základ pro pochopení modelovacího jazyka. Zajistili podporu rozvoje objektových nástrojů a vývojových konceptů, jako jsou 24

25 komponenty (components), spolupráce (collaborations), pracovní rámce (frameworks) a vzory (patterns) Struktura jazyka UML Struktura jazyka UML je čtyřvrstevná. Na nejnižším stupni je vrstva uživatelských objektů, která obsahuje konkrétní instance (výskyty) jednotlivých specifických prvků zachycených v další vrstvě. V druhé modelové - vrstvě jsou konkrétní prvky modelované oblasti (např. třídy). Další vrstva, tzv. metamodelová, definuje, co patří do metamodelu. Nejvyšší vrstvou je vrstva metametamodelová, která definuje vlastnosti metamodelu, např. jak lze korektně vytvářet nové prvky modelu Jazyk OCL OCL (Object Constraint Language) je specifikační jazyk, který pomáhá např. s vyjádřením komplikovanějších integritních omezení a popisem vlastností operací. Takže jej potřebujeme všude tam, kde diagramy nestačí. OCL tedy v podstatě rozšiřuje UML o vyjádření podmínky např. předchozího či následného stavu objektu. OCL však, na rozdíl od UML, není založen na konkrétním metamodelu. To může být příčinou problémů s interpretací výrazů jazyka Diagramy UML UML lze rozdělit do dvou skupin. První skupina diagramů popisuje statickou strukturu aplikace. Druhá skupina popisuje různé aspekty dynamického chování Diagramy pro popis struktur Digram tříd (class diagram) třída je kategorie nebo skupina věcí, které mají podobné vlastnosti a stejné nepodobné chování. Kterýkoli prvek třídy (například ledniček) má určité vlastnosti, například značku, model, sériové číslo. Chování věcí v této třídě popisuje operace jako vložit jídlo, chladit, vyjmout jídlo. 25

26 Zdroj: vlastní zpracování. Obrázek 6. Ikona třídy v jazyku UML Na obrázku vidíme příklad notace jazyka UML, která zachycuje vlastnosti a chování ledničky. Obdélník je ikona, která představuje třídu. Je rozdělena do tří částí. Horní část obsahuje jméno, prostřední část obsahuje vlastnosti a dolní část označuje operace. Diagram tříd se skládá z více takových obdélníků, spojených čarami, které naznačují vzájemný vztah tříd. Diagramy tříd jsou užitečné při analýzách. Diagram objektů (object diagram) objekt je instance třídy, tedy určitá věc, která má specifické hodnoty vlastností a chování. Například naše lednička může mít značku Electrolux, název modelu ELX 350, sériové číslo EL350XA25. Zdroj: vlastní zpracování. Obrázek 7. Ikona objektu v jazyku UML Ikonou je obdélník, stejně jako u ikony tříd, pouze jméno je podtržené. Jméno konkrétní instance je vlevo od dvojtečky, jméno třídy je vpravo. Diagram komponent (component diagram) - představuje znázornění komponent budoucího počítačového systému. Komponenta může být jakákoliv implementace třídy (nebo více tříd). Diagram komponent tedy zachycuje strukturu budoucího systému. Komponenty mají tu výhodu, že, jsou-li dobře navržené, mohou být opakovaně používány v různých projektech. Komponenty se v diagramu komponent znázorňují obdélníkem se dvěma malými obdélníky položenými přes jeho levou stranu. 26

27 Zdroj: vlastní zpracování. Obrázek 8. Ikona komponent v jazyku UML Komponenty komunikují s okolím přes rozhraní. Jedná se o sadu operací vypovídajících o chování komponenty. Vztah mezi komponentou a jejím rozhraním se nazývá realizace. Diagram nasazení (deployment diagram) ukazuje fyzickou architekturu počítačového systému. Pomocí něho je možné zobrazit počítače a zařízení, znázornit jejich vzájemná připojení a také software, který je na určitém zařízení nainstalován. Každý počítač je zde nakreslen jako kvádr a vzájemná připojení k jiným počítačům jsou čáry, které kvádry spojují. Zdroj: vlastní zpracování. Obrázek 9. Ikona nasazení v jazyku UML Diagramy pro popis chování Diagram případů užití (use case) popis chování systému z pohledu uživatele. Pro vývojáře systému je to cenný nástroj. Osvědčený způsob shromáždění údajů o požadavcích systému z hlediska uživatele. Obzvláště důležité je to v případě, kdy je nutné vytvořit systém, který by mohli používat normální lidé nejen z oboru informačních technologií. Zdroj: vlastní zpracování. Obrázek 10. Diagram případů užití v jazyku UML 27

28 Figura člověka představuje uživatele, který se nazývá participant (účastník). Elipsa znázorňuje případ užití. Účastníkem či entitou, která zahajuje případ užití, může být jak osoba, tak i jiný systém. Diagram sekvencí (sequence diagram) diagram tříd a diagram objektů představují statickou informaci. Ve funkčním systému však objekty vzájemně reagují a působí na sebe. Tyto interakce se objevují průběžně. Diagram sekvencí jazyka UML ukazuje časovou dynamiku interakcí. Zdroj: vlastní zpracování. Obrázek 11. Diagram sekvencí v jazyku UML Stavový diagram (statechart diagram) v každém daném časovém okamžiku je objekt v určitém stavu v průběhu svého životního cyklu. Ke změně stavu může dojít konkrétní událostí nebo i pouhým plynutím času. Každý objekt má svůj počáteční stav a může mít konečný stav. Stav se znázorňuje obdélníkem se zaoblenými rohy. Podobně jako o znázornění tříd je možné obdélník rozdělit na tři části, a to na název, stavové proměnné a činnosti stavu. 28

29 Zdroj: vlastní zpracování. Obrázek 12. Stavový diagram v jazyku UML Diagram činností (activity diagram) představuje sekvenční popis činností tak, jak postupně probíhají v systému. Vzniká rozšířením stavového diagramu. Diagram činností zachycuje především činnosti znázorněné ve stavovém diagramu. Činnosti se znázorňují jako obdélníky se zaoblenými rohy. Po dokončení každé činnosti následuje automatický přechod na další činnost, což se zachytí šipkou. Začátek a konec diagramu činností se, podobně jako ve stavovém diagramu, znázorňuje pomocí kroužků. Mnohdy je nutné rozhodnout, jaká činnost se bude vykonávat na základě určitých podmínek. Dochází tedy k větvení diagramu. Znázornit se to dá dvěma způsoby. Buď vychází možné cesty přímo z některé činnosti, nebo se větvení znázorní pomocí malého kosočtverce, ze kterého pak větvené šipky vychází. Podmínky se uvádějí u větví (šipek) v hranatých závorkách. Zdroj: vlastní zpracování. Obrázek 13. Diagram činností v jazyku UML Diagram spolupráce (collaboration diagram) prvky vzájemně spolupracují, aby splnily úkol systému a v jazyce pro modelování musí existovat způsob, jak tuto skutečnost vyjádřit. Je podobný sekvenčnímu diagramu, ale interakci mezi objekty zachycuje odlišným způsobem. Oba typy diagramů obsahují stejné informace a je možné převést sekvenční diagram na diagram spolupráce a naopak. Odlišnost tkví v tom, že sekvenční 29

30 diagram klade důraz na pořadí jednotlivých událostí, diagram spolupráce spíše zdůrazňuje uspořádání spolupracujících objektů. Zdroj: SCHMULLER, Josef. Myslíme v jazyku UML: Knihovna programátora. Praha : Grada, s. ISBN Obrázek 14. Diagram spolupráce v jazyku UML Diagram spolupráce je rozšíření diagramu objektů. Kromě vztahů mezi jednotlivými objekty zachycuje také zprávy, které si objekty zasílají. Zpráva se znázorňuje jako šipka vedle asociační čáry. Zpráva může obsahovat parametry, ty se zapisují do závorek. U zpráv je možné vyjádřit, v jakém pořadí se zasílají. Zachytí se to číslem před názvem zprávy odděleném dvojtečkou CASE nástroje Zkratka CASE je označením pro Computer Aided Software Engineering nebo také Computer Aided Systems Engineering, což v překladu znamená počítačem podporované softwarové (systémové) inženýrství nebo-li vývoj software s využitím počítačové podpory. CASE nástroje jsou nástroje, které primárně umožňují: modelování IT systému pomocí diagramů (člověk lépe chápe obrázek než složitě psané slovo), generování zdrojového kódu z modelu (usnadňuje práci programátorům), zpětné vytvoření modelu podle existujícího zdrojového kódu (reverse engeneering), synchronizaci modelu a zdrojového kódu, vytvoření dokumentace z modelu. CASE nástroje jsou postaveny tak, aby podporovaly týmovou práci při vývoji systému, zajišťují sdílení rozpracovaných fragmentů, správu vývoje, sledují konzistenci modelu systému, automatizují některé 30

31 procesy, hlídají dodržování zvolené metodiky, některé umožňují řízení celého životního cyklu aplikací. Úspěch využití CASE nástrojů záleží mimo jiné na vybrané metodice. V současné době existuje nespočet CASE nástrojů, které plní různé funkce, nepomáhají již pouze vývojářům, ale také např. v procesu řízení firmy, kdy se zanalyzují stávající firemní procesy a pomocí CASE nástrojů se potom na základě analýzy vymodelují tak, jak by tyto procesy měly správně fungovat. Dnes většina CASE nástrojů představuje velké aplikace, které je možno využít ve všech fázích procesu vývoje software. U většiny nástrojů je jádrem univerzální modelovací jazyk UML (Unified Modeling Language). Pokud se podíváme na CASE nástroj, první co uvidíme, je grafické rozhraní. Zde je možno modelovat nejrůznější typy diagramu. Uveďme alespoň ty nejběžnější: DFD diagramy, které dovolují provádět funkční analýzu; Class diagramy pro modelování tříd; STD diagramy; procesní diagramy a další. Podpora používání těchto nástrojů byla jedním z podnětů pro vznik CASE nástrojů. Hlavním důvodem byla častá aktualizace diagramu, kterou, při vyšší složitosti diagramu, nebylo možné provádět jen tak v ruce. Při používání CASE nástrojů, při podpoře návrhu a vývoje softwarové aplikace či informačního systému je potřeba dodržovat určitá pravidla a postupy, které zaručí smysluplnost a efektivitu. Jedná se o metodiky, jakožto souhrny postupů a metod, které určují co, kdo a kdy se má řešit. Podpora metodiky prostředkem CASE vyžaduje především, aby tento prostředek pokrýval všechny fáze životního cyklu projektu. Tyto prostředky se nazývají integrovaná prostředí pro vývoj aplikací. Jejichž hlavní charakteristikou je pevná svázanost s konkrétní metodikou. Takovéto nástroje mají pak výhodu integrity všech metod, technik a nástrojů v kontextu celého životního cyklu projektu. Další skupinou jsou prostředky označované jako běžné nástroje (tools), které podporují pouze některé metody a techniky z životního cyklu projektu. Od integrovaných prostředí se pak liší nezávislostí na konkrétní metodice. Z toho, jaké jsou obecné funkce, vlastnosti CASE nástrojů a požadavky na ně vyplývá, z jakých komponent se tyto systémy skládají. Mezi důležité funkce a vlastnosti CASE patří: 31

32 Konzistentní grafické ovládací prostředí (podle zásad tvorby GUI) jednotný vzhled obrazovek, popisků, tlačítek, jednotné ovládání, použití symbolických ikon apod. Centrální databáze (repository) pro uchování informací o všech objektech IS (tímto způsobem se zaručí, že informace je použitelná v libovolném dalším kroku projektování). Prostředky verifikace konzistentnosti dat a podpora normalizace dat. Textový editor pro popis jednotlivých objektů pro účely technické a uživatelské dokumentace systému, možnost jejího přímého generování ze systému. Možnost rychlého návrhu uživatelských obrazovek včetně simulace vstupů a výstupů (je vyžadováno pro prototyping). Generátor zdrojových programů (pro případy častého znovupoužití daného kódu). Export / import dat pro práci s modely a dokumentací, které byly vytvořeny v jiných programech nebo jsou v jiných programech dále využívány a zpracovávány. Nejznámější používané CASE nástroje: Powerdesigner (Sybase) Oracle Designer (Oracle) Case Studio Rational Rose MS Visio 32

33 4. Použité technologie při vývoji aplikace 4.1. Vývoj v prostředí ASP.NET V této kapitole se budu zabývat sestavováním webových stránek na základě objektů v kompilovaném prostředí. Důležitým rozdílem je skutečnost, že při užití serverových ovládacích prvků ASP.NET nezadáváme kód HTML. Na místo toho musíme specifikovat funkčnost, kterou požadujeme, a ASP.NET se sám rozhodne, jak se výstup prohlížeči odešle. ASP.NET každý požadavek prozkoumá a zjistí, od jakého typu prohlížeče prochází, aby následně vyprodukoval kód HTML, specifický pro daný prohlížeč. To vše je možné díky údaji User Agent přejímanému z hlavičky požadavku http, který obsahuje informace o prohlížeči Serverové ovládací prvky ASP.NET nabízí dva různé typy serverových ovládacích prvků serverové ovládací prvky jazyka HTML a webové serverové ovládací prvky. Tyto typy se výrazně liší, ale v praxi mají větší využití webové ovládací prvky. Serverové ovládací prvky jazyka HTML použijeme při převádění webových stránek ASP na ASP.NET, pokud je pro nás důležitá rychlost dokončení převodu. Dále jsou serverové ovládací prvky HTML výhodné tehdy, pokud upřednostňujeme programovací model bližší stylu HTML nebo chceme explicitně řídit kód generovaný pro prohlížeč. Do stránek můžeme vložit libovolný kód HTML nebo použít kód HTML umístěný na stránku jako určitý serverový ovládací prvek. Kód HTML přeměníme na serverový ovládací prvek rozšířením o runat= server. Poté s ním můžeme pracovat jako s každým jiným webovým serverovým ovládacím prvek Naproti tomu webovým serverovým ovládacím prvkům dáme přednost v případě, že požadujeme bohatší funkčnost za účelem naplnění komplikovaných požadavků na stránku. K jejich použití sáhneme i při vývoji webových stránek, které budou zobrazovány v různých typech prohlížečů, a potřebujeme tedy generování odlišného kódu. Webové ovládací prvky mají výhodu v tom, že nejsou explicitně navázány na specifické elementy HTML, ale úzce souvisí s určitou funkčností, o kterou usilujeme. Jsou vůbec nejpoužívanějšími komponentami a nabízejí větší úroveň funkčnosti než elementy HTML, na rozdíl od nich mohou na webové stránky přinést pokročilé schopnosti a funkčnost. 33

34 Kupříkladu vložit na webové stránky kalendář bylo dříve velmi složité, až webové serverové ovládací prvky ASP.NET tento úkol bez problémů zvládnou, a to pomocí jediného řádku kódu Vzorové stránky Vzory stránek (master pages) jsou vlastně šablony, které lze použít jako základ libovolného počtu dalších obsahových stránek ASP.NET v aplikaci. Využívají tzv. vizuální dědičnost, což je výrazné vylepšení webových stránek, zvyšující produktivitu. V praxi to znamená, že pomocí těchto šablon můžeme sestavovat webové stránky zahrnující oblasti záhlaví, navigace a zápatí tedy společné položky stránek. Zdroj: vlastní zpracování. Obrázek 15. Ukázka rozvržení stránek využitím vzorových stránek v ASP.NET (master page). Při práci se vzory stránek vytváříme hlavní soubor, který je šablonou, na niž se odkazují podstránky (stránky obsahu). Vzory stránek používají jako příponu souboru.master, stránky obsahu využívají příponu.aspx a jsou deklarovány ve své direktivě Page. Stránky obsahu se programují v ContentPlaceHolder. Což je třída ze jmenného prostoru System.Web.UI.WebControls. 34

35 Stránka obsahu (kontent page) doplňuje obsah do master page, která je určena v direktivě Page, a to pomocí atributu MasterPageFile. Dále je do direktivy Page přidán atribut Title, protože samotný element title se nachází v master page, tudíž není možné titulek nastavovat přímo (z tohoto důvodu je také nutné, aby element head v master page obsahoval runat="server"). Jednotlivé fragmenty stránky se do master page vkládají pomocí ovládacího prvku asp:content, kterému je potřeba předat ID ContetnPlaceHolderu z master page pomocí atributu ContetnPlaceHolderID Analýza rizik V současnosti je velmi moderní vypracovávat analýzu rizik ať již komplexní (např. firemní kultura) nebo omezenou na konkrétní segment např. jako aplikaci v mém případě. Existuje mnoho metod analýz rizik. Jejich úspěšnost závisí ne na metodě, ale na jejím aplikování do praxe a na validitě vložených údajů. Na počátku analýzy rizik je třeba identifikovat a ocenit aktiva. Já jsem použil hodnotící škálu 1-5 bodů, přičemž nejvyšší hodnota náleží nejdůležitějším aktivům. Identifikaci aktiv jsem zobrazil v tabulce. Typ aktiv Identifikovaná aktiva Hodnota aktiva Informace Databáze serveru 5 Hardware Server 5 PC 2 Software Operační systém (WXP, Vista) 3 Databázový systém (SQL) 4 Služby Připojení serveru 5 Zdroj: vlastní zpracování. Tabulka 3. Tabulka identifikace aktiv. Intranet 2 Když jsem si stanovil hodnotu aktiv, pokračoval jsem v analýze identifikací hrozeb a jejich pravděpodobnosti. Hodnotící škálu jsem použil obdobnou jako výše, s tím, že v tomto případě nejvyšší hodnota odpovídá nejvyšší pravděpodobnosti. Pro přehlednost jsem si vytvořil opět tabulku. 35

36 Identifikovaná hrozba Pravděpodobnost hrozby Selhání hardwaru 3 Selhání softwaru 3 Hacking 5 Selhání připojení k internetu 4 Zdroj: vlastní zpracování. Tabulka 4. Tabulka hrozeb. Na základě výše uvedených dat jsem vypracoval analýzu rizik, která využívá matici zranitelnosti a rizik. V tabulce uvádím matici zranitelnosti využívám data z předchozích dvou tabulek a přidávám další proměnnou zranitelnost daného aktiva. Nejsou vyplněny všechny buňky, neboť některá aktiva a hrozby nemají přímou vazbu hrozba nemá vliv na aktivum. Popis aktiva Hodnota aktiva (A) Databáze serveru Server PC Operační systém Databázový systém Připojení serveru Intranet Popis hrozby Pravděpodobnost hrozby (T) Selhání hardwaru Selhání softwaru Hacking Selhání internetu Zdroj: vlastní zpracování. Tabulka 5. Tabulka obsahující matici zranitelnosti a rizik. V poslední řadě je třeba vypočítat míru rizika. K tomu se používá vzorec R = T * A * V, kde R je míra rizika, T je pravděpodobnost vzniku hrozby, A je hodnota aktiva a V je zranitelnost daného aktiva. Vypočtenou hodnotu míry rizika jsem pak doplnil do matice rizik. 36

37 Popis aktiva Hodnota aktiva (A) Databáze serveru Server PC Operační systém Databázový systém Připojení serveru Intranet Popis hrozby Pravděpodobnost hrozby (T) Selhání hardwaru Selhání softwaru Hacking Selhání internetu Zdroj: vlastní zpracování. Tabulka 6. Tabulka znázorňující míru rizik. To však není poslední krok analýzy, je nutné ještě stanovit hranice pro míru rizika nízká, střední a vysoká. Já jsem si stanovil hranice 80 pro vysoká rizika a 25 pro nízká. Výsledkem mé analýzy je tedy zjištění, že v mé aplikaci hrozí jedno vysoké riziko, pět středních a dvě nízká rizika Vývoj v prostředí ADO.NET Normalizace databázového modelu Proč normalizovat? Normalizace je odstranění redundantních (opakujících) se dat, omezení složitosti (rozložení složité relace na dvojrozměrné tabulky) a zabránění tzv. aktualizačním anomáliím (např. abychom smazáním všech knih autora nepřišli o data o autorovi). Toto by mělo vést k přehlednější, rozšiřitelnější a výkonnější databázi. Normalizace by měla vést k vzniku tabulek, které lze snadno udržovat a efektivně se na ně dotazovat. Normalizované schéma musí zachovat všechny závislosti původního schémat a relace musí zachovat původní data, což znamená, že se musíme pomocí přirozeného spojení dostat k původním datům. Obecně můžeme pro relační databáze 37

38 konstatovat, že čím jsou tabulky normalizovanější, tím lépe by se s nimi z hlediska aplikační logiky mělo pracovat. Normální formy: 1.NF První normální forma 2.NF Druhá normální forma 3.NF Třetí normální forma 4.NF Čtvrtá normální forma 5.NF Pátá normální forma První normální forma, hovoří o odstranění opakovaných skupin dat a zaručuje tedy atomičnost neboli nedělitelnost dat, tzn. že data v tabulce jsou samostatná a nezávislá a hodnoty z pohledu databáze již dále nedělitelné. Hodnota sloupce také nesmí být relací. Pokud databázová tabulka tyto podmínky nesplňuje, je potřeba ji rozložit (tabulka je v takzvané nulté formě). Jmeno Karel Vonásek Adam Malý Zdroj: vlastní zpracování. Tabulka 7. NFNF non first normal form Adresa Krátká 12, Praha Šikmá 3, Brno Po úpravě dostaneme níže uvedenou tabulku. Jmeno Prijmeni Ulice Mesto Karel Vonášek Krátká 12 Praha Adam Malý Šikmá 3 Brno Zdroj: vlastní zpracování. Tabulka 8. Úprava NFNF a 1NF Druhá normální forma je dodržena tehdy, pokud tabulka splňuje podmínku 1NF a každý atribut, kromě primárního klíče, musí být úplně závislý na celém primárním klíči. Druhá normální forma se proto týká jen tabulek, které mají více primárních klíčů. Když má tabulka jen jeden primární klíč, podmínka pro 2NF je splněna automaticky. 38

39 Nazev Vyrobce Cena Kontakt Lopata Kafka s.r.o. 150 Sekera M&M s.r.o. 134 Motyka Kafka s.r.o. 70 Zdroj: vlastní zpracování. Tabulka 9. Tabulka s více primárními klíči Pro daný případ musíme vytvořit dvě nové tabulky. Vyrobce_ID Nazev Cena 1 Lopata Sekyra Motyka 70 Zdroj: vlastní zpracování. Tabulka 10. Upravena tabulka na 2NF Vyrobce_ID Vyrobce Kontakt 1 Kafka s.r.o. kafka@kafka.cz 2 M&M s.r.o. obchod@mm.cz Zdroj: vlastní zpracování. Tabulka 11. Upravena tabulka na 2NF Tabulka je v třetí normální formě tehdy, když je v druhé normální formě a zároveň neexistuje závislost neklíčových sloupců tabulky. Tedy v této formě se nachází tabulka, splňuje-li předchozí dvě formy a žádný z jejich atributů není tranzitivně závislý na klíči. Tranzitivní závislost je taková závislost, mezi minimálně dvěma atributy a klíčem, kde jeden atribut je funkčně závislý na klíči a druhý atribut je funkčně závislý na prvním atributu. Zamestanec_ID Jmeno Prijmeni Mesto Funkce 1 Karel Nový Praha Ředitel 2 Josef Velký Jihlava programátor 3 Marie Vysoká Praha programátor Zdroj: vlastní zpracování. Tabulka 12. Tabulka nesplňující 3NF 39

40 Zamestanec_ID Jmeno Prijmeni Mesto_ID Funkce_ID 1 Karel Nový 1 Ředitel 2 Josef Velký 2 programátor 3 Marie Vysoká 1 programátor Zdroj: vlastní zpracování. Tabulka 13. Upravená tabulka na 3NF Mesto_ID Mesto 1 Praha 2 Jihlava Zdroj: vlastní zpracování. Tabulka 14. Upravená tabulka na 3NF Funkce_ID Funkce 1 ředitel 2 Programátor Zdroj: vlastní zpracování. Tabulka 15. Upravená tabulka na 3NF Čtvrtá normální forma se zabývá vztahy uvnitř složeného primárního klíč. Pokud je v tabulce složený primární klíč, může se stát, že některé hodnoty tohoto klíče jsou na sobě nezávislé, ale tím, že spolu tvoří klíč, vzniká falešná souvislost mezi těmito hodnotami a nemohou existovat nezávisle na sobě, což není v souladu s modelovanou realitou. 4.NF proto vyžaduje, aby klíč tvořily jen ty hodnoty, které mají skutečnou vzájemnou souvislost. Další definice říká: Tabulka je ve čtvrté normální formě tehdy, když je v třetí normální formě a popisuje jen jeden fakt anebo souvislost. Tabulka se nachází v páté normální formě, když je ve čtvrté normální formě a není do ní možné přidat nový sloupec, případně skupinu sloupců bez toho, aby se rozpadla na několik dílčích tabulek Přístup k datům z databáze Technologie ADO.NET velmi usnadňuje práci ve vrstvách. Tento styl preferujeme při vývoji aplikace, která interaguje s daty běžným modelem je rozdělení na aplikační vrstvu (uživatelské rozhraní), vrstvu datových služeb a vlastní databázi. K přístupu k datům z databáze musíme použít následující metody. ExecuteNonQuery - se používá pro příkazy UPDATE, INSERT a DELETE - jedinou vrácenou hodnotou je počet ovlivněných záznamů, to znamená, že tato metoda spustí příkaz, ale nevrátí výstup. 40

41 using (objconn) { objconn.open(); SqlCommand command = objconn.createcommand(); command.commandtype = CommandType.StoredProcedure; command.commandtext = "ORDER_UPDATE"; command.parameters.add(new SqlParameter("@Customer_ID", SqlDbType.BigInt, 4, "ID_CUSTOMER")); command.parameters["@customer_id"].value = id_customer; command.parameters.add(new SqlParameter("@Order_ID", SqlDbType.BigInt, 4, "ID_ORDER")); command.parameters["@order_id"].value = id_order; command.parameters.add(new SqlParameter("@OrderState_ID", SqlDbType.BigInt, 4, "ID_ORDER_STATE")); command.parameters["@orderstate_id"].value = id_orderstatus; command.executenonquery(); } objconn.close(); ExecuteReader - spustí příkaz a vrátí objekt typu <poskytovatel>datareader, který lze použít v iteraci vrácených záznamů. objconn.open(); SqlCommand cmd = new SqlCommand("LOGIN", objconn); cmd.commandtype = CommandType.StoredProcedure; using (SqlDataReader dr = cmd.executereader()) { while (dr.read()) { If ((customer.logon == (string)dr["login"]) && (hash == string)dr["password"])) { customerid = Convert.ToInt32(dr["ID_CUSTOMER"]); } } dr.close(); } objconn.close(); ExecuteScalar - spustí příkaz a vrátí jedinou hodnotu objekt, který můžeme konvertovat na příslušný typ string select = "SELECT COUNT(*) FROM CUSTOMER"; SqlConnection conn = new SqlConnection(source); Conn.Open(); SqlCommand cmd = new SqlCommand(select,conn); Object o = cmd.executescalar(); Console.WriteLine(o); 41

42 Volání uložených procedur Při volání uložené procedury s objekty Command stačí definovat název uložené procedury, poté přidat definici jednotlivých parametrů a spustit příkaz pomocí jedné z metod popsaných výše. Volání uložené procedury, která nic nevrací, je nejjednodušší možností. Jde například o aktualizaci či odstranění záznamu Třída DataReader Třída DataReader představuje nejjednodušší a nejrychlejší způsob výběru dat ze zdroje dat, ale zároveň poskytuje nejméně možností. Instanci typu DataReaderu nemůžeme vytvořit přímo. Instanci tohoto typu vrací metoda ExecuteReader() objektu typu Command příslušné databáze. Např.: SqlCommand cmd = new SqlCommand("LOGIN", objconn); cmd.commandtype = CommandType.StoredProcedure; using (SqlDataReader dr = cmd.executereader()) Třída DataSet Třída DataSet byla navržena jako odpojený datový kontejner. Nepracuje s informacemi o databázových připojeních. Ve skutečnosti nemusí data uchovávaná v objektu typu DataSet nutně pocházet z databáze. Může se stejně dobře jednat o záznamy ze souboru ve formátu CSV. Třída obsahuje sadu datových tabulek. Každá z tabulek má sadu datových sloupců a datových řádků. Když definujeme datové sady se všemi třídami DataTable, DataColumn a Constraint a dalšími požadovanými součástmi, je nutno zaplnit instanci typu DataSet. Čtení dat z externího zdroje a jejich vložení do datové sady lze zajistit dvěma hlavními způsoby. Konkrétně buď pomocí DataAdapteru, nebo pomocí načtení souboru XML. String select = ("SELECT ContactName, CompanyName FROM Customers"); SqlSonnection conn = new SqlConnection(source); SqlDataAdapter da = new SqlDataAdapter (select, conn); DataSet ds = new DataSet(); da.fill(ds, "Customers"); foreach(datarow row in ds.tables["customers"].rows) 42

43 Console.WriteLine(" {0}, {1}", row [0], row[1]); Třída SqlDataAdapter použije příkaz SQL a zaplní tabulku v instanci typu DataSet s názvem Customer. Dále je v kódu znázorněno použití indexeru DataRow pro přístup k hodnotám z příslušného řádku. Hodnoty daného sloupce lze načíst pomocí jednoho z několika přetížených indexerů. Tyto indexery umožňují načíst hodnotu na základě čísla sloupce, názvu nebo objektu DataColumn. 43

44 5. Návrh a realizace internetového obchodu 5.1. Základní požadavky na aplikaci Nejdříve je nejdůležitější specifikovat základní požadavky na danou aplikaci či předpoklady případně podmínky, ze kterých je třeba vycházet při jejich realizaci. Internetový obchod poběží na samostatném hostovaném serveru. Coby databázový server jsem využil MS SQL 2005 od firmy Microsoft. Tento server jsem nainstaloval na počítač, který splňuje běžné požadavky na databázový server. Minimální požadavky, které jsou kladeny na MS SQL Workgroup, tzn. dvoujádrový procesor s pamětí 3GB RAM, pevný disk je požadován minimálně 100GB, ale samozřejmě, že na kapacitě disku záleží podle objemnosti dat pro internetový obchod. Jelikož jsem si vybral platformu Microsoft, musí být na serveru nainstalován.net Framework. Dalším požadavkem je, aby data byla dostupná, aby bylo zboží aktuální, to znamená odpovídat stavu zásob ve skladu. Toto je řešeno pomocí přídavné aplikace Skladová evidence. Skladová evidence je připojena na lokální sít uživatele. Sklad musí mít k dispozici aktuální stav zadaných objednávek. Podrobnou funkčnost popíši podrobněji v následujících kapitolách. 44

45 Pohled z hlediska zákazníka Nejprve bych znázornil zabezpečení funkcí internetového obchodu z pohledu zákazníka v Use Case diagramu. Zdroj: vlastní zpracování. Obrázek 16. Diagram případů užití znázorňující zákazníkovi scénáře Popis scénářů k jednotlivým případům použití. Registrace do systému: Slouží k zaregistrování nového zákazníka do systému. Zákazník otevře úvodní stránku internetového obchodu. Poté klikne na odkaz Registrace. Systém zobrazí stránku registrace a zákazník vyplní požadované údaje. Systém zobrazí informativní stránku o průběhu registrace. Výstupem je úspěšně registrován zákazník v systému. 45

46 Přihlášení do systému: Slouží k přihlášení registrovaného zákazníka do systému. Vstupní podmínkou je splnění požadavku předchozí registrace. Zákazník otevře úvodní stránku internetového obchodu, vyplní přihlašovací údaje, Přihlašovací jméno a Heslo, a stiskne tlačítko Přihlásit. Pokud jsou vyplněné údaje správně, systém zobrazí domovskou stránku obchodu. V opačném případě je nutno opakovat scénář. Výstupem je zobrazena domovská stránka obchodu a je správně zobrazeno jméno přihlášeného uživatele. Úprava údajů: Slouží k úpravě či doplnění údajů zákazníka. Vstupní podmínkou je přihlášení do systému. Zákazník klikne na odkaz Změna údajů. Systém zobrazí stránku Úprava údajů zákazníka. Zákazník provede příslušné změny a vyplní heslo v poli Původní heslo. V případě byla-li součástí úprav změna hesla, zde je nutno uvést původní heslo. Poté zákazník stiskne tlačítko Potvrdit změny. Systém zobrazí informativní stránku o výsledku úpravy. Výstupem je, že údaje jsou úspěšně změněny. Prohlížení zboží: Slouží k prohlížení zboží v internetovém obchodě. Vstupní podmínkou je přihlášení do systému. Zákazník stiskne odkaz Zobrazit vše nebo odkaz na konkrétní kategorii zboží. Systém zobrazí stránku Nabídka zboží (veškeré zboží nebo vybranou kategorii). Zákazník může zboží setřídit podle názvu (implicitně), ceny případně kategorie a to vzestupně (implicitně) nebo sestupně. Mezi stránkami seznamu je možno se pohybovat pomocí navigačních šipek v dolní části stránky. Stisknutím obrázku zboží nebo odkazu Podrobnosti se zobrazí stránka s detailním popisem zboží. Nákup zboží: Slouží k objednání zboží v internetovém obchodě. Vstupní podmínkou je přihlášení do systému. Na stránce Detailní informace o zboží zákazník stiskne odkaz Přidat do košíku. Systém zobrazí stránku Nákupní košík a zboží je přidáno do košíku. Pokud chce zákazník vybírat další zboží, stiskne 46

47 tlačítko Pokračovat v nákupu a vrátí se do seznamu zboží. Pokud má zákazník vybráno všechno zboží, přepne se na stránku Nákupní košík (odkaz Nákupní košík nebo přidáním posledního zboží). V Nákupním košíku může zákazník provést další operace jako, vyprázdnit košík příslušným tlačítkem, upravit množství jednotlivých položek v košíku a tlačítkem Přepočítat vypočítat výslednou cenu, objednat zboží stiskem tlačítka Objednat. Stiskem tlačítka objednat se zákazník přesune na stránku Objednávka. Pokud zákazník stiskne tlačítko Zrušit objednávku, je objednávka zrušena, nákupní košík smazán a je zobrazena informativní stránka o zrušení objednávky. Pokud zákazník stiskne tlačítko Potvrdit objednávku, je objednávka odeslána a systém zobrazí potvrzení objednávky. Výstupem je, že systém potvrdí objednávku nebo její zrušení. Sledování zboží: Slouží ke sledování stavu vlastních objednávek zákazníka. Vstupní podmínkou je přihlášení do systému. Zákazník klikne na odkaz Moje objednávky, systém zobrazí stránku Moje objednávky, která zobrazuje přehled všech objednávek zákazníka. Odhlášení ze systému: Slouží k odhlášení zákazníka. Vstupní podmínkou je přihlášení do systému. Zákazník klikne na odkaz Odhlásit. Systém odhlásí zákazníka a zobrazí úvodní stránku internetového obchodu. Výstupem je, že zákazník je odhlášen. 47

48 Pohled z hlediska skladníka Funkčnost z hlediska provozovatel zajišťuje Skladová evidence. Use Case diagramu je zobrazen na následujícím obrázku. Zdroj: vlastní zpracování. Obrázek 17. Diagram případů užití znázorňující skladníkovi scénáře Popis scénářů k jednotlivým případům použití. Přihlášení do systému: Slouží k přihlášení do Skladové evidence. Uživatel spustí aplikaci, vyplní uživatelské jméno a heslo. Tlačítkem Login se přihlásí. Systém zkontroluje správnost údajů a v kladném případě otevře hlavní okno aplikace. Pokud nejsou údaje správné, vyzve systém k opravě a scénář se opakuje. Výstupem je přihlášení uživatele do aplikace. Vyskladnění objednávky: Slouží k vyskladnění objednávky. Vstupní podmínkou je přihlášení do systému. Skladník otevře přehled objednávek a vybere si příslušnou objednávku. Připraví veškeré zboží pro vybranou objednávku. Tlačítkem Vyskladnit/ Odeslat potvrdí, že zboží je připraveno. Systém změní stav objednávek na Vyskladněno a definitivně odečte příslušné množství jednotlivých položek ze stavu skladu. Výstupem je objednávka ve stavu Vyskladněno. 48

49 Odeslání objednávky: Slouží k odeslání objednávky. Vstupní podmínkou je, přihlášení do systému a objednávka je vyskladněna. Skladník otevře přehled objednávek. Vybere příslušnou vyskladněnou objednávku předanou k odeslání. Tlačítkem Vyskladnit/ Odeslat potvrdí, že zboží je odesláno. Systém změní stav objednávek na Odesláno. Výstupem je objednávka ve stavu Odesláno. Export dat: Slouží k manuálnímu exportu dat. Vstupní podmínkou je, přihlášení do systému. Skladník otevře agendu Export dat. Nastaví období, za které chce data exportovat a následně spustí export. Výstupem jsou exportovaná data do formátu XML Návrh datového modelu v MS SQL Tabulky Úplně nejdříve jsem si tedy navrhl databázovou strukturu. Jednotlivé tabulky z níže uvedeného diagramu popíši podrobněji. Zdroj: vlastní zpracování. Obrázek 18. Pohled na navrženou datové strukturu databáze. V této aplikaci jsou nejdůležitější čtyři tabulky CUSTOMER, ORDERS ORDER_ITEM, GOODS. Tabulka ORDER_ITEM tvoří jádro internetového obchodu, v běžné představě si lze tuto tabulku představit jako nákupní košík, ve kterém je číslo 49

50 objednávky a k ní veškeré objednané zboží a jeho počet. Tabulka GOODS obsahuje všechny položky zboží, které lze objednat pře internetový obchod. U zboží lze jednoduše přes spojenou tabulku rozlišovat kategorii zboží (CATEGORY), případně měrnou jednotku (CURRENCY_UNIT), např.: kus, baleni, litry. Tabulka ORDERS zase obsahuje všechny objednávky, které byly provedeny zákazníkem. Ke každé objednávce je přiřazen aktuální stav objednávky a zákazník. Tabulka CUSTOMER obsahuje seznam všech zaregistrovaných zákazníků, případně také uživatelů s rolí skladník, k této tabulce jsou připojeny další tabulky ADDRESS a ROLES. V tabulce ROLES jsou definovány role jako zákazník a skladník Uložené procedury Uložené procedury plní v této aplikaci velmi důležitou funkci. Jsou zde využívány ke každému spojení z jednotlivé aplikace, přes datovou vrstvu DAO (DataAccessObject. Velká výhoda uložených procedur je, že se nemusí měnit kód ve vývojovém prostředí C#, ale pouze nad databázovým serverem. Pouze musíme splňovat vstupní podmínky (počet vstupních parametrů). košíku Uvedu zde jednoduché příklad uložené procedury použité pro vytvoření Nákupního set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO ALTER PROCEDURE bigint AS BEGIN bigint bigint --Vybere mi ID objednavky pokud zakaznik ma otevrenou objednavku = ID_ORDER FROM dbo.orders WHERE ID_CUSTOMER AND ID_ORDER_STATE = 1 IF (@IdOrder IS NULL) --Pokud zakaznik nema otevrenou objednavku zalozi novou! BEGIN INSERT INTO dbo.orders (ID_CUSTOMER, DATE, ID_ORDER_STATE) VALUES(@Customer_ID, getdate(), 1) = SCOPE_IDENTITY() END --Vlozi zbozi do nakupniho kose = AMOUNT FROM dbo.order_item WHERE ID_GOODS=@Goods_ID AND ID_ORDER=@IdOrder IF (@Amount IS NULL) 50

51 BEGIN END ELSE BEGIN END END INSERT INTO dbo.order_item (ID_ORDER, ID_GOODS,AMOUNT) 1) UPDATE dbo.order_item SET WHERE AND Ve zdrojovém kódu STORED PROCEDURES v naší databázi je nejprve vidět jméno uložené procedury: SHOPBASKET_CREATE, dále tam jsou uvedeny vstupní dva Nejprve před vytvořením nového nákupního košíku je proveden test, zda konkrétní uživatel již nemá otevřenou (nedokončenou objednávku). Pokud zákazník dosud nemá otevřenou objednávku (tabulka ORDER), vytvoří se mu nová objednávka (tabulka ORDERS). Poté se otestuje, zda je zboží již evidováno, zjišťuje se počet konkrétního zboží v konkrétní nákupním košíku (tabulka ORDER_ITEM). Pokud v tabulce ORDER_ITEM není zboží evidováno, přiřadí se do sloupce AMOUNT jednička, v případě, že v tabulce ORDER_ITEM je již konkrétní zboží evidováno připočte se k aktuálnímu počtu jednička. Toto zaručuje, že jednotlivé zboží bude mít v dané objednávce pouze jeden záznam, ale vždy aktuální počet množství. následovně: Volání této procedury v prostředí C# probíhá přes datovou vrstvu DAO a vypadá public void ShopBasketCreate(int customerid, int goodsid) { string conn = ConfigurationManager.ConnectionStrings["AdProjConnectionString"].Connection String; SqlConnection objconn = new SqlConnection(conn); try { using (objconn) { objconn.open(); SqlCommand command = objconn.createcommand(); command.commandtype = CommandType.StoredProcedure; command.commandtext = "SHOPBASKET_CREATE"; command.parameters.add(new SqlParameter("@Customer_ID", SqlDbType.BigInt, 4, "ID_CUSTOMER")); command.parameters["@customer_id"].value = customerid; command.parameters.add(new SqlParameter("@Goods_ID", SqlDbType.BigInt, 4, "ID_GOODS")); command.parameters["@goods_id"].value = goodsid; 51

52 } command.executenonquery(); } objconn.close(); } catch (Exception exc) { Console.WriteLine("Došlo k vyjímce. Zpráva: " + exc.message); } Zde je zobrazena procedura z vrstvy DAO, která slouží k vytvoření Nákupního košíku v databázi. V příkazu command je vlastnost CommanText, obsahující název uložené procedury v databázovém serveru. Tento název musí být shodně vyplněn. Jako vstupní parametry jsou zde Tyto parametry musí mít rovněž stejné názvy jako ty, které jsou uvedeny v Stored Procedures v databázovém serveru (viz výše znázorněné). Výstupem této procedury je vytvoření nového záznamu v tabulce ORDER_ITEM případně přepočet množství konkrétního zboží (navýšení množství o jeden kus) Datový model v prostředí.net serveru. V aplikaci jsou vytvořeny třídy které převážně odpovídají tabulkám v databázovém Vytvořil jsem následující třídy: Address slouží při vytvoření objektu obsahující informace o adrese zákazníka Category slouží při vytvoření objektu obsahující název kategorie CurrencyUnit - slouží při vytvoření objektu obsahující název měnové jednotky Customer - slouží při vytvoření objektu obsahující informace o zákazníkovi CustomerLogin - slouží při vytvoření objektu obsahující uživatelské jméno a heslo zákazníka Goods - slouží při vytvoření objektu obsahující informace o zboží GoodsDetail - slouží při vytvoření objektu obsahující informace o detailu zboží Order - slouží při vytvoření objektu obsahující informace o objednávkách OrderItem - slouží při vytvoření objektu obsahující nákupní košík Roles - slouží při vytvoření objektu obsahující role uživatele 52

53 5.4. Návrh webové aplikace Zdroj: vlastní zpracování. Obrázek 19. Znázornění členění internetového obchodu do jednotlivých částí - frame. Výše je zobrazena úvodní obrazovka internetového obchodu. Pro lepší znázornění je do internetového obchodu vložen menší počet zboží prostřednictvím Skladové evidence. Způsobem jakým se vkládá nové zboží, bude popsán v kapitole Návrh skladové evidence. Okno internetového obchodu je členěno na pět částí. První částí je záhlaví internetového obchodu (na obrázku oblast číslo 1). V této části může být Logo firmy, tuto část lze případně doplnit jak obrázkem na pozadí tak pouhým textem. Další část tvoří odkazy, které se převážně týkají celého internetového obchodu. (na obrázku je oblast označena číslem 2). Tato oblast obsahuje odkazy Home, O nás, Vše o nákupu, Obchodní podmínky, Nákupní košík a Kontakt. Odkaz Home, slouží k návratu na úvodní stránku. Odkaz O nás obsahuje základní informace o provozovateli internetového obchodu. Odkaz Vše o nákupu obsahuje základní informace, popisující postup při nakupování v tomto internetovém obchodě, jaké zboží je v internetovém obchodě nabízeno a další informace dle uvážení provozovatele internetového obchodu. Odkaz Obchodní podmínky obsahuje informace týkající se práv zákazníka při nakupování prostřednictvím internetového obchodu, včetně popisu reklamace nebo způsobu doručení zboží. Odkaz Nákupní košík slouží pro rychlou informaci zákazníkovi o jeho rozpracované objednávce. Odkaz Kontakt obsahuje kontaktní adresu provozovatele internetového obchodu. Další oblast navigace obsahuje textové pole k přihlášení uživatele, 53

54 případně k informaci o aktuálním přihlášeném uživateli, možnost registrace nového uživatele, a zobrazení zboží - buď vše najednou či tříděné dle kategorie (na obrázku je tato oblast označena jako 3). Kategorie jednotlivého zboží se definuji ve Skladové evidenci. Předposlední oblast (na obrázku označena číslem 4) je nejvíce dynamická, v této oblasti se zákazníkovi zobrazují všechny konkrétní stránky týkající se výběru daného zboží, nákupu zboží, či kontroly stavu objednávky. Poslední oblast (na obrázku označena číslem 5) obsahuje zápatí internetového obchodu. Programově je tato stránka tvořena pomocí techniky Vzorových stránek (tato technika popsána výše) Registrování zákazníka a přihlášení do internetového obchodu Aby zákazník mohl využívat plně funkce internetového obchodu včetně objednávání zboží, musí být zaregistrován resp. přihlášen do internetového obchodu aplikace. Zdroj: vlastní zpracování. Obrázek 20. Stránka pro registraci nového zákazníka v internetovém obchodě. Výše uvedený obrázek znázorňuje formulář pro registrování nového uživatele. Zákazník zde vyplní jméno a příjmení, případně název firmy. Poté zadá přihlašovací jméno, které následovně slouží jako první ze dvou zadávaných údajů pro přihlášení se do internetového obchodu. Následující dvě kolonky ve formuláři slouží k vyplnění hesla a jeho potvrzení. Heslo je druhý údaj, který slouží k přihlášení do internetového obchodu. Do další kolonky se zadává v případě fyzické osoby rodné číslo, v opačném případě, tedy jedná-li se o právnickou osobu IČO a DIČ. Následují adresy - adresa fakturační a adresa dodací. Pokud se 54

55 adresy shodují, zaškrtne se pouze čtvereček (checkbox) Totožná s fakturační. Je-li každá z adres odlišná, je třeba vyplnit obě adresy. Nakonec se stiskne tlačítko Uložit. Pokud zákazník například nevyplní adresu, zobrazí se mu u dané kolonky červená hvězdička, značící povinnost vyplnit požadovaný údaj. Zdroj: vlastní zpracování. Obrázek 21. Okno zobrazující jak je zákazník informován o nevyplněném textboxu uživatel nezadal název ulice. Tlačítkem Uložit se vyvolá proces, který překontroluje správně zadaná vstupní data. Po překontrolování údajů dojde k uložení zákazníka do databáze. Přihlášení zákazníka je podmíněno tím, že je zákazník již zaregistrovaný. Pokud je zákazník zaregistrován, může se po vyplnění přihlašovacích údajů a potvrzením tlačítka Přihlásit přihlásit do internetového obchodu. Systém ověří vstupní data o zákazníkovi a v případě, že zákazník vyplnil správně údaje, zobrazí se informace jméno zákazníka v navigační části internetového obchodu. způsobem. Zdroj: vlastní zpracování. Obrázek 22. Ukázka zobrazení informace, že zákazník je přihlášen k internetovému obchodu. Programově je přihlášení uživatele zpracováno v kódu na pozadí následujícím CustomerLogOn customer = new CustomerLogOn(); int customerid = 0; customer.logon = tbx_user.text; customer.psw = tbx_psw.text; DAL.CustomerProvider cp = new DAL.CustomerProvider(); customerid = cp.checklogincustomer(customer); if (customerid!= 0) { Model.Customer zak = cp.getcustomer(customerid); lbl_logcustomer.text = zak.name; Session["CustomerName"] = zak.name; 55

56 } userid = customerid; Session["CustomerID"] = customerid; MultiView1.ActiveViewIndex = 2; Nejprve je vytvořen objekt customer třídy CustomerLogOn. Poté jsou načteny údaje zadané zákazníkem do vstupních polí (Přihlašovací jméno a Heslo). Následuje vytvoření objektu cp třídy CustomerProvider, tato třída slouží jako interface mezi datovou vrstvou a vrstvou aplikační. Na objektu cp je zavolána metoda pro ověření zákazníka, CheckLoginCustomer(customer). Pokud metoda vrátí číslo, které se nerovná nule, znamená to, že zákazník je zaregistrován a vstupní parametry se shodují s údaji při registraci zákazníka. Následuje uložení jména zákazníka a jeho id do Session. Tato proměnná je uložena na serveru do souboru. Každý prohlížeč si na serveru vytvoří svoji SessionID do které jsou v kódu přiřazeny proměnné CustomerName a CustomerID. Tyto proměnné jsou pak programátorovi k dispozici po celou dobu otevřeného internetového prohlížeče. Chce-li zákazník změnit osobní údaje, má možnost po kliknutí na odkaz Změna údajů změnit všechny zadané parametry, které zadal při registraci. Důležité je při uložení změny zadat aktuální stávající heslo. V případě, že zákazník nezadá stávající heslo, neprovede se změna údajů. Zdroj: vlastní zpracování. Obrázek 23. Stránka pro úpravu údajů o zákazníkovi. Po stisknutí tlačítka Potvrdit změny se provedou všechny požadované změny. 56

57 Odhlášení uživatele se provede po stisknutí odkazu Odhlásit. Potvrzením tohoto odkazu systém provede odhlášení zákazníka z internetového obchodu Přehled zboží Na tuto obrazovku se dostane každý zákazník včetně těch dosud neregistrovaných po kliknutí na odkaz Přehled zboží, případně na jednotlivé kategorie zboží. Zdroj: vlastní zpracování. Obrázek 24. Stránka zobrazující přehled zboží v internetovém obchodě. Na obrazovce je přehled nabízeného zboží, konkrétně (jako na výše uvedeném obrázku), zboží jedné určité kategorie. Zboží lze třídit podle názvu nebo ceny a to jak vzestupně tak sestupně. U každého zboží je zobrazen název zboží a jeho cena. Pokud zákazník projeví zájem o konkrétní zboží, může si zobrazit podrobnosti. Z programového pohledu je na této obrazovce využita komponenta GridView umožňující snadné připojení dat k databázi. Naplnění GridView daty se provede v kódu na pozadí, a to následovně: GoodsProvider gp = new GoodsProvider(); if (Request.QueryString["CategoryId"]!= null && Int32.TryParse(Request.QueryString["CategoryId"], out categoryid)) { GridView1.DataSource = gp.getgoods(categoryid, filtrporadi,filtrvyberu); } else { GridView1.DataSource = gp.getgoods(filtrporadi, filtrvyberu); } GridView1.DataBind(); 57

58 Nejdříve je vytvořen nový objekt GoodsProvider, který slouží k propojení mezi aplikační vrstvou a datovou vrstvou. Poté je položen dotaz, zda bylo kliknuto na konkrétní kategorii zboží. Pokud ano, načte se pomocí přetížené metody GetGoods a jejími vstupními parametry datový zdroj (tabulka z databáze). Pokud nebyla vybrána kategorie, načte se totožnou metodou GetGoods, ale s jinými parametry, datový zdroj, obsahující tabulku pro všechny kategorie zboží. Nakonec se pomocí metody DataBind třídy GridView naplní daný objekt konkrétními daty z databáze pro danou kategorii Detail o zboží Na obrazovce Přehled zboží může zákazník kliknout na odkaz Podrobnosti, následně se zobrazí stránka s detailními informacemi o zvoleném zboží. Tyto informace jsou uloženy v databázi a může je změnit pouze skladník ve Skladové evidenci. Zdroj: vlastní zpracování. Obrázek 25. Stránka zobrazující detailní informaci o konkrétním zboží v internetovém obchodě. Na této obrazovce může tedy zákazník zjistit podobné informace o produktu. Dále jsou zde dvě tlačítka: Zpět a Přidat do košíku. Tlačítko zpět slouží k návratu na stránku s Přehledem zboží a tlačítko Přidat do košíku slouží k přidání vybraného zboží do nákupního košíku. Aby zákazník mohl vybrané zboží vložit do nákupního košíku, musí být zaregistrován. V opačném případě mu nebude umožněno vložit zvolené zboží do nákupního košíku. 58

59 Programově je tato stránka tvořena pomocí MasterPage a následně ContentPlaceHolder. Kde ContentPlaceHolder je třída z System.Web.UI.WebControls. V této třídě je už standardně vytvořena tabulka. V kódu na pozadí je při načítání stránky zavolán nejprve Provider, který slouží k propojení mezi jednotlivými vrstvami (aplikační a datovou). Posléze je vytvořen objekt goodsdetail, do kterého se načtou detailní informace o konkrétním zboží z databáze přes metodu GetGoodsDetail(). Tyto informace se poté zobrazí v konkrétních polích použitých v kódu webové stránky na popředí. Níže je uvedena část kódu. GoodsProvider gp = new GoodsProvider(); Model.Goods goodsdetail = gp.getgoodsdetail(goodsid); if (goodsdetail!= null) { lbl_nazev.text = goodsdetail.name; lbl_popis.text = goodsdetail.note; tbx_cena.text = string.format("{0:c}", goodsdetail.price); Image.ImageUrl = "Image.ashx?ImageId=" + goodsid; } else { ok = false; } Nákupní košík Stránka s nákupním košíkem se zobrazí pouze, pokud je uživatel přihlášen. Košík obsahuje dosud vybrané zboží. Dále je zde možno u každého zboží změnit hodnotu počtu kusů (množství), a následně vše přepočítat. Zdroj: vlastní zpracování. Obrázek 26. Stránka zobrazující nákupní košík v internetovém obchodě. 59

60 Tato stránka obsahuje tabulku, ve které jsou uvedeny následující údaje: název zboží Název, jednotková cena Cena, počet kusů vybraného zboží Množství, a celková cena Celkem. Dále jsou zde tři tlačítka. Tlačítko Vyprázdnit slouží k vymazání nákupního košíku přihlášeného zákazníka. Tlačítko Přepočítat, slouží k přepočítání celkové ceny, pokud zákazník změní množství konkrétního zboží. Zákazník zde má tedy možnost uvedení požadovaného počtu zboží. Pokud zákazník bude mít dané zboží v nákupním košíku a přesto v přehledu zboží vybere do nákupního košíku stejné zboží, bude automaticky navýšeno pouze množství a přepočítaná celková cena. Každý druh zboží v nákupním košíku tvoří tudíž pouze jeden řádek. Posledním tlačítkem je tlačítko Objednat, které slouží k dalšímu kroku při objednávce zboží Objednávka Stránka s objednávkou se zobrazí, pokud zákazník v nákupním košíku klikne na tlačítko Objednávka. Tato stránka obsahuje informace o zákazníkovi, jeho doručovací adrese a o zbožím převzatém z nákupního košíku. Pokud je zákazník s uvedenými údaji spokojený, potvrdí následně objednávku pomocí tlačítka Potvrdit objednávku. V případě, že danou objednávku provést nechce, stiskne tlačítko Zrušit objednávku. Zdroj: vlastní zpracování. Obrázek 27. Stránka zobrazující objednávku obsahující vybrané zboží z internetového obchodu. Programově je tato stránka tvořena pomocí formuláře a tabulky. Tabulka je tvořena pomocí třídy GridView. V kódu na popředí je každý řádek tvořen následujícím záznamem ve třídě GridView. <Columns> <asp:boundfield DataField="NAME" HeaderText="Název zboží" SortExpression="NAME" FooterText="Celkem"> 60

61 <FooterStyle Font-Bold="True" /> </asp:boundfield> <asp:templatefield HeaderText="Cena"> <ItemTemplate> <asp:label ID="Label8" runat="server" Text='<%# Eval("PRICE", "{0:c}") %>'></asp:label> </ItemTemplate> <ItemStyle HorizontalAlign="Right" /> </asp:templatefield> <asp:boundfield DataField="AMOUNT" HeaderText="Množství" SortExpression="AMOUNT"> <ItemStyle HorizontalAlign="Center" /> </asp:boundfield> <asp:templatefield HeaderText="Celkem"> <ItemTemplate> <asp:label ID="Label9" runat="server" Text='<%# Eval("SUMA", "{0:c}") %>'></asp:label> </ItemTemplate> <ItemStyle HorizontalAlign="Right" /> <FooterTemplate> <asp:label ID="Label10" runat="server" Text="Label"></asp:Label> </FooterTemplate> <FooterStyle HorizontalAlign="Right" Font-Bold="True" /> </asp:templatefield> </Columns> V kódu na pozadí je při načítání této stránky vytvořen objekt provider jak pro objednávku (op), tak pro nákupní košík (sp). Následně je naplněn objekt objednávka (order) pro konkrétního zákazníka. Do proměnné orderstatedid je přiřazena hodnota jedna, která značí nákupní košík neboli rozpracovanou objednávku. Následně je naplněn objekt seznam (list), obsahující všechno zboží pro konkrétní nákupní košík pro konkrétního přihlášeného zákazníka. Poté je už pouze naplněn objekt GridView1 naplněným seznamem zboží. OrderProvider op = new OrderProvider(); ShopBasketProvider sp = new ShopBasketProvider(); Order order = new Order(); order = op.getorder(customerid); lbl_cisloobjednavky.text = Convert.ToString(order.IdOrder); lbl_jmeno.text = order.customer.name; lbl_ulice.text = order.address.street; lbl_cislopopisne.text = order.address.number; lbl_mesto.text = order.address.city; lbl_psc.text = order.address.zip; int orderstateid = 1; list = sp.shopbasketlist(customerid, orderstateid); decimal summary = 0; foreach (DataRow row in list.rows) { summary += Convert.ToDecimal(row["SUMA"]); } GridView1.DataSource = list; GridView1.DataBind(); 61

62 Zdroj: vlastní zpracování. Obrázek 28. Okno znázorňující třídu GridView na stránce obsahující objednávku Seznam objednávek moje objednávky Na seznam objednávek se zákazník dostane dvojím způsobem. První možnost je přes odkaz Moje objednávky v navigačním okně, druhá možnost je stisknutím tlačítka Potvrdit objednávku ze stránky Objednávka. Stránka Moje objednávky tedy obsahuje seznam objednávek, umožňující sledovat a prohlížet aktivní i minulé objednávky. Stránka tvoří tabulku se sloupci, obsahujícími číslo objednávky, datum, a aktuální stav konkrétní objednávky. Stavy objednávek mohou být následující: Rozpracovaná tento stav signalizuje, že je pouze naplněn nákupní košík a objednávka ještě není potvrzena zákazníkem. Přijatá tento stav signalizuje, že objednávka je již potvrzena zákazníkem a byla odeslána provozovateli internetového obchodu. Zrušení tento stav signalizuje, že objednávka byla zrušena ještě před odesláním zboží k zákazníkovi. k zákazníkovi. Odeslána tento stav signalizuje, že zboží v dané objednávce bylo odesláno 62

63 Zdroj: vlastní zpracování. Obrázek 29. Stránka zobrazující všechny zákazníkovi objednávky a jejich stav. Hlavním prvkem na této stránce je třída GridView, jež se naplní v kódu na pozadí následujícím způsobem: Objekt list je typu DataTable. Tento objekt je naplněn daty přes objekt op třídy OrderProvider. OrderProvider je interface mezi datovou vrstvou a aplikační vrstvou. Na objekt op je volaná metoda GetOrders s parametrem customerid, tato metoda vrátí všechny objednávky pro konkrétního zákazníka. Proměnná customerid je načítá pomocí session. Následně se objekt list přiřadí k objektu GridView1 a posléze vykoná samotné naplnění objektu GridView1 daty z databáze. private DataTable list; int customerid = Convert.ToInt32(Session["CustomerID"]); OrderProvider op = new OrderProvider(); list = op.getorders(customerid); GridView1.DataSource = list; GridView1.DataBind(); Pokud zákazník klikne na číslo u konkrétní objednávky, zobrazí se mu detail ke konkrétní objednávce, kde je navíc údaj o aktuálním stavu objednávky. 63

64 Zdroj: vlastní zpracování. Obrázek 30. Stránka zobrazující detail objednávky Návrh skladové evidence Pro vkládání dat do databáze a sledování objednávek zákazníku jsem pro majitele internetových stránek vytvořil i winformovou aplikaci Skladová evidence. Tato aplikace se spustí ve standardním windows okně pomocí souboru StoreApp.exe. V této aplikaci může skladník sledovat stav zboží ve skladu, monitorovat objednávky a následně je vyskladňovat, dále má skladník k dispozici seznam zákazníků. Poslední funkcí skladové evidence je export dat do XML Přihlášení do aplikace Skladová evidence Po spuštění aplikace StoreApp.exe se otevře okno s přihlašovacím dialogovým oknem. Po vyplnění přihlašovacích údajů se otevře nové okno s několika agendami. Pokud zadané přihlašovací parametry nejsou správně zadané, bude uživatel (dále jen skladník) informován o opravě zadání správných údajů. 64

65 Zdroj: vlastní zpracování. Obrázek 31. Přihlašovací okno do aplikace Skladové evidence. Zdroj: vlastní zpracování. Obrázek 32. Hlavní okno aplikace Skladové evidence tvořící rozcestník. Po přihlášení se zobrazí skladníkovi rozcestník, ve kterém si může vybrat mezi čtyřmi následujícími agendami Zboží, Zákazníci, Objednávky, Export dat. Tyto agendy jsou popsány níže. 65

66 Agenda Zboží Stiskne-li skladník tlačítko Zboží v rozcestníku Skladové evidence, zobrazí se nové okno s přehledem zboží, které je na skladě či které je nabízeno v internetovém obchodě. V tomto okně se zobrazí tabulka s názvem zboží, jeho popisem, měrnou jednotkou, cenou za jednotkový kus, kategorií, posledním údajem je počet kusů na skladě. Informace v tabulce lze snadno řadit dle sloupců. Klikne-li skladník například na sloupec Kategorie, seřadí se zboží abecedně dle názvu kategorie. Zdroj: vlastní zpracování. Obrázek 33. Okno s přehledem zboží v aplikaci Skladová evidence. V daném okně jsou ještě další čtyři tlačítka: Detail, Nový, Smazat, Zavřít. Jednotlivá tlačítka popíšu níže. Po stisknutí tlačítka Detail se zobrazí následující okno s formulářem, obsahujícím detaily o vybraném zboží. 66

67 Zdroj: vlastní zpracování. Obrázek 34. Okno s detailem konkrétního zboží v aplikaci Skladová evidence. Skladník v okně o detailu zboží může nejen sledovat informace o vybraném zboží, ale může tyto informace změnit a následně vše uložit pomocí tlačítka Uložit. V okně je zobrazen název zboží, popis zboží, kategorie, počet kusů na skladě, měnová jednotka, cena za měnovou jednotku a počet blokovaných kusů. Blokované kusy jsou kusy, které byly vybrány uživateli přes internetový obchod, jejichž objednávka ale dosud nebyla dokončena. Dále je zde umístěn obrázek zboží, který se dá přes tlačítko Načíst změnit. Posledním tlačítkem je tlačítko Zavřít, jež slouží k zavření tohoto okna. Stiskne-li skladník v agendě Zboží tlačítko Nový, zobrazí se stejný formulář, tentokrát ale s prázdným obsahem. Slouží k zadávání parametru nového zboží do databáze. Všechno zboží, které je umístěno v internetovém obchodě, musí být vloženo přes tento formulář. Stiskne-li skladník v agendě Zboží tlačítko Smazat, dojde k vymazání vybraného zboží z databáze. K výmazu zboží ale dojde pouze tehdy, není-li zboží obsaženo v nějaké objednávce. Tato kontrola je zabezpečena v uložené proceduře SQL Agenda Objednávky Stiskne-li skladník tlačítko Objednávky v rozcestníku Skladové evidence, zobrazí se nové okno s přehledem všech objednávek, které byly vytvořeny v internetovém obchodě. 67

68 V daném okně může skladník procházet objednávky, řadit je podle jednotlivých sloupců a zobrazit si detailní informace o objednávce. Zdroj: vlastní zpracování. Obrázek 35. Okno s přehledem objednávek v aplikaci Skladová evidence. V tomto okně má skladník k dispozici následující informace o objednávkách: číslo objednávky, jméno zákazníka, adresu zákazníka, datum poslední změny v objednávce a celkovou cenu objednávky (cenový součet všech položek). Po stisku tlačítka Detail se zobrazí okno s detailem konkrétní objednávky. Tlačítko zavřít zavře okno s agendou Objednávky. 68

69 Zdroj: vlastní zpracování. Obrázek 36. Okno s detailem konkrétní objednávky v aplikaci Skladová evidence. V okně s detailem objednávky má skladník přehled o vytvořené objednávce, kterou zákazník vytvořil přes internetový obchod. Okno je vytvořeno pomocí formuláře a tabulky. Ve formuláři je zobrazeno číslo objednávky, název zákazníka, jeho adresa doručení, datum vytvořené objednávky, celková cena objednávky a stav objednávky. V tabulce jsou rozepsány všechny položky k dané objednávce. Skladník zde tedy podle uvedených údajů může provést vyskladnění a odeslání objednávky k zákazníkovi. Po odeslání zboží skladník potvrdí vyskladnění objednávky, zákazník má poté možnost ve svém profilu v internetovém obchodě vidět aktuální stav své objednávky včetně data vyskladnění či odeslání zboží Agenda Zákazníci Stiskne-li skladník tlačítko Zákazníci v rozcestníku Skladové evidence, zobrazí se nové okno s přehledem všech zákazníků, kteří jsou zaregistrováni v internetovém obchodě. Umožňuje procházet seznam zákazníků, řadit podle jednotlivých sloupců a zobrazovat detail zákazníka, případně je mazat. 69

Obsah. Zpracoval:

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

Více

Seznámení s prostředím dot.net Framework

Seznámení s prostředím dot.net Framework Základy programování v jazyce C# Seznámení s prostředím dot.net Framework PL-Prostředí dot.net - NET Framework Je základním stavebním prvkem, na kterém lze vytvářet software. Jeho součásti a jádro je založené

Více

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Semináˇr Java X J2EE Semináˇr Java X p.1/23 Seminář Java X J2EE Seminář Java X p.1/23 J2EE Složitost obchodních aplikací robusní, distribuované, spolehlivé aplikace s transakcemi na straně serveru, klientské aplikace co nejjednodušší Snaha : Návrh,

Více

Unifikovaný modelovací jazyk UML

Unifikovaný modelovací jazyk UML Unifikovaný modelovací jazyk UML Karel Richta katedra počíta tačů FEL ČVUT Praha richta@fel fel.cvut.czcz Motto: Komunikačním m prostředkem informační komunity se postupem času stala angličtina. Chcete-li

Více

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz Vývoj moderních technologií při vyhledávání Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz INFORUM 2007: 13. konference o profesionálních informačních zdrojích Praha, 22. - 24.5. 2007 Abstrakt Vzhledem

Více

C# - Databáze úvod, ADO.NET. Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí

C# - Databáze úvod, ADO.NET. Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí C# - Databáze úvod, ADO.NET Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Co je to databáze? Databáze je určitá uspořádaná množina informací

Více

UML. Unified Modeling Language. Součásti UML

UML. Unified Modeling Language. Součásti UML UML Unified Modeling Language 1995 počátek 1997 verze 1.0 leden dnes verze 2.0 (vývoj stále nedokončen) Standardní notace OMG podpora velkých firem (Microsoft, IBM, Oracle, HP ) popisuje struktury popisuje

Více

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace Předmět: Vývoj aplikací Téma: Visual Studio Vyučující: Ing. Milan Káža Třída: EK3 Hodina: 19,2 Číslo: V/5 Programování

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího

Více

UML - opakování I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

UML - opakování I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W UML - opakování I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W Co je to UML Evoluce UML Diagram komponent Diagram odbavení Diagram tříd Aktivity diagram Stavový diagram Sekvenční diagram Diagram

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence schopnost, který je spolufinancován

Více

PŘÍLOHA C Požadavky na Dokumentaci

PŘÍLOHA C Požadavky na Dokumentaci PŘÍLOHA C Požadavky na Dokumentaci Příloha C Požadavky na Dokumentaci Stránka 1 z 5 1. Obecné požadavky Dodavatel dokumentaci zpracuje a bude dokumentaci v celém rozsahu průběžně aktualizovat při každé

Více

CASE nástroje. Jaroslav Žáček

CASE nástroje. Jaroslav Žáček CASE nástroje Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Co znamená CASE? A CASE tool is a computer-based product aimed at supporting one or more software engineering activities within

Více

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

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework Web Jaroslav Nečas Obsah přednášky Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework Co to je web HTTP protokol bezstavový GET POST HEAD Cookies Session HTTPS

Více

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena. 2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena. GEOVAP, spol. s r. o. Čechovo nábřeží 1790 530 03 Pardubice Česká republika +420 466 024 618 http://www.geovap.cz V dokumentu použité názvy programových

Více

UML a jeho použití v procesu vývoje. Jaroslav Žáček jaroslav.zacek@osu.cz

UML a jeho použití v procesu vývoje. Jaroslav Žáček jaroslav.zacek@osu.cz UML a jeho použití v procesu vývoje Jaroslav Žáček jaroslav.zacek@osu.cz Různé pohledy na modelování Různé pohledy na modelování Unified Modeling Language UML není metodikou ani programovacím jazykem,

Více

Modelování procesů s využitím MS Visio.

Modelování procesů s využitím MS Visio. Modelování procesů s využitím MS Visio jan.matula@autocont.cz Co je to modelování procesů? Kreslení unifikovaných či standardizovaných symbolů, tvarů a grafů, které graficky znázorňují hlavní, řídící nebo

Více

Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework

Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework úvod, historie, základy.net framework, programovací jazyky, vývojové prostředky Úvod strana 2 Cíl předmětu Seznámit se s vývojem aplikací

Více

Microsoft Access tvorba databáze jednoduše

Microsoft Access tvorba databáze jednoduše Microsoft Access tvorba databáze jednoduše Časový rozsah: 2 dny (9:00-16:00) Cena: 3300 Kč + DPH Úvod do relačních databází. Funkce databázových objektů Microsoft Access. Návrh tabulek, definice základních

Více

Informační systémy 2008/2009. Radim Farana. Obsah. UML - charakteristika

Informační systémy 2008/2009. Radim Farana. Obsah. UML - charakteristika 2 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Jazyk UML, základní modely, diagramy aktivit, diagramy entit.

Více

Nové jazykové brány do Caché. Daniel Kutáč

Nové jazykové brány do Caché. Daniel Kutáč Nové jazykové brány do Caché Daniel Kutáč O čem budeme mluvit.net T/SQL Perl Python MultiValue Basic Téma.NET provider .NET Provider Co lze již dnes Factory / VisM ODBC.NET Web Services Factory a VisM

Více

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE

Více

Sísyfos Systém evidence činností

Sísyfos Systém evidence činností Sísyfos Systém evidence Sísyfos : Evidence pracovních Systém Sísyfos je firemní aplikace zaměřená na sledování pracovních úkonů jednotlivých zaměstnanců firmy. Umožňuje sledovat pracovní činnosti na různých

Více

7 Jazyk UML (Unified Modeling Language)

7 Jazyk UML (Unified Modeling Language) 7 Jazyk UML (Unified Modeling Language) 7.1 Základní charakteristika jazyka Motivace - vznik řady OO metod a metodologií (konec 80. let a první polovina 90.let) podobné notace vyjadřující totéž, komplikující

Více

Formy komunikace s knihovnami

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

Více

CASE. Jaroslav Žáček

CASE. Jaroslav Žáček CASE Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Co znamená CASE? Definice dle SEI A CASE tool is a computer-based product aimed at supporting one or more software engineering activities

Více

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D. VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ Ing. Lukáš OTTE, Ph.D. Ostrava 2013 Tento studijní materiál vznikl za finanční podpory

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 25. Otázka : Komponentní technologie - základní pojmy a principy, metody specifikace komponent. Obsah : 1. Základní pojmy 1.1 Komponenta Komponenta

Více

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek Co je to webová aplikace? příklady virtuální obchodní dům intranetový IS podniku vyhledávací služby aplikace jako každá jiná přístupná

Více

1. Integrační koncept

1. Integrační koncept Příloha č. 2: Technický popis integrace 1. Integrační koncept Z hlediska koncepčního budování Smart Administration na Magistrátu města Mostu je možno hovořit o potřebě integrace tří úrovní systémové architektury

Více

Programovací jazyky Přehled a vývoj

Programovací jazyky Přehled a vývoj Programovací jazyky Přehled a vývoj 1 Programování a programovací jazyk Historie a současnost programovacích jazyků Objektově orientované a vizuální programování Značkovací a skriptovací jazyky 2 Programování

Více

Softwarové komponenty a Internet

Softwarové komponenty a Internet Softwarové komponenty a Internet Doc. Dr. Ing. Miroslav Beneš Katedra informatiky FEI VŠB-TU Ostrava Miroslav.Benes@vsb.cz Obsah přednášky Motivace Vývoj přístupů k tvorbě programů Definice komponenty

Více

Tvorba informačních systémů

Tvorba informačních systémů Tvorba informačních systémů Michal Krátký 1, Miroslav Beneš 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2006/2007 c 2005-2007 Michal Krátký, Miroslav Beneš Tvorba

Více

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

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

Více

7.6 Další diagramy UML

7.6 Další diagramy UML 7.6 Další diagramy UML 7.6.1 Moduly (balíčky - package) a kolaborace (collaboration) Jak rozložit rozsáhlý systém na menší? - seskupování tříd (prvků modelu) do jednotek vyšší úrovně (package v UML). UI

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

Bc. Martin Majer, AiP Beroun s.r.o.

Bc. Martin Majer, AiP Beroun s.r.o. REGISTR DIGITALIZACE HISTORICKÝCH FONDŮ (RDHF) A DIGITÁLNÍCH KONKORDANCÍ (DK) Návrh uživatelského rozhraní klientských aplikací verze 1.0 Bc. Martin Majer, AiP Beroun s.r.o. 28.11.2016-1 - Obsah 1 Seznam

Více

EMBARCADERO TECHNOLOGIES. Jak na BYOD chytře? Možnosti zapojování různých mobilních zařízení do podnikových informačních systémů.

EMBARCADERO TECHNOLOGIES. Jak na BYOD chytře? Možnosti zapojování různých mobilních zařízení do podnikových informačních systémů. Jak na BYOD chytře? Možnosti zapojování různých mobilních zařízení do podnikových informačních systémů. Trendy a móda EMBARCADERO TECHNOLOGIES Popularita a prodej mobilních zařízení roste Skoro každý má

Více

7 Jazyk UML (Unified Modeling Language)

7 Jazyk UML (Unified Modeling Language) 7 Jazyk UML (Unified Modeling Language) 7.1 Základní charakteristika jazyka Motivace - vznik řady OO metod a metodologií (konec 80. let a první polovina 90.let) podobné notace vyjadřující totéž, komplikující

Více

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy Bc. Petr Pokorný Letní semestr 2009/2010 1 Obsah 1 Úvod... 3 2 Workflow... 3 3 Workflow

Více

Architektury informačních systémů

Architektury informačních systémů Architektury informačních systémů doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes/vyuka/tis Miroslav.Benes@vsb.cz Obsah přednášky Co je to

Více

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2014 5.3-5.8 9/14

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2014 5.3-5.8 9/14 ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2014 5.3-5.8 9/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 12 0:40 UML unifikovaný modelovací jazyk Zkratka tohoto

Více

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí) Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog

Více

Úvod. Klíčové vlastnosti. Jednoduchá obsluha

Úvod. Klíčové vlastnosti. Jednoduchá obsluha REQUESTOR DATASHEET Úvod Requestor Service Desk poskytuje kompletní řešení pro správu interních i externích požadavků, které přicházejí do organizace libovolnou cestou. Produkt je zaměřen na vytvoření

Více

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů - 1.1 - Kapitola 1: Úvod Účel databázových systémů Pohled na data Modely dat Jazyk pro definici dat (Data Definition Language; DDL) Jazyk pro manipulaci s daty (Data Manipulation Language; DML) Správa

Více

Vývoj informačních systémů. Přehled témat a úkolů

Vývoj informačních systémů. Přehled témat a úkolů Vývoj informačních systémů Přehled témat a úkolů Organizace výuky doc. Mgr. Miloš Kudělka, Ph.D. EA 439, +420 597 325 877 homel.vsb.cz/~kud007 milos.kudelka@vsb.cz Přednáška Znalosti Schopnosti Cvičení

Více

Tvorba informačních systémů

Tvorba informačních systémů Tvorba informačních systémů Michal Krátký 1, Miroslav Beneš 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006 Michal Krátký, Miroslav Beneš Tvorba informačních

Více

Olga Rudikova 2. ročník APIN

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

Více

7.6 Další diagramy UML

7.6 Další diagramy UML 7.6 Další diagramy UML 7.6.1 Moduly (balíčky - package) a kolaborace (collaboration) Jak rozložit rozsáhlý systém na menší? - seskupování tříd (prvků modelu) do jednotek vyšší úrovně (package v UML). UI

Více

Architektury informačních systémů

Architektury informačních systémů Architektury informačních systémů doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes/vyuka/tis Miroslav.Benes@vsb.cz Obsah přednášky Co je to

Více

Databázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz

Databázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Databázové systémy Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Vývoj databázových systémů Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace 60.-70. léta Program Komunikace Výpočty

Více

Analýza a Návrh. Analýza

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

Více

Tvorba podnikových aplikací v jazyce JAVA. Josef Pavlíček KII PEF CZU

Tvorba podnikových aplikací v jazyce JAVA. Josef Pavlíček KII PEF CZU Tvorba podnikových aplikací v jazyce JAVA Josef Pavlíček KII PEF CZU J2EE Jedná se o přístup: sadu pravidel, technologií, metod, doporučení jak provádět design, vývoj, nasazení a provozování vícevrstvých

Více

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server ADMINISTRACE POČÍTAČOVÝCH SÍTÍ OPC Server Funkce a využití v průmyslové automatizaci Jiří NOSEK 2011 Co je OPC Server? OPC = Open Process Control (původně OLE for Process Control) sada specifikací průmyslového

Více

MBI - technologická realizace modelu

MBI - technologická realizace modelu MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,

Více

Business Suite for Notes

Business Suite for Notes Business Suite for Notes Systém BSFN byl vytvořen na základě zkušeností s podporou a řízením procesů v obchodní firmě. Během několika let existence na trhu se osvědčil u mnoha zákazníků. Z nejvýznamnějších

Více

Tvorba informačních systémů

Tvorba informačních systémů Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2007/2008 c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních

Více

Novinky ve Visual Studio 2010. Tomáš Kroupa Tomas.Kroupa@hotmail.com

Novinky ve Visual Studio 2010. Tomáš Kroupa Tomas.Kroupa@hotmail.com Novinky ve Visual Studio 2010 Tomáš Kroupa Tomas.Kroupa@hotmail.com O čem si dnes řekneme Visual studio 2010 (beta 2) Jazyk C# 4.0 ASP.NET 4.0.NET 4.0 Visual Studio 2010 Beta 2 Jak získat Testovací verze

Více

1 Úvod 1.1 Vlastnosti programového vybavení (SW)

1 Úvod 1.1 Vlastnosti programového vybavení (SW) 1 Úvod 1.1 Vlastnosti programového vybavení (SW) - dávkové zpracování - omezená distribuce - zakázkový SW - distribuované systémy - vestavěná inteligence - laciný HW - vliv zákazníka 1950 1960 1970 1980

Více

Vývoj informačních systémů. Přehled témat a úkolů

Vývoj informačních systémů. Přehled témat a úkolů Vývoj informačních systémů Přehled témat a úkolů Organizace výuky doc. Mgr. Miloš Kudělka, Ph.D. EA 439, +420 597 325 877 homel.vsb.cz/~kud007 milos.kudelka@vsb.cz Přednáška Teorie Praxe Cvičení Diskuze

Více

Microsoft SharePoint Portal Server 2003. Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR

Microsoft SharePoint Portal Server 2003. Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR Microsoft SharePoint Portal Server 2003 Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR Přehled Země: Česká republika Odvětví: Velkoobchod Profil zákazníka

Více

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování.

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování. 3 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Business modelling, základní nástroje a metody business modelování.

Více

INFORMAČNÍ SYSTÉMY NA WEBU

INFORMAČNÍ SYSTÉMY NA WEBU INFORMAČNÍ SYSTÉMY NA WEBU Webový informační systém je systém navržený pro provoz v podmínkách Internetu/intranetu, tzn. přístup na takový systém je realizován přes internetový prohlížeč. Použití internetového

Více

Objektově orientované technologie Business proces Diagram aktivit. Daniela Szturcová

Objektově orientované technologie Business proces Diagram aktivit. Daniela Szturcová Objektově orientované technologie Business proces Diagram aktivit Daniela Szturcová Osnova Bysnys proces pojmy metody, specifikace pomocí diagramů Modelování pomocí aktivitního diagramu prvky diagramu

Více

Michal Krátký, Miroslav Beneš

Michal Krátký, Miroslav Beneš Tvorba informačních systémů 1/32 Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2008/2009 Tvorba informačních

Více

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25 Programování v C# Úvodní slovo 1 / 25 Obsah přednášky Seznámení s předmětem Co je.net Vlastnosti.NET 2 / 25 Kdo je kdo Petr Vaněček vanecek@pf.jcu.cz J 502 Václav Novák vacnovak@pf.jcu.cz?? Při komunikaci

Více

Compatibility List. GORDIC spol. s r. o. Verze 3.60.5 8.4.2009

Compatibility List. GORDIC spol. s r. o. Verze 3.60.5 8.4.2009 Compatibility List Verze 3.60.5 8.4.2009 GORDIC spol. s r. o. Copyright 1993-2009 1 Obsah Obsah 1 2 3 4 5 6 7 8 9 3.1 3.2 Úvodní informace Podporované databázové systémy Klientské prostředí Tlustý klient...

Více

PRODUKTY. Tovek Tools

PRODUKTY. Tovek Tools jsou desktopovou aplikací určenou k vyhledávání informací, tvorbě různých typů analýz a vytváření přehledů a rešerší. Jsou vhodné pro práci i s velkým objemem textových dat z různorodých informačních zdrojů.

Více

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

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

Více

1 Webový server, instalace PHP a MySQL 13

1 Webový server, instalace PHP a MySQL 13 Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Více

Slovenská spořitelna:

Slovenská spořitelna: Případová studie Slovenská spořitelna: Microsoft Dynamics CRM pro správu klientů ze segmentu malých a středních podniků Jak jsme Slovenské spořitelně usnadnily a zefektivnily práci s klienty ze segmentu

Více

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita Aktivní webové stránky Úvod: - statické webové stránky: pevně vytvořený kód HTML uložený na serveru, ke kterému se přistupuje obvykle pomocí protokolu HTTP (HTTPS - zabezpečený). Je možno používat i různé

Více

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U P R O G R A M O V É V Y B A V E N Í Studijní obor: 18-20-M/01 Informační technologie Školní

Více

IS pro podporu BOZP na FIT ČVUT

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

Více

MST - sběr dat pomocí mobilních terminálů on-line/off-line

MST - sběr dat pomocí mobilních terminálů on-line/off-line MST - sběr dat pomocí mobilních terminálů on-line/off-line Stručný přehled název: MST, software pro sběr dat mobilními terminály ve skladu (příjem, výdej, inventura) autor aplikace: FASK, spol. s r.o.,

Více

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části: Aplikace Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části: prezentační vrstva vstup dat, zobrazení výsledků, uživatelské rozhraní, logika uživatelského rozhraní aplikační vrstva

Více

Databázové aplikace pro internetové prostředí. 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

Databázové aplikace pro internetové prostředí. 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku Databázové aplikace pro internetové prostředí 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku Projekt: Inovace výuky prostřednictvím ICT Registrační číslo: CZ.1.07/1.5.00/34.250

Více

SW pro správu a řízení bezpečnosti

SW pro správu a řízení bezpečnosti Integrační bezpečnostní SW pro správu a řízení bezpečnosti Systém je vlastním produktem společnosti Integoo. Trvalý vývoj produktu reflektuje požadavky trhu a zákazníků. Ať už je velikost vaší organizace

Více

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

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ M. Sysel, I. Pomykacz Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky Nad Stráněmi 4511, 760 05 Zlín, Česká republika

Více

Tieto Future Office. Přehled. Země: Česká republika. Odvětví: Samospráva

Tieto Future Office. Přehled. Země: Česká republika. Odvětví: Samospráva Tieto Future Office Přehled Země: Česká republika Odvětví: Samospráva Profil zákazníka: Magistrát města Plzeň je orgánem města Plzně, který plní jeho úkoly v oblasti územní samosprávy i státní správy na

Více

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody Obsah 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody 3) 4) Mantichora Mantichora je moderní aplikace, který

Více

Wonderware Information Server 4.0 Co je nového

Wonderware Information Server 4.0 Co je nového Wonderware Information Server 4.0 Co je nového Pavel Průša Pantek (CS) s.r.o. Strana 2 Úvod Wonderware Information Server je výrobní analytický a reportní informační portál pro publikaci výrobních dat

Více

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

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

Více

Cloudové služby kancelářského softwaru hostované společností Microsoft Kvalitní nástroje pro firemní nasazení za přijatelnou cenu Vždy aktuální verze

Cloudové služby kancelářského softwaru hostované společností Microsoft Kvalitní nástroje pro firemní nasazení za přijatelnou cenu Vždy aktuální verze Cloudové služby kancelářského softwaru hostované společností Microsoft Kvalitní nástroje pro firemní nasazení za přijatelnou cenu Vždy aktuální verze Office, e-mail, sdílení dokumentů, videokonference

Více

Efektivní vývoj mobilních aplikací na více platforem současně. Mgr. David Gešvindr MCT MSP MCPD MCITP gesvindr@mail.muni.cz

Efektivní vývoj mobilních aplikací na více platforem současně. Mgr. David Gešvindr MCT MSP MCPD MCITP gesvindr@mail.muni.cz Efektivní vývoj mobilních aplikací na více platforem současně Mgr. David Gešvindr MCT MSP MCPD MCITP gesvindr@mail.muni.cz Osnova 1. Kam míří platforma Windows Phone 2. Seznámení s univerzálními Windows

Více

Communist Party of Nepal (Unified Marxist-Leninist) Unified Modeling Language University of Massachusetts Lowell User-mode Linux.

Communist Party of Nepal (Unified Marxist-Leninist) Unified Modeling Language University of Massachusetts Lowell User-mode Linux. Jan Smolík UML UML Communist Party of Nepal (Unified Marxist-Leninist) Unified Modeling Language University of Massachusetts Lowell User-mode Linux Zdroj: Wikipedia Unified modelling language Neproprietární

Více

CA AppLogic platforma typu cloud pro podnikové aplikace

CA AppLogic platforma typu cloud pro podnikové aplikace INFORMACE O PRODUKTU: CA AppLogic CA AppLogic platforma typu cloud pro podnikové aplikace agility made possible CA AppLogic je platforma na klíč založená na technologii cloud computing, která pomáhá podnikům

Více

Kapitola 1: Co je Microsoft Access? 27 Kapitola 2: Mnoho tváří aplikace Microsoft Access 41 Kapitola 3: Návrh databázové aplikace 75

Kapitola 1: Co je Microsoft Access? 27 Kapitola 2: Mnoho tváří aplikace Microsoft Access 41 Kapitola 3: Návrh databázové aplikace 75 Stručný obsah Část 1 Základy aplikace Microsoft Access Kapitola 1: Co je Microsoft Access? 27 Kapitola 2: Mnoho tváří aplikace Microsoft Access 41 Kapitola 3: Návrh databázové aplikace 75 Část 2 Vytváření

Více

Vzdálený přístup k počítačům

Vzdálený přístup k počítačům Vzdálený přístup k počítačům jedna z nejstarších služeb vzdálený přístup k sálovým počítačům nejprve vzdálené terminály později terminálová emulace jako jedna ze služeb počítačové sítě současnost využíváno

Více

Principy UML. Clear View Training 2005 v2.2 1

Principy UML. Clear View Training 2005 v2.2 1 Principy UML Clear View Training 2005 v2.2 1 1.2 Co je touml? Unified Modelling Language (UML) je univerzálníjazyk pro vizuální modelování systémů Podporuje všechny životní cykly Mohou jej implementovat

Více

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23 Stručný obsah 1. Stručný úvod do relačních databází 13 2. Platforma 10g 23 3. Instalace, první přihlášení, start a zastavení databázového serveru 33 4. Nástroje pro administraci a práci s daty 69 5. Úvod

Více

komplexní podpora zvyšování výkonnosti strana 1 Využití Referenčního modelu integrovaného systému řízení veřejnoprávní korporace Město Hořovice

komplexní podpora zvyšování výkonnosti strana 1 Využití Referenčního modelu integrovaného systému řízení veřejnoprávní korporace Město Hořovice strana 1 Využití Referenčního modelu integrovaného systému řízení veřejnoprávní korporace Město Hořovice 19.3.2018 Zpracoval: Roman Fišer, strana 2 1. ÚVOD... 3 2. POPIS REFERENČNÍHO MODELU INTEGROVANÉHO

Více

Profilová část maturitní zkoušky 2017/2018

Profilová část maturitní zkoušky 2017/2018 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2017/2018 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

PRVNÍ ELASTICKÝ INFORMAČNÍ SYSTÉM : QI

PRVNÍ ELASTICKÝ INFORMAČNÍ SYSTÉM : QI PRVNÍ ELASTICKÝ INFORMAČNÍ SYSTÉM : QI Cyril Klimeš a) Jan Melzer b) a) Ostravská univerzita, katedra informatiky a počítačů, 30. dubna 22, 701 03 Ostrava, ČR E-mail: cyril.klimes@osu.cz b) DC Concept

Více

Business Intelligence

Business Intelligence Business Intelligence Josef Mlnařík ISSS Hradec Králové 7.4.2008 Obsah Co je Oracle Business Intelligence? Definice, Od dat k informacím, Nástroj pro operativní řízení, Integrace informací, Jednotná platforma

Více

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U P R O G R A M O V É V Y B A V E N Í Studijní obor: 18-20-M/01 Informační technologie Školní

Více

(Enterprise) JavaBeans. Lekce 7

(Enterprise) JavaBeans. Lekce 7 (Enterprise) JavaBeans Lekce 7 JavaBeans vs. Enterprise JavaBeans (EJB) JavaBeans technologie: jedná se o tzv. komponentní architekturu určenou pro JSE platformu určená pro tvorbu JSE GUI programů pomocí

Více