TNPW 2

TNPW 2

TNPW 2 - Technologie pro publikování na webu 2

Cíl předmětu

Cílem předmětu technologie pro publikování na webu je poskytnout studentům přehled o současných technologiích tvorby webových aplikací. Na cvičeních je kladen důraz na praktické procvičení teoretických znalostí. Na mých cvičeních je probírána technologie ASP.NET. Během semestru jsou semináře rozděleny podle následující osnovy:

  1. Úvod do technologie, architektura asp.net
  2. Seznámení s jazykem C#
  3. Ukázková aplikace
  4. Serverové komponenty
  5. Uživatelské vstupy, formuláře, validace
  6. MasterPage, předávání proměnných, kompozice webových stránek
  7. Přístup k datům (ADO.NET), komponenty pro práci s daty
  8. Management uživatelů a rolí (Login, MembershipProvider, RoleProvider)
  9. Logování běhu aplikace (knihovna log4net), deploy asp.net aplikací, unit testy
  10. Webservice, AJAX Control Toolkit
  11. Konzultace projektů

Úspěšný absolvent předmětu, resp. mých cvičení bude schopen vytvořit funkční zabezpečenou webovou aplikaci v technologii ASP.NET, pokrývající potřeby malé organizace (např. knihovna, bazar atp.)

Předpoklady

U studentů přihlášených na tento předmět (má cvičení) se předpokládá absolvování TNPW1 = znalost XHTML, znalost objektového návrhu a objektového programování (PRO1, PRO2). Vzhledem k časové dotaci (1 hod. cv) není možné probrat veškerou látku na cvičeních a naučit tak studenty asp.net "step-by-step". Je nutné, aby se studenti aktivně zapojili a nespoléhali pouze na informace a postupy naučené na cvičeních. Na cvičeních lze stihnout pouze názorně ukázat použití konkrétních komponent, postupů... Od studentů se tedy očekává domácí příprava. Poslední cvičení jsou vyhrazena ke konzultacím projektů - je velice výhodné těchto konzultací využít.

Průběh cvičení

První cvičení jsou názorná, studenti dle názorných pokynů plní jednoduchá zadání, řešená současně na projektor (názorná výuka). Toto se týká úvodu, architektury, seznámení s jazykem C# a HelloWorl aplikace. Na dalších cvičeních je studentům zadán úkol, který plní v rámci předpřipravené kostry aplikace. Jednotlivé úkoly jsou typu "doplňte vstupní formulář a zajistěte validaci, vytvořte datový zdroj pro zobrazení v komponentě, vytvořte metodu zajišťující vložení do db s ošetřením proti sql injection atd."

Požadavky na projekt

Závěrečným projektem student prokazuje osvojení nějaké technologie pro vývoj webových aplikací. Na mých cvičeních to bude zpravidla ASP.NET. Není však nutné za každou cenu mi prezentovat asp.net aplikaci. Pokud někdo použije jinou technologii, není to špatně. Pokud ovšem bude použito PHP, pak jedině s nějakým frameworkem typu zend, nette, codeigniter... U JSP budu čekat použití validačních FW jako struts, popřípadě ORM (Hibernate). Předpokládám však, že studenti hlásící se na má cvičení mají zájem o .net a tím pádem budou závěrečný projekt vyvíjet na této platformě. Závěrečný projekt je webová aplikace splňující následující požadavky:

  • Aplikace je smysluplná (použitelná ve skutečném světě)
  • Aplikace je user-friendly (hlavní strana obsahuje to, co má hlavní strana obsahovat, aplikace je intuitivní)
  • Class model aplikace obsahuje alespoň 5 business entit (uživatel, zákazník, výpůjčka, automobil.....)
  • V aplikaci je alespoň 10 use-case (výpis zákazníků, přidání zákazníka, vyhledání zákazníka, výpis výpůjček pro zákazníka)
  • Aplikace je zabezpečená
  • Uživatelské vstupy a parametry předané metodou GET jsou validovány (ochrana před SQL injestion, cross site scriptingem)
  • Aplikace má implementovaný user-management (lépe i role management) - funguje přihlašování a je jasné jakou roli má v systému přihlášený uživatel. Do některých sekcí se dostane pouze přihlášený uživatel, popřípadě uživatel se specifickými právy
  • Aplikace používá přístup k datům (SQL). Pro přístup k datům lze využit ADO.NET nebo nějakou jeho nadstavbu (LINQ to SQL, EntityFramework) popřípadě NHibernate
  • Aplikace má nějaké administrační rozhraní (pro správu např. článků, filmů, uživatelů...)

Součástí aplikace je i stručná dokumentace (cca 1-2 A4) ve které je popsán cíl projektu, použité technologie, zabezpečení, účel a vazby stěžejních tříd, časová náročnost vývoje a odhadovaná cena projektu.

Dobrovolně lze samozřejmě použít podpůrné technologie typu silverlight, ajax control toolkit a podobně. Též lze aplikaci postavit na asp.net mvc.

Tématicky si aplikaci studenti navrhují sami, je nanejvýš vhodné návrh aplikace konzultovat

Podmínky pro úspěšné absolvování

Předmět je zakončen zápočtem. Zápočet se uděluje za odprezentovaný projekt. Na prezentace projektů je tedy vhodné mít aplikaci někde nasazenou (aspone.cz - freehosting), popřípadě ji odprezentovat na ntb. Na prezentace projektů budou vypsány termíny v isitu během zkouškového období. V případě dřívějšího splnění je možné prezentovat aplikaci na posledních cvičeních. Hodnotí se celková koncepce a provedení aplikace, dle bodů z požadavků. Projekt je hodnocen stupnicí přijat / nepřijat - započteno / nezapočteno. V případě drobných výhrad je možno tyto malé nedostatky opravit a odprezentovat projekt znovu na některém z dalších termínů

Doporučení

  • na svůj počítač si nainstalujte visual studio 2013 dostupné z msdnaa (http://iris.uhk.cz/msdn/) a ms sql express 2014 R2 (dostupné zdarma)
  • u sql serveru používejte authentication mode - mixed, v asp.net aplikaci nepoužívejte windows autentifikaci ale klasickou kde se předává login a heslo (obsaženo v connection string).
  • pokud máte sebemenší nejasnosti, ptejte se
  • zkoušejte použití probraných i ostatních komponent
  • používejte přiložené materiály, projděte si nějaké tutoriály

Materiály (tutoriály, literatura)

Pro ASP.net MVC 5 - Adam Freeman