Mozilla pro vývojáře David Majda 14.4.2005 LinuxExpo 2005, Praha.

Slides:



Advertisements
Podobné prezentace
© 2000 VEMA počítače a projektování spol. s r. o..
Advertisements

Web Michal Žůrek Jak se na něj dívám já..
Webové služby nad IS/STAG 1 / 21 Seminář IS/STAG Kunžak 2008 Seminář IS/STAG – Kunžak 2008 Webové služby nad IS/STAG Lukáš Valenta.
Knihovny současnosti 2011, České Budějovice 13. – 15. září 2011
Mainstream Technologies, s.r.o.
Tvorba webových stránek
Martin Holý.  HTML  xHTML  CSS  JavaScript  PHP.
Rozšíření systému pro zátěžové testy o SOAP a agenty Zbyněk Pyšný.
Internetový (webový) prohlížeč. Druhy prohlížečů 1. byl v roce 1993 NCSA Mosaic Následovaly další … Netscape 1.0 Netscape 2.0 Netscape 3 Gold Zdroj:
Workflow Foundation Základy a architektura
Modelování procesů pomocí workflow
Office 2007 – klient Štěpán Bechynský Developer Evangelist Microsoft s.r.o.
T OOL FOR C OLLABORATIVE XML S CHEMA I NTEGRATION Jiří Meluzín.
Návrh architektury moderních informačních systémů
Adobe Dreamweaver CS4 Ing. Martin Dosedla.
Tvorba webů pomocí Web CMS Michal Neuwirth Product Manager Kentico Software s.r.o. Ondřej Výšek Samostatný konzultant Optimalizovane-it.
VY_32_INOVACE_4.3.IVT1.01/Ku Základní pojmy Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Mgr. Pavla Kubínková CZ.1.07/1.5.00/
Vývoj aplikací pro SharePoint
Úvod. školní: příprava na předmět Databázové systémy praktický: webové aplikace databázové systémy základy vývoje webových aplikací od návrhu databáze.
Návrh a tvorba WWW Přednáška 1
PHP – Základy programování
Aplikace VT v hospodářské praxi internetové technologie Ing. Roman Danel, Ph.D. VŠB – TU Ostrava.
SDRUK-IT Možnosti využití programového vybavení WebArchivu dalšími subjekty Ing. Petr Žabička, MZK.
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
Jazyk PHP Programovací jazyk PHP (Hypertext preprocessor) je skriptovací jazyk, který běží na straně serveru. KLIENT - SERVER Server posílá do vašeho počítače.
Walter Schorge Archa – Open Source archivní informační systém v NTM Archivy, knihovny a muzea v digitálním světě
Dokumentace objektů a zveřejnění funkcí
Mozilla z pohledu vývojáře David Majda, CZilla — prezentace na předmět Linux (SWI043) na MFF UK.
Představení nové verze OPSI Kamil Malinka Martin Lebeda PROJEKT financovaný z Operačního programu Vzdělávání pro konkurenceschopnost ZVYŠOVÁNÍ IT GRAMOTNOSTI.
Dodržujeme webové standardy Štěpán Bechynský Developer Evangelist Microsoft
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
Internetový prohlížeč
MAPGUIDE OPEN SOURCE - MAPOVÝ SERVER Student: Bc. Martin Soukup Předmět: GEIS Přednášející : R NDr. Tomáš Vaníček, P hD. Datum: Web:
Web 2.0 Štěpán Bechynský Microsoft. Web 2.0 aplikace.
Návrh a tvorba WWW Přednáška 13 Vývoj webových aplikací.
AJAX nejmodernější webová technologie… seminář pro učitele ZŠ a SŠ Mgr. Marek Osuchowski Ostravská univerzita © 2011.
Úvod do JavaScriptu JavaScript je p JavaScript je programovací jazyk, který se používá na webových stránkách. JavaScript je typu KLIENT - KLIENT To znamená,
Copyright (C) 1999 VEMA počítače a projektování, spol. s r.o.
Mozilla z pohledu vývojáře David Majda, CZilla — prezentace na předmět Linux (SWI043) na MFF UK.
Tvorba efektních www stránek pro každého Od historie až po současnost… Úvod Porovnání Validace Prohlížeče Závěr.
Internetové publikování Doc. Ing. Petr Zámostný, Ph.D. místnost: A-72a tel.: 4222, 4167 (sekretariát ústavu 111)
Programování POCSI. Programovani/POCSI2 Základní pojmy Akce - děj nad objekty, mající začátek a konec, a mající přesně definovaný účinek. Příkaz - popis.
Vývojová platforma Mozilla David Majda, CZilla — LinuxExpo 2006, Praha.
Geoinformatika Presentace diplomové práce Využití mapového serveru ArcIMS pro dynamické generování statistických map v prostředí WWW Vedoucí práce : Ing.
PHP Programy pro tvorbu WWW stránek - 01
XSLT překladač Marek Běhálek Informatika a aplikovaná matematika FEI VŠB-TU Ostrava.
JavaScript úvod. Jazyky webového vývojáře Dynamická stránka  aktivně mění svůj obsah v reakci na činnost uživatele  zpracování na straně serveru (PHP,
WEBOVÝ PORTÁL O POČÍTAČOVÝCH HRÁCH ROMAN POSPĚCH.
Rezervační systém v prostředí XUL Zdeněk Novák, Petr Ondrejka.
Školák.cz Piš a sdílej své sešity, jednoduše, rychle, v pohodě. Autoři: Jiří Hon a Lukáš Helebrandt.
Jak fungují webové stránky Úvod do HTML (1). Projekt: CZ.1.07/1.5.00/ OAJL - inovace výuky Příjemce: Obchodní akademie, odborná škola a praktická.
Tvorba WWW stránek. Hyperlink Odkaz, bývá označený jinou barvou a podtržený Odkaz, bývá označený jinou barvou a podtržený Reaguje na událost myši – Reaguje.
Školák.cz Piš a sdílej své sešity, jednoduše, rychle, v pohodě. Autoři: Jiří Hon a Lukáš Helebrandt.
EU peníze školám Registrační číslo projektu CZ.1.07/1.4.00/ Název projektu Inovace školství Šablona - název Inovace a zkvalitnění výuky prostřednictvím.
Internet (služby Internetu, WWW) Služby Internetu WWW (World Wide Web) – dnes nejrozšířenější služba; spoustě lidí splývá s Internetem jako takovým WWW.
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
Web services – když si Java sedne s M$ na kus řeči Ing. Petr Přibyl CCA Group a.s.
Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava Šablona 32 VY_32_INOVACE_034.ICT.34 Tvorba webových stránek – PHP technologie.
.NET framework platforma Jiří Pokorný
Internetový prohlížeč
Vývoj mobilních aplikací a jejich výhody
školák Piš a sdílej své sešity, jednoduše, rychle, v pohodě.
Programovací jazyk JavaScript
Programovací jazyk JavaScript
OSP semestrální práce Pavel Mrázek
Hybridní mobilní aplikace pro Android
TNPW1 JavaScript Ing. Jiří Štěpánek.
Web Application Scanning
Tvorba webových stránek
Desktopové aplikace na .NET Core
Transkript prezentace:

Mozilla pro vývojáře David Majda LinuxExpo 2005, Praha

David Majda: Mozilla pro vývojáře2 Cíle této přednášky 1.Vnitřní architektura Mozilly 2.Vývoj aplikací v Mozille –XUL –tvorba rozšíření 3.Je Mozilla to pravé pro vaši aplikaci? –malý test na závěr

David Majda: Mozilla pro vývojáře3 Co je vlastně Mozilla? •1998 – Netscape uvolňuje svůj prohlížeč jako open source (Mozilla.org) •použitá licence MPL umožňuje začlenění i do komerčních aplikací •rozhodnutí prohlížeč z větší části přepsat, vznik Mozilla Suite •vzniká rozsáhlá aplikační platforma •renderovací engine Gecko •2003 – vznik Mozilla Foundation •podzim 2004 – Firefox/Thunderbird 1.0

David Majda: Mozilla pro vývojáře4 Architektura Mozilly NSPR JavaScript engine XPCOM XPConnect zpracování HTML, CSS, XML, XUL, XBL, RDF C C++ XML JS aplikace – GUIaplikace – komponenty pomocné knihovny (images, DB,…) C++

David Majda: Mozilla pro vývojáře5 NSPR (Netscape Portable Runtime) •low-level knihovna napsaná v C •abstrakce nad jednotlivými OS (běží ve Win32, Mac OS, 20+ unixů) •převzata ještě ze starého Netscape Navigatoru, kde byla původně kvůli Javě •zkompilovatelná samostatně, lze použít mimo Mozillu

David Majda: Mozilla pro vývojáře6 NSPR – co všechno umí? •portabilní datové typy a makra (např. 64bitovost) •vlákna, synchronizace •I/O nad soubory •základní síťové funkce •datum a čas •správa paměti •načítání dynamicky linkovaných knihoven (DLL/.so)

David Majda: Mozilla pro vývojáře7 JavaScript Engine •„interpret“ JavaScriptu 1.5 (nadmnožina standardu ECMA 262 Edition 3 - ECMAScript) •napsal z větší části Brendan Eich, autor JavaScriptu •napsaný v C, vysoce optimalizovaný •nezávislý na ostatním kódu, lze zkompilovat samostatně (použití pro embedding – skriptovací jazyk pro aplikace) •připravuje se podpora E4X

David Majda: Mozilla pro vývojáře8 XPCOM •Cross Platform Component Object Model •obdoba Microsoft COM/DCOM nebo CORBA, ale in-process •tvorba komponent, modularizace •popis rozhraní komponenty v XPIDL (dialekt IDL) •implementace typicky v C++ (generované hlavičky a šablony kódu), možno i v JavaScriptu (XPConnect)

David Majda: Mozilla pro vývojáře9 XPCOM – vznik komponenty MyComponent.idl xpidl MyComponent.h (+ impl. stub) MyComponent.xpt MyComponent.cpp MyComponent.so MyComponent.dll cc Součást výsledné aplikace

David Majda: Mozilla pro vývojáře10 XPConnect •umožňuje nezávislost XPCOM na jazyku •typicky: objekt implementován v C++, volán z JavaScriptu (takto vystavěn celý DOM) •ošetřuje volací konvence, typy parametrů,… •řeší object lifecycle (XPCOM – reference counting, JS – garbage collector)

David Majda: Mozilla pro vývojáře11 Gecko •nejvyspělejší renderovací engine na světě: –HTML 4.01, XHTML 1.0, XML 1.0, XUL –CSS 1, 2, 3 –DOM 1, 2 –RDF –PNG, GIF a JPEG •další součásti Gecko Runtime Environmentu: –NSPR –JavaScript 1.5 (kompatibilní s ECMA-262 Edition 3) –XPCOM core –Unicode, podpora L10N/I18N –Necko (HTTP 1.1, FTP, IMAP,…) –a další…

David Majda: Mozilla pro vývojáře12 XUL (čti zůl) – o co jde? •XML User interface Language •Problém: –Mozilla multiplatformní, ale GUI na každé platformě úplně jiné –nutno psát obdobný kód vícekrát •Řešení: –GUI zapsat deklarativně v XML –využít DOM a JS k „oživení“ a CSS k úpravě vzhledu –vše se píše jen jednou –vícekrát je jen zobrazovací kód –vše funguje „jako ve webových stránkách“ – steep learning curve

David Majda: Mozilla pro vývojáře13 XUL - ukázka •demo.xul •demo.js <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window id="demo-window" title="XUL Demo" xmlns=" gatekeeper/there.is.only.xul"> <script type="application/x-javascript" src="demo.js" /> function delText() { document.getElementById("text").value = ""; }

David Majda: Mozilla pro vývojáře14 XUL – widgety (1/3)

David Majda: Mozilla pro vývojáře15 XUL – widgety (2/3)

David Majda: Mozilla pro vývojáře16 XUL – widgety (3/3) … …

David Majda: Mozilla pro vývojáře17 Tvorba aplikací •rozšíření – nejčastější způsob psaní aplikací nad Mozillou –drobné odlišnosti mezi Mozilla Suite a Firefoxem/Thunderbirdem –v našich ukázkách se zaměříme na Firefox a Thunderbird •samostatná aplikace –postavená nad GRE –netriviální věc •nutný build environment Mozilly •úpravy na úrovni C/C++

David Majda: Mozilla pro vývojáře18 Co to je rozšíření, instalace •XPI soubor (obyčejný ZIP) –install.rdf –content, skin, locale •Extension Manager (Správce rozšíření) •instalovat lze jen z povolených domén

David Majda: Mozilla pro vývojáře19 Integrace rozšíření do aplikace •Konvenční řešení: –aplikace poskytne API –omezené možnosti, autoři aplikace musí předvídat, do čeho bude chtít rozšíření zasahovat •Řešení Mozilly: –aplikace je také v XUL –stačí definovat „propojovací body“, tj. určit, kam do aplikace přivěsit XML podstrom rozšíření –téměř neomezené možnosti úprav <menuitem label="Boogie" accesskey="B" position="3" oncommand="openBoogie();" />

David Majda: Mozilla pro vývojáře20 Test: Je Mozilla vhodná pro vaši aplikaci? (1/3) •Potřebujete multiplatformnost? +1 bod •Potřebujete pracovat s HTML či XML? +1 bod •Potřebujete pracovat se sítí? +1 bod •Potřebujete lokalizovatelnost? +1 bod •Chcete rychle vyvíjet a očekáváte časté změny v zadání? +1 bod

David Majda: Mozilla pro vývojáře21 Test: Je Mozilla vhodná pro vaši aplikaci? (2/3) •Aplikace je velmi velká? (-1 bod) –začne vadit JavaScript •Potřebujete náročnou grafiku? (-1 bod) •Potřebujete hrubý výkon či nativní GUI? (-1 bod) –C/C++ a knihovny na GUI (MFC, QT, wxWindows) •Potřebujete přístup z kteréhokoliv počítače na světě? (-1 bod) –lepší je webová aplikace v HTML

David Majda: Mozilla pro vývojáře22 Test: Je Mozilla vhodná pro vaši aplikaci? (3/3) •počet bodů ≥ 3 –zkuste popřemýšlet nad řešením založeným na Mozille •počet bodů < 3 –je potřeba zvolit jiné řešení –C, C++, Java, C#, Delphi, HTML/PHP…

David Majda: Mozilla pro vývojáře23 Materiály •Tato prezentace –ke stažení na •Další materiály – – průvodce a reference XULwww.xulplanet.com – – oficiální vývojářská dokumentacewww.mozilla.org/docs –wiki.mozilla.org – dokumentace, odkazy, plány do budoucnawiki.mozilla.org

Děkuji za pozornost Dotazy?