SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Rich Internet
  Applications 2009




10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
2
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
Agenda
• Online aplikace – chtěná závislost?

• Co je Rich Internet Application

• Co je AJAX, výhody a nevýhody

• HTML 5

• Pluginové technologie
   • Adobe Flex
   • Silverlight
   • Java, JavaFX a ti další

• Výhody a nevýhody pluginových RIA technologií

• AJAX vs. plugin – co je lepší?


                                                  3
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
Online aplikace přinášejí nechtěné
 závislosti budovat z ávis los t na online a plikac í c h,
•Ne ž z a č ne te
myslete na
to, jak budete fungovat bez nich
•Zvažujte výhody offline klientů
  •Nepřenáší v požadavcích také UI
  •Nevyžaduje trvalé spojení
  •Může požadavky uložit do fronty a odeslat najednou až při
  spojení




                                                               4
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
Co je Rich Internet Application

• E xis tuje s ilná s pojitos t s internete m.
   • MS Word RIA není
   • eBay Desktop je
   • Mých5 ?

• Mo ž nos ti U I s e blí ž í tra di č ním de s ktopov ý m
  aplika c ím
   • rychlá odezva, drag&drop, klávesové zkratky…

• Snadnost spuštění aplikace se blíží navštívení
  webové stránky
  • není komplikovaný instalátor
  • Nedochází ke stahování UI při každém požadavku

                                                             5
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
Esmska – offline desktop aplikace




                                    6
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
Resco Contact Manager (Windows
Mobile)




                                   7
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
Asistenka Anna (online
web)




                                        8
     10.4.2009 - Pavel Růžička [MCPD]
     Product Development Department
Co je Rich Internet Application

•   GMAIL
•   Outlook Web Access
•   MQC
•   RIA != AJAX




                                   9
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
HTML - HyperText Markup Language

HTML a HTTP je určeno pro dokumenty

   • Sémantika pro složité dokumenty

   • Request/response, bezstavový protokol

   • Omezená interakce s uživatelem

   • Beztypová komunikace jen pomocí GET/POST

• Používáme (zneužíváme) ho pro tvorbu GUI:
   • Autentizace, autorizace
   • Nutnost rychlé odezvy na požadavky
   • Pokročilé zadávání strukturovaných dat


                                                10
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
Co je AJAX




                                   11
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
AJAX není zlato, co se třpytí
• P ou ž í váme ( z neu ž í váme) ho pro tvorbu G U I:
   • Autentizace, autorizace
   • Nutnost rychlé odezvy na požadavky
   • Pokročilé zadávání strukturovaných dat

• Není možné řídit crossdomain přístup
  • lze sice obejít přes JSON, ale je to pracné, nákladné
• Prohlížečů je mnoho - odladit aplikaci pro každý je obtížné a
  nákladné.
• Výkonnost JavaScriptu je špatná – jednovláknové zpracování
• Technologické možnosti HTML/CSS jsou omezené
• Standardy se vyvíjejí pomalu (HTML 5 ?)
• Podpora AJAX vývoje v nástrojích je v porovnání s jinými
  technologiemi slabá
• JavaScript má mnoho odlišností od "tradičních" jazyků typu Java
  nebo C# - bariéra pro vývojáře zkušené serverových nebo
  desktopových aplikací.
                                                                    12
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
HTML 5 na pomezí ?
• Rozšíření formulářů - WebForms2
        <input type="datetime„ required />

• Sémantické značky
        <header>, <footer>, <nav>, <aside>,        <section>, <article>, <dialog>

• Bezpečný iframe – sandbox
• Web Workers (vlákna na pozadí)
• Komunikace mezi okny
        frame1.postMessage('data', 'http://www.example.com/');
• Data Storage
        localStorage.setItem('key', data);
• AJAX s historií
        history.pushState()
• Audio, video, canvas
        <video src="soubor.ogg"></video>
        <canvas> <img href="obrazek.png" alt="...desc..."> </canvas>

• Offline webové aplikace – manifest offline souborů
        <html manifest="Aplikace.manifest">

                                                                                    13
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
AJAX versus zbytek světa




                                   14
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
AJAX výhody a nevýhody

Výhody                             Nevýhody

•Snížení objemu                    •Zvýšení objemu
přenášených dat                    přenášených dat

•Zrychlení odezvy UI               •Zpomalení odezvy UI

•Snížení zátěže serveru            •Zvýšení zátěže serveru

•Vizuální přitažlivost             •Snížená přístupnost

•Buzzword compatibility            •Nová bezpečnostní rizika


                                                               15
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
Plugin ve webové stránce
• využívá browser jako hostitele (klasický příklad – flash
  ve stránce)




                                                             16
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
Pluginové technologie

• Adobe Flex

• Microsoft SilverLight

• Java, JavaFX a další...




                                   17
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
Adobe Flex

•definice uživatelských
rozhraní pomocí MXML
se podobá HTML

•stylování aplikace lze
zařídit pomocí
podmnožiny CSS

•ActionScript 3 dobře
kombinuje rysy
JavaScriptu a Javy ->
nižší bariéry pro vývojáře


                                         18
      10.4.2009 - Pavel Růžička [MCPD]
      Product Development Department
Adobe Flex

• vyspělá technologie, sázka na jistotu

• Flex framework a základní vývojářské nástroje zdarma

• zdrojové kódy jsou textové soubory (na rozdíl od.fla)

• v prostředí Adobe AIR můžeme aplikace spustit v prohlížeči,
  ale také instalovat na desktop (cross-platform)

• je aktivně vyvíjen
   • již nyní existuje řada komponent a open source projektů




                                                                19
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
Adobe Flex diagram




                                   20
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
Silverlight 2.0
• Podporuje několik jazyků
   • C# , VB.NET
   • Ruby, Phython i PHP
   • prezentace (design) může využít formát XAML
• OOP koncept na vyšší úrovni než v ActionScriptu
   • Dostupná je podmnožina .NET Frameworku avšak kompatibilní s
     plným .NET
• Cross-platformní
   • Windows, Mac OS a Linux (projekt Moonlight)
   • prohlížeče Windows Explorer, Firefox, Opera nebo Safari
• SilverLight Mobile
   • v současnosti podpora Windows Mobile, Nokia S60
   • 3.0 má být skutečně cross-platform
• Server/klient vývoj těží z jednotného modelu a jazyka
   • žádný speciální serverový framework, využívá běžné webservice/
     WCF
   • výhodné z pohledu nároků na znalosti vývojářů - nákladů
   • vývojářů .NET je řádově více než Flex vývojářů
• Instalace v jednotkách megabajtů (5 MB)
   • snadná a rychlá, podobná instalaci Flash Playeru
                                                                  21
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
SilverLight – XAML a .NET
<Canvas xmlns="http://schemas.microsoft.com/client/2007"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        MouseEnter="OnMouseEnter">
   <TextBlock Canvas.Top="30" Foreground="#FFFF3333">
      Ahoj světe
   </TextBlock>
</Canvas>



Canvas canvas = new Canvas();
canvas.MouseEnter += new MouseEventHandler(OnMouseEnter);

TextBlock t = new TextBlock();
t.SetValue(Canvas.TopProperty, 30);
t.Text = "Ahoj světe";
Color ratherRed = Color.FromArgb(0xFF, 0xFF, 0x33, 0x33);
t.Foreground = new SolidColorBrush(ratherRed);
canvas.Children.Add(t);


                                                                 22
         10.4.2009 - Pavel Růžička [MCPD]
         Product Development Department
SilverLight WebService
Interoperability




                                   23
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
Java, JavaFX

• Java jednou z prvních RIA technologií – applety

• Java applety si vybudovaly špatnou reputaci

• Sun proto přichází s technologií JavaFX
   • zatím hluboko v alfa fázi vývoje

• Pravděpodobně nový model podobný Flexu nebo Silverlightu
   • běhovým prostředím zůstane tradiční "plná" Java
   • řada z původních nevýhod appletů tak zůstane zachována

• Mohla by být zajímavá pro intranety nebo pro jiné, specifické
  scénáře



                                                              24
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
... a ti další

• oblast RIA není úplně přesně vymezená

• v principu podobné Flexu a Silverlightu
   • XUL
   • Mozilla Prism
   • Curl
   • OpenLaszlo
   •…

• Google Gears výjimečné
   • přidává do typicky webových aplikací offline podporu



                                                            25
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
OpenLaszló diagram




                                   26
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
Výhody pluginových technologií

• Plugin od jednoho dodavatele
   • odpadá ladění pro různé prohlížeče

• Výkon řádově lepší než u JavaScriptového interpretu
   • podporuje multi-threading

• Odpadají omezení HTML/CSS
   • z důležitých funkcí např. podpora kryptografie, zabezpečení

• Vytvořeno na míru vývojářům, ne grafikům nebo
  autorům textů

• Podpora v nástrojích
   • Flex nebo Silverlight mají funkční WYSIWYG
   • jinak často nechybí kontrola syntaxe, debugging

                                                                   27
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
Nevýhody pluginových technologií

• Je potřeba plugin - to je nevýhoda číslo jedna
   • nikdy nebude tak rozšířený jako samotné webové prohlížeče

• FlashPlayer obsahuje až 95 % počítačů
   • ostatní technologie bohužel méně

• Aplikace se v prohlížeči nechová jako běžná webová stránka
   •   například nefungují klávesové zkratky prohlížeče
   •   může být problém označování/kopírování textu a jeho tisk
   •   problematické je tlačítko "zpět„
   •   políčka pro zadání textu si nepamatují předchozí vstupy
   •   password manager si nepamatuje hesla
   •   zhoršená nebo žádná přístupnost
   •   může posílat nezašifrovaná HTTP data, ačkoli stránka byla načtena přes
       HTTPS




                                                                                28
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
AJAX versus plugin – AJAX má problém?

• crossdomain problém

• nutno odlaďovat pro každý browser

• obtížné přizpůsobení pro různé druhy browserů

• problémy ovládání s navigací back-forward

• obtížné ladění

• zanáší nepřístupnost do web aplikace

• zhusta jde o kombinaci statických a generovaných skriptů
  • může být skoro nemožné používat z lokální kopie např. v telefonu

• může provádět pouze to, co podporuje JavaScript
  • prakticky vyloučena interakce s prostředky klienta

                                                                       29
   10.4.2009 - Pavel Růžička [MCPD]
   Product Development Department
AJAX versus plugin – plugin může více!
• může řídit přístup z různých domén
  • cross-domain client access policy svoluje/zamezuje užití služby z jiné
    domény
  • ScriptAccess parametr ve stránce svoluje/zamezuje skriptování hostujícího
    dokumentu

• může u klienta ukládat data (100kb – 1Mb)

• ačkoli zanáší nepřístupnost do web aplikace, některé asistivní
  technologie umějí pluginové technologie omezeně zpracovávat a
  zlepšují se

• lze snadno umístit u klienta jako jeden soubor a využívat jej jako
  lokální aplikaci

• aplikace může omezeně pracovat s prostředky klienta

• aplikace má přístup k DOM stránky – může tedy ve stránce
  provádět totéž, co AJAX nebo libovolný skript                                 30
   10.4.2009 - Pavel Růžička [MCPD]
   Product Development Department
Volba RIA technologie pro web

• Dokument je dokument
   • nesmí se měnit „pod rukama“
   • tj. žádný AJAX a nic podobného

• Aplikace je aplikace
   • nesmí vyzrazovat svůj stav (např. v URL)
   • ideální pro pluginové RIA technologie
   • AJAX se nehodí -> pracnost údržby, problém offline podpory,
     různých klientů...

• Formulář je jednoduchá aplikace
   • není to dokument
   • je pěkné ho zpestřit AJAXem
   • měl by být funkční i bez AJAXu, byť omezeně

• AJAX by měl být použit jen jako “koření“ web aplikací

                                                                   31
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
Volba RIA technologie
• Zvažujte důsledky online aplikací
  •nechtěné závislosti
  •tzv. „molochální systémy“
• Nenadužívejte AJAX tam, kde se nehodí
   • používejte jako „koření“ online aplikací (mash-upy,
     validace...)

• Pro bohaté aplikace volte pluginové
  technologie
   • nabízí více než AJAX
   • mohou fungovat offline
   • jsou přenositelné mezi různými browsery/zařízeními
   • podpora HTML5 je slabá
                                                           32
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
• RIA je aktuálním a důležitým tématem vývoje software
• Investují do něj všichni velikáni oboru
• Poptávka po kvalitních RIA vývojářích je vysoká.
• Aplikace v prohlížeči - dvě velké, ostře oddělené skupiny
   • AJAX a platformy vyžadující plugin.

• Překotný vývoj „plugin RIA technologií“
   • AJAX už mnoho let stojí na stejných principech.

• HTML5 na pomezí současných AJAX a pluginových aplikací
   • podpora v prohlížečích je slabá
• Nejzajímavější jsou dvě - Adobe Flex a Microsoft Silverlight
   • Flex vyspělá platforma, díky Flash Playeru na více než 95 % prohlížečů
   • Silverlight zatím jen zajímavým malým "tygrem„, na vyšší rozšířenost si musíme
     počkat


Nejsou špatné a dobré technologie.
Jsou technologie vhodně a nevhodně
použité.
                                                                                33
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
Děkuji za pozornost 




                                   34
10.4.2009 - Pavel Růžička [MCPD]
Product Development Department
Zdroje

• Rich Internet Applications v roce 2008
• Rich Internet Application
• Engineering Rich Internet Applications
• Projekt Esmska
• Resco Contanct Manager
• Ajax: A New Approach to Web Applications
• Ajaxian
• SilverLight.net
• Nové typy útoků na nové Web (2.0) aplikace
• SilverLight Cross-domain client access policy
                                                  35
       10.4.2009 - Pavel Růžička [MCPD]
       Product Development Department

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

TNPW2-2014-02
TNPW2-2014-02TNPW2-2014-02
TNPW2-2014-02
 
TNPW2-2012-02
TNPW2-2012-02TNPW2-2012-02
TNPW2-2012-02
 
TNPW2-2013-04
TNPW2-2013-04TNPW2-2013-04
TNPW2-2013-04
 
TNPW2-2013-02
TNPW2-2013-02TNPW2-2013-02
TNPW2-2013-02
 
TNPW2-2016-05
TNPW2-2016-05TNPW2-2016-05
TNPW2-2016-05
 
TNPW2-2011-08
TNPW2-2011-08TNPW2-2011-08
TNPW2-2011-08
 
TNPW2-2012-08
TNPW2-2012-08TNPW2-2012-08
TNPW2-2012-08
 
TNPW2-2016-07
TNPW2-2016-07TNPW2-2016-07
TNPW2-2016-07
 
TNPW2-2011-04
TNPW2-2011-04TNPW2-2011-04
TNPW2-2011-04
 
TNPW2-2012-06
TNPW2-2012-06TNPW2-2012-06
TNPW2-2012-06
 
Moderni trendy ve_vyvoji_aplikaci
Moderni trendy ve_vyvoji_aplikaciModerni trendy ve_vyvoji_aplikaci
Moderni trendy ve_vyvoji_aplikaci
 
TNPW2-2016-06
TNPW2-2016-06TNPW2-2016-06
TNPW2-2016-06
 
TNPW2-2016-04
TNPW2-2016-04TNPW2-2016-04
TNPW2-2016-04
 
Responzivní webdesign (pro MS Fest)
Responzivní webdesign (pro MS Fest)Responzivní webdesign (pro MS Fest)
Responzivní webdesign (pro MS Fest)
 
Čtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScriptČtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScript
 
TNPW2-2014-05
TNPW2-2014-05TNPW2-2014-05
TNPW2-2014-05
 
TNPW2-2016-01
TNPW2-2016-01TNPW2-2016-01
TNPW2-2016-01
 
TNPW2-2011-06
TNPW2-2011-06TNPW2-2011-06
TNPW2-2011-06
 
TNPW2-2013-01
TNPW2-2013-01TNPW2-2013-01
TNPW2-2013-01
 
Poskytování aplikací z cloudu
Poskytování aplikací z clouduPoskytování aplikací z cloudu
Poskytování aplikací z cloudu
 

Andere mochten auch

Future of interface design 2010
Future of interface design 2010Future of interface design 2010
Future of interface design 2010Pavel Růžička
 
Usable tables in HTML, VXML
Usable tables in HTML, VXMLUsable tables in HTML, VXML
Usable tables in HTML, VXMLPavel Růžička
 
Make a shorter list by entering letters via DTMF
Make a shorter list by entering letters via DTMFMake a shorter list by entering letters via DTMF
Make a shorter list by entering letters via DTMFPavel Růžička
 
How to enhance existing voice app with text channel
How to enhance existing voice app with text channelHow to enhance existing voice app with text channel
How to enhance existing voice app with text channelPavel Růžička
 
Non functional requirements
Non functional requirementsNon functional requirements
Non functional requirementsPavel Růžička
 

Andere mochten auch (6)

Future of interface design 2010
Future of interface design 2010Future of interface design 2010
Future of interface design 2010
 
Microformats
MicroformatsMicroformats
Microformats
 
Usable tables in HTML, VXML
Usable tables in HTML, VXMLUsable tables in HTML, VXML
Usable tables in HTML, VXML
 
Make a shorter list by entering letters via DTMF
Make a shorter list by entering letters via DTMFMake a shorter list by entering letters via DTMF
Make a shorter list by entering letters via DTMF
 
How to enhance existing voice app with text channel
How to enhance existing voice app with text channelHow to enhance existing voice app with text channel
How to enhance existing voice app with text channel
 
Non functional requirements
Non functional requirementsNon functional requirements
Non functional requirements
 

Ähnlich wie Rich Internet Applications 2009 (Czech)

Výběr vhodných technologii pro startup v prostředí cloudu
Výběr vhodných technologii pro startup v prostředí clouduVýběr vhodných technologii pro startup v prostředí cloudu
Výběr vhodných technologii pro startup v prostředí clouduJan Kodera
 
Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]Tomáš Kukol
 
Co přináší Oracle Database 12c Release 2
Co přináší Oracle Database 12c Release 2Co přináší Oracle Database 12c Release 2
Co přináší Oracle Database 12c Release 2MarketingArrowECS_CZ
 
Oracle Ravello: Přesuňte si prostředí VMware & KVM do cloudu
Oracle Ravello: Přesuňte si prostředí VMware & KVM do clouduOracle Ravello: Přesuňte si prostředí VMware & KVM do cloudu
Oracle Ravello: Přesuňte si prostředí VMware & KVM do clouduMarketingArrowECS_CZ
 
2010 X33EJA Web Services
2010 X33EJA Web Services2010 X33EJA Web Services
2010 X33EJA Web ServicesMartin Ptáček
 
Webinář: Vylepšete ochranu virtuální infrastruktury - Veeam Backup & Replication
Webinář: Vylepšete ochranu virtuální infrastruktury - Veeam Backup & ReplicationWebinář: Vylepšete ochranu virtuální infrastruktury - Veeam Backup & Replication
Webinář: Vylepšete ochranu virtuální infrastruktury - Veeam Backup & ReplicationJaroslav Prodelal
 
WordPress REST API + React + TypeScript
WordPress REST API + React + TypeScriptWordPress REST API + React + TypeScript
WordPress REST API + React + TypeScriptBorek Bernard
 
Blend for Visual Studio 2015
Blend for Visual Studio 2015Blend for Visual Studio 2015
Blend for Visual Studio 2015Jiri Danihelka
 
Borek Bernard: TypeScript - příčetný jazyk pro web
Borek Bernard: TypeScript - příčetný jazyk pro webBorek Bernard: TypeScript - příčetný jazyk pro web
Borek Bernard: TypeScript - příčetný jazyk pro webDevelcz
 
Semináře M-Files: Konec hledání řešení pro správu firemních dat
Semináře M-Files: Konec hledání řešení pro správu firemních datSemináře M-Files: Konec hledání řešení pro správu firemních dat
Semináře M-Files: Konec hledání řešení pro správu firemních datJaroslav Prodelal
 
Webový front-end ve službách mobilního vývojáře
Webový front-end  ve službách mobilního  vývojáře Webový front-end  ve službách mobilního  vývojáře
Webový front-end ve službách mobilního vývojáře Martin Michálek
 
Daniel Steigerwald: Jak psát mobilní webové aplikace
Daniel Steigerwald: Jak psát mobilní webové aplikaceDaniel Steigerwald: Jak psát mobilní webové aplikace
Daniel Steigerwald: Jak psát mobilní webové aplikaceDevelcz
 
Spusťte si existující VMware infrastrukturu v Cloudu bez jakékoliv změny
Spusťte si existující VMware infrastrukturu v Cloudu bez jakékoliv změnySpusťte si existující VMware infrastrukturu v Cloudu bez jakékoliv změny
Spusťte si existující VMware infrastrukturu v Cloudu bez jakékoliv změnyMarketingArrowECS_CZ
 
2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEEMartin Ptáček
 
Zkušenosti s implementací privátních cloud platforem v Evropě
Zkušenosti s implementací privátních cloud platforem v EvropěZkušenosti s implementací privátních cloud platforem v Evropě
Zkušenosti s implementací privátních cloud platforem v Evropě Jan Svoboda
 
KeePass: Základy, pokročilé využití a KeePass Enterprise (čtvrtek, 14.4.2022)
KeePass: Základy, pokročilé využití a KeePass Enterprise (čtvrtek, 14.4.2022)KeePass: Základy, pokročilé využití a KeePass Enterprise (čtvrtek, 14.4.2022)
KeePass: Základy, pokročilé využití a KeePass Enterprise (čtvrtek, 14.4.2022)Michal ZOBEC
 

Ähnlich wie Rich Internet Applications 2009 (Czech) (20)

Výběr vhodných technologii pro startup v prostředí cloudu
Výběr vhodných technologii pro startup v prostředí clouduVýběr vhodných technologii pro startup v prostředí cloudu
Výběr vhodných technologii pro startup v prostředí cloudu
 
Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]
 
TNPW2-2012-03
TNPW2-2012-03TNPW2-2012-03
TNPW2-2012-03
 
TNPW2-2013-03
TNPW2-2013-03TNPW2-2013-03
TNPW2-2013-03
 
Co přináší Oracle Database 12c Release 2
Co přináší Oracle Database 12c Release 2Co přináší Oracle Database 12c Release 2
Co přináší Oracle Database 12c Release 2
 
Oracle Ravello: Přesuňte si prostředí VMware & KVM do cloudu
Oracle Ravello: Přesuňte si prostředí VMware & KVM do clouduOracle Ravello: Přesuňte si prostředí VMware & KVM do cloudu
Oracle Ravello: Přesuňte si prostředí VMware & KVM do cloudu
 
2010 X33EJA Web Services
2010 X33EJA Web Services2010 X33EJA Web Services
2010 X33EJA Web Services
 
Webové technologie
Webové technologieWebové technologie
Webové technologie
 
Webinář: Vylepšete ochranu virtuální infrastruktury - Veeam Backup & Replication
Webinář: Vylepšete ochranu virtuální infrastruktury - Veeam Backup & ReplicationWebinář: Vylepšete ochranu virtuální infrastruktury - Veeam Backup & Replication
Webinář: Vylepšete ochranu virtuální infrastruktury - Veeam Backup & Replication
 
WordPress REST API + React + TypeScript
WordPress REST API + React + TypeScriptWordPress REST API + React + TypeScript
WordPress REST API + React + TypeScript
 
Blend for Visual Studio 2015
Blend for Visual Studio 2015Blend for Visual Studio 2015
Blend for Visual Studio 2015
 
Borek Bernard: TypeScript - příčetný jazyk pro web
Borek Bernard: TypeScript - příčetný jazyk pro webBorek Bernard: TypeScript - příčetný jazyk pro web
Borek Bernard: TypeScript - příčetný jazyk pro web
 
Semináře M-Files: Konec hledání řešení pro správu firemních dat
Semináře M-Files: Konec hledání řešení pro správu firemních datSemináře M-Files: Konec hledání řešení pro správu firemních dat
Semináře M-Files: Konec hledání řešení pro správu firemních dat
 
Webový front-end ve službách mobilního vývojáře
Webový front-end  ve službách mobilního  vývojáře Webový front-end  ve službách mobilního  vývojáře
Webový front-end ve službách mobilního vývojáře
 
Daniel Steigerwald: Jak psát mobilní webové aplikace
Daniel Steigerwald: Jak psát mobilní webové aplikaceDaniel Steigerwald: Jak psát mobilní webové aplikace
Daniel Steigerwald: Jak psát mobilní webové aplikace
 
Spusťte si existující VMware infrastrukturu v Cloudu bez jakékoliv změny
Spusťte si existující VMware infrastrukturu v Cloudu bez jakékoliv změnySpusťte si existující VMware infrastrukturu v Cloudu bez jakékoliv změny
Spusťte si existující VMware infrastrukturu v Cloudu bez jakékoliv změny
 
Joomla! na MS Windows
Joomla! na MS WindowsJoomla! na MS Windows
Joomla! na MS Windows
 
2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE
 
Zkušenosti s implementací privátních cloud platforem v Evropě
Zkušenosti s implementací privátních cloud platforem v EvropěZkušenosti s implementací privátních cloud platforem v Evropě
Zkušenosti s implementací privátních cloud platforem v Evropě
 
KeePass: Základy, pokročilé využití a KeePass Enterprise (čtvrtek, 14.4.2022)
KeePass: Základy, pokročilé využití a KeePass Enterprise (čtvrtek, 14.4.2022)KeePass: Základy, pokročilé využití a KeePass Enterprise (čtvrtek, 14.4.2022)
KeePass: Základy, pokročilé využití a KeePass Enterprise (čtvrtek, 14.4.2022)
 

Rich Internet Applications 2009 (Czech)

  • 1. Rich Internet Applications 2009 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 2. 2 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 3. Agenda • Online aplikace – chtěná závislost? • Co je Rich Internet Application • Co je AJAX, výhody a nevýhody • HTML 5 • Pluginové technologie • Adobe Flex • Silverlight • Java, JavaFX a ti další • Výhody a nevýhody pluginových RIA technologií • AJAX vs. plugin – co je lepší? 3 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 4. Online aplikace přinášejí nechtěné závislosti budovat z ávis los t na online a plikac í c h, •Ne ž z a č ne te myslete na to, jak budete fungovat bez nich •Zvažujte výhody offline klientů •Nepřenáší v požadavcích také UI •Nevyžaduje trvalé spojení •Může požadavky uložit do fronty a odeslat najednou až při spojení 4 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 5. Co je Rich Internet Application • E xis tuje s ilná s pojitos t s internete m. • MS Word RIA není • eBay Desktop je • Mých5 ? • Mo ž nos ti U I s e blí ž í tra di č ním de s ktopov ý m aplika c ím • rychlá odezva, drag&drop, klávesové zkratky… • Snadnost spuštění aplikace se blíží navštívení webové stránky • není komplikovaný instalátor • Nedochází ke stahování UI při každém požadavku 5 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 6. Esmska – offline desktop aplikace 6 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 7. Resco Contact Manager (Windows Mobile) 7 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 8. Asistenka Anna (online web) 8 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 9. Co je Rich Internet Application • GMAIL • Outlook Web Access • MQC • RIA != AJAX 9 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 10. HTML - HyperText Markup Language HTML a HTTP je určeno pro dokumenty • Sémantika pro složité dokumenty • Request/response, bezstavový protokol • Omezená interakce s uživatelem • Beztypová komunikace jen pomocí GET/POST • Používáme (zneužíváme) ho pro tvorbu GUI: • Autentizace, autorizace • Nutnost rychlé odezvy na požadavky • Pokročilé zadávání strukturovaných dat 10 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 11. Co je AJAX 11 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 12. AJAX není zlato, co se třpytí • P ou ž í váme ( z neu ž í váme) ho pro tvorbu G U I: • Autentizace, autorizace • Nutnost rychlé odezvy na požadavky • Pokročilé zadávání strukturovaných dat • Není možné řídit crossdomain přístup • lze sice obejít přes JSON, ale je to pracné, nákladné • Prohlížečů je mnoho - odladit aplikaci pro každý je obtížné a nákladné. • Výkonnost JavaScriptu je špatná – jednovláknové zpracování • Technologické možnosti HTML/CSS jsou omezené • Standardy se vyvíjejí pomalu (HTML 5 ?) • Podpora AJAX vývoje v nástrojích je v porovnání s jinými technologiemi slabá • JavaScript má mnoho odlišností od "tradičních" jazyků typu Java nebo C# - bariéra pro vývojáře zkušené serverových nebo desktopových aplikací. 12 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 13. HTML 5 na pomezí ? • Rozšíření formulářů - WebForms2 <input type="datetime„ required /> • Sémantické značky <header>, <footer>, <nav>, <aside>, <section>, <article>, <dialog> • Bezpečný iframe – sandbox • Web Workers (vlákna na pozadí) • Komunikace mezi okny frame1.postMessage('data', 'http://www.example.com/'); • Data Storage localStorage.setItem('key', data); • AJAX s historií history.pushState() • Audio, video, canvas <video src="soubor.ogg"></video> <canvas> <img href="obrazek.png" alt="...desc..."> </canvas> • Offline webové aplikace – manifest offline souborů <html manifest="Aplikace.manifest"> 13 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 14. AJAX versus zbytek světa 14 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 15. AJAX výhody a nevýhody Výhody Nevýhody •Snížení objemu •Zvýšení objemu přenášených dat přenášených dat •Zrychlení odezvy UI •Zpomalení odezvy UI •Snížení zátěže serveru •Zvýšení zátěže serveru •Vizuální přitažlivost •Snížená přístupnost •Buzzword compatibility •Nová bezpečnostní rizika 15 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 16. Plugin ve webové stránce • využívá browser jako hostitele (klasický příklad – flash ve stránce) 16 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 17. Pluginové technologie • Adobe Flex • Microsoft SilverLight • Java, JavaFX a další... 17 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 18. Adobe Flex •definice uživatelských rozhraní pomocí MXML se podobá HTML •stylování aplikace lze zařídit pomocí podmnožiny CSS •ActionScript 3 dobře kombinuje rysy JavaScriptu a Javy -> nižší bariéry pro vývojáře 18 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 19. Adobe Flex • vyspělá technologie, sázka na jistotu • Flex framework a základní vývojářské nástroje zdarma • zdrojové kódy jsou textové soubory (na rozdíl od.fla) • v prostředí Adobe AIR můžeme aplikace spustit v prohlížeči, ale také instalovat na desktop (cross-platform) • je aktivně vyvíjen • již nyní existuje řada komponent a open source projektů 19 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 20. Adobe Flex diagram 20 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 21. Silverlight 2.0 • Podporuje několik jazyků • C# , VB.NET • Ruby, Phython i PHP • prezentace (design) může využít formát XAML • OOP koncept na vyšší úrovni než v ActionScriptu • Dostupná je podmnožina .NET Frameworku avšak kompatibilní s plným .NET • Cross-platformní • Windows, Mac OS a Linux (projekt Moonlight) • prohlížeče Windows Explorer, Firefox, Opera nebo Safari • SilverLight Mobile • v současnosti podpora Windows Mobile, Nokia S60 • 3.0 má být skutečně cross-platform • Server/klient vývoj těží z jednotného modelu a jazyka • žádný speciální serverový framework, využívá běžné webservice/ WCF • výhodné z pohledu nároků na znalosti vývojářů - nákladů • vývojářů .NET je řádově více než Flex vývojářů • Instalace v jednotkách megabajtů (5 MB) • snadná a rychlá, podobná instalaci Flash Playeru 21 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 22. SilverLight – XAML a .NET <Canvas xmlns="http://schemas.microsoft.com/client/2007" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" MouseEnter="OnMouseEnter"> <TextBlock Canvas.Top="30" Foreground="#FFFF3333"> Ahoj světe </TextBlock> </Canvas> Canvas canvas = new Canvas(); canvas.MouseEnter += new MouseEventHandler(OnMouseEnter); TextBlock t = new TextBlock(); t.SetValue(Canvas.TopProperty, 30); t.Text = "Ahoj světe"; Color ratherRed = Color.FromArgb(0xFF, 0xFF, 0x33, 0x33); t.Foreground = new SolidColorBrush(ratherRed); canvas.Children.Add(t); 22 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 23. SilverLight WebService Interoperability 23 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 24. Java, JavaFX • Java jednou z prvních RIA technologií – applety • Java applety si vybudovaly špatnou reputaci • Sun proto přichází s technologií JavaFX • zatím hluboko v alfa fázi vývoje • Pravděpodobně nový model podobný Flexu nebo Silverlightu • běhovým prostředím zůstane tradiční "plná" Java • řada z původních nevýhod appletů tak zůstane zachována • Mohla by být zajímavá pro intranety nebo pro jiné, specifické scénáře 24 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 25. ... a ti další • oblast RIA není úplně přesně vymezená • v principu podobné Flexu a Silverlightu • XUL • Mozilla Prism • Curl • OpenLaszlo •… • Google Gears výjimečné • přidává do typicky webových aplikací offline podporu 25 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 26. OpenLaszló diagram 26 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 27. Výhody pluginových technologií • Plugin od jednoho dodavatele • odpadá ladění pro různé prohlížeče • Výkon řádově lepší než u JavaScriptového interpretu • podporuje multi-threading • Odpadají omezení HTML/CSS • z důležitých funkcí např. podpora kryptografie, zabezpečení • Vytvořeno na míru vývojářům, ne grafikům nebo autorům textů • Podpora v nástrojích • Flex nebo Silverlight mají funkční WYSIWYG • jinak často nechybí kontrola syntaxe, debugging 27 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 28. Nevýhody pluginových technologií • Je potřeba plugin - to je nevýhoda číslo jedna • nikdy nebude tak rozšířený jako samotné webové prohlížeče • FlashPlayer obsahuje až 95 % počítačů • ostatní technologie bohužel méně • Aplikace se v prohlížeči nechová jako běžná webová stránka • například nefungují klávesové zkratky prohlížeče • může být problém označování/kopírování textu a jeho tisk • problematické je tlačítko "zpět„ • políčka pro zadání textu si nepamatují předchozí vstupy • password manager si nepamatuje hesla • zhoršená nebo žádná přístupnost • může posílat nezašifrovaná HTTP data, ačkoli stránka byla načtena přes HTTPS 28 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 29. AJAX versus plugin – AJAX má problém? • crossdomain problém • nutno odlaďovat pro každý browser • obtížné přizpůsobení pro různé druhy browserů • problémy ovládání s navigací back-forward • obtížné ladění • zanáší nepřístupnost do web aplikace • zhusta jde o kombinaci statických a generovaných skriptů • může být skoro nemožné používat z lokální kopie např. v telefonu • může provádět pouze to, co podporuje JavaScript • prakticky vyloučena interakce s prostředky klienta 29 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 30. AJAX versus plugin – plugin může více! • může řídit přístup z různých domén • cross-domain client access policy svoluje/zamezuje užití služby z jiné domény • ScriptAccess parametr ve stránce svoluje/zamezuje skriptování hostujícího dokumentu • může u klienta ukládat data (100kb – 1Mb) • ačkoli zanáší nepřístupnost do web aplikace, některé asistivní technologie umějí pluginové technologie omezeně zpracovávat a zlepšují se • lze snadno umístit u klienta jako jeden soubor a využívat jej jako lokální aplikaci • aplikace může omezeně pracovat s prostředky klienta • aplikace má přístup k DOM stránky – může tedy ve stránce provádět totéž, co AJAX nebo libovolný skript 30 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 31. Volba RIA technologie pro web • Dokument je dokument • nesmí se měnit „pod rukama“ • tj. žádný AJAX a nic podobného • Aplikace je aplikace • nesmí vyzrazovat svůj stav (např. v URL) • ideální pro pluginové RIA technologie • AJAX se nehodí -> pracnost údržby, problém offline podpory, různých klientů... • Formulář je jednoduchá aplikace • není to dokument • je pěkné ho zpestřit AJAXem • měl by být funkční i bez AJAXu, byť omezeně • AJAX by měl být použit jen jako “koření“ web aplikací 31 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 32. Volba RIA technologie • Zvažujte důsledky online aplikací •nechtěné závislosti •tzv. „molochální systémy“ • Nenadužívejte AJAX tam, kde se nehodí • používejte jako „koření“ online aplikací (mash-upy, validace...) • Pro bohaté aplikace volte pluginové technologie • nabízí více než AJAX • mohou fungovat offline • jsou přenositelné mezi různými browsery/zařízeními • podpora HTML5 je slabá 32 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 33. • RIA je aktuálním a důležitým tématem vývoje software • Investují do něj všichni velikáni oboru • Poptávka po kvalitních RIA vývojářích je vysoká. • Aplikace v prohlížeči - dvě velké, ostře oddělené skupiny • AJAX a platformy vyžadující plugin. • Překotný vývoj „plugin RIA technologií“ • AJAX už mnoho let stojí na stejných principech. • HTML5 na pomezí současných AJAX a pluginových aplikací • podpora v prohlížečích je slabá • Nejzajímavější jsou dvě - Adobe Flex a Microsoft Silverlight • Flex vyspělá platforma, díky Flash Playeru na více než 95 % prohlížečů • Silverlight zatím jen zajímavým malým "tygrem„, na vyšší rozšířenost si musíme počkat Nejsou špatné a dobré technologie. Jsou technologie vhodně a nevhodně použité. 33 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 34. Děkuji za pozornost  34 10.4.2009 - Pavel Růžička [MCPD] Product Development Department
  • 35. Zdroje • Rich Internet Applications v roce 2008 • Rich Internet Application • Engineering Rich Internet Applications • Projekt Esmska • Resco Contanct Manager • Ajax: A New Approach to Web Applications • Ajaxian • SilverLight.net • Nové typy útoků na nové Web (2.0) aplikace • SilverLight Cross-domain client access policy 35 10.4.2009 - Pavel Růžička [MCPD] Product Development Department