Webové aplikace: Porovnání verzí

Z FI WIKI
Přejít na: navigace, hledání
(Úvod)
(Úvod)
Řádka 8: Řádka 8:
 
Webové aplikace jsou aplikace, kde uživatelským rozhraním je '''webový prohlížeč'''.  Mají dvě obrovské výhody oproti ostatním typům aplikací (desktopové, mobilní, příkazový řádek):
 
Webové aplikace jsou aplikace, kde uživatelským rozhraním je '''webový prohlížeč'''.  Mají dvě obrovské výhody oproti ostatním typům aplikací (desktopové, mobilní, příkazový řádek):
 
* uživatel nemusí nic instalovat
 
* uživatel nemusí nic instalovat
* uživatel používá vždy nejaktuálnější verzi
+
* vývojář se stará o jen jednu verzi aplikace
  
 
Sepišme si, co máme k dispozici na straně klienta:
 
Sepišme si, co máme k dispozici na straně klienta:

Verze z 9. 10. 2007, 08:40


Úvod

Webové aplikace jsou aplikace, kde uživatelským rozhraním je webový prohlížeč. Mají dvě obrovské výhody oproti ostatním typům aplikací (desktopové, mobilní, příkazový řádek):

  • uživatel nemusí nic instalovat
  • vývojář se stará o jen jednu verzi aplikace

Sepišme si, co máme k dispozici na straně klienta:

  • ve 100 % případů máme HTML s hyperlinky a formuláři
  • v asi 95 % případů máme JavaScript, a můžeme s ním manipulovat HTML formuláře
  • většinou mám k dispozici Cookies pro ukládání stavu v prohlížeči
  • obvykle máme DOM (Document Object Model) a CSS (Cascading Style Sheets), které lze manipulovat JavaScriptem
  • většinou máme Flash plugin (animovaná vektorová grafika)
  • obvykle máme možnost použít Java applety, ale jen na úrovni pokaženého JDK 1.1
  • někdy lze použít Java Web Start pro nastartování desktopové aplikace
  • v prohlížečích Mozilla, Firefox máme XUL (User Interface Language)

Vývojářovo dilema

Vývojář webových aplikací je postaven před dilema: "Mám využít nejmodernějších technologií, nebo podporovat co nejvíce uživatelů?"

Pokládá si otázky typu "Co nevidomí lidé, dokážou moji aplikaci použít? Co barvoslepí, případně lidé s monochromatickými monitory, když neuvidí rozlišení barvami? Co lidé přistupující z mobilního telefonu s displayem 150x150 pixelů? Co lidé používajécí prohlížeč na textové konzoli (lynx či links) bez možnosti obrázků a barev?".

Nyní módní pojmy AJAX (Asynchronous JavaScript And XML) či RIA (Rich Internet Appliactions) znamenají používání buď JavaScriptu manipulujícího DOM stránky, nebo Flash plugin. Ovšem podstatou webu je, že zdroje mají být adresovatelné přes URL. AJAX či RIA aplikace nemívají URL, které lze někomu poslat.

Pokud chcete podporovat maximum uživatelů, používejte pouze HTML s formuláři a CSS, ale bez JavaScriptu, cookies, Flashe a podobně.

Pokud se rozhodnete používat JavaScript na straně klienta, připravte se na to, že budete muset oprogramovávat chyby ve všech prohlížečích najednou, tj. kód bude plný vyjímek pro různé verze různých prohlížečů.

Statistiky používaných prohlížečů jsou cenným vodítkem při rozhodování.

Podpora pro postižené

Pokud chcete podporovat maximum uživatelů, nebo pokud pracujete pro vládu, která to přímo vyžaduje (viz Web Content Accessibility Guidelines), webové aplikace musí být dostupné i lidem, kteří nevidí obrázky a barvy. Je proto vhodné zvyknout si na některá pravidla a ta dodržovat u všech webových aplikací:

  • u obrázků <img> vždy vyplňujte atribut alt="popis obrázku"
  • pokud používáte image map (obrázek s klikacími oblastmi), vždy za ním poskytněte seznam odkazů jako alternativu
  • nespoléhejte na označení barvou, vždy zvýrazněte i textově (třeba povinná pole formuláře kromě červené barvy označte i hvězdičkou)
  • poskytněte vždy alternativní textový popis pro multimédia, skripty, applety atp.
  • v hypertextových odkazech používejte smysluplný text, tedy ne "klikněte zde"
  • využívejte značek HTML v jejich sémantickém smyslu, tj. používejte seznamy, nadpisy, popisy polí formulářů atd. a formátujte je pomocí CSS

Role při vývoji webové aplikace

Vývoje webové aplikace se účastní lidé v různých úlohách, a obvykle jsou to i různí lidé s různými schopnostmi. Lze identifikovat následující role (viz J2EE blueprints).

  • programátor - sestavovatel aplikace
  • web designer
  • deployer
  • systémový administrátor
  • poskytovatel vývojových nástrojů
  • poskytovatel aplikačního serveru
  • poskytovatel komponent a knihoven

Lze předpokládat, že poslední tři role můžete vyřešit nákupem komerčních produktů či stažením open source produktů. Zatímco role programátora, deployera a systémového administrátora se obvykle dá spojit do jedné osoby, web designery bývají lidé s grafickým cítěním, kteří jsou zvyklí navrhovat grafický vzhled v jeho konečné podobě (tak aby vypadal dobře na jejich monitoru) a mívají potíže s určováním pravidel vzhledu pro různá rozlišení a prostředí. Důsledkem je nešvar stránek "optimalizovaných" pro 800x600 a prohlížeč MSIE. Problémy se spoluprací mezi programátory a web designery pomáhají řešit nástroje umožňující vidět webové stránky mimo aplikaci ve smysluplné podobě, např. Tapestry.

Co by měl vývojář znát

Při tvorbě webových aplikací je dobré znát následující technologie (tj. být mistrem mnoha řemesel :-):

  • HTML, CSS, JavaScript
  • HTTP (URL, Cookies, Redirect, MIME typy)
  • bezpečnost (SSL, hashovací funkce, šifrování, X509 certifikáty, PKI)
  • relační databáze (SQL, JDBC)
  • server-side nástroje (JavaEE, XML, XSLT, ...)

Nástroje pro tvorbu serverové části

Po tvorbu webové aplikace na straně serveru existuje mnoho metod a rychle se vyvíjejí. Uveďme historický vývoj:

  • CGI (Commong Gateway Interface) rozhraní umožňující generovat stránky externě spuštěnými programy
  • PHP a ostatní skriptovací nástroje pro vkládání kódu do HTML textu
  • Java servlety s možností udržování HttpSession
  • JSP stránky, WebMacro, Freemarker a ostatní šablonovací nástroje použité servlety
  • MVC rámce založené na zpracování requestů (Apache Struts, Spring MVC)
  • Java portlety umožňují sestavovat stránky portálů z více nezávislých aplikací
  • MVC rámce založené na vizuálních komponentách (JSF, Tapestry,Stripes)
  • MVC rámce založené na principu konvence má přednost před konfigurací (Ruby-on-Rails a následovníci)