Mozilla pro vývojáře. David Majda (majda@czilla.cz) 14.4.2005 LinuxExpo 2005, Praha



Podobné dokumenty
Rozhraní pro tvorbu doplňků v moderních prohlížečích. Martin Straka martin.straka@nic.cz

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

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

PODPORA PRÁCE S FORMULÁŘI VE WEBOVÉM PROHLÍŽEČI SUPPORT FOR FORM FILLING IN WEB BROWSER

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

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN

Domino 10 nové komponenty a související témata (node.js, ES )

Internet 2 css, skriptování, dynamické prvky

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

1 - Úvod do platformy.net. IW5 - Programování v.net a C#

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

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

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

VY_32_INOVACE_INF.19. Inkscape, GIMP, Blender

APLIKACE NA PLATFORMĚ MOZILLA APPLICATIONS ON MOZILLA PLATFORM

Skriptování na straně serveru a klienta

Multiplatformní GUI toolkity

Identifikátor materiálu: ICT-3-55

Tvorba informačních systémů

Richtext editory. Filip Dvořák

EVOLUCE VÝVOJE SOFTWARE V PROSTŘEDÍ MICROSTATION

Server-side technologie pro webové aplikace

O projektu OpenOffice.org a IBM OS/2 OS/2 a Open Source

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

Vylepšení editoru v Mozilla Thunderbirdu. Jakub Podlaha

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

1 z :21

Jazyk C# (seminář 9)

1 z :17

INSTALACE PRODUKTU ONTOPIA KNOWLEDGE SUITE

Úvod do Web Services

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

OBSAH. Předmluva 13 Poděkování Přehled dnešního vývoje webů Design pro minulost, přítomnost i budoucnost 33

O projektu Nasazení OpenOffice.org v praxi

1. Webový server, instalace PHP a MySQL 13

Instalace a konfigurace web serveru. WA1 Martin Klíma

Problematika vývoje softwarových aplikací v jazyce XUL pro platformu Mozilla

MVVM pro desktop i web

Kartografická webová aplikace. Přednáška z předmětu Počítačová kartografie (KMA/POK) Otakar Čerba Západočeská univerzita

3 MOŽNÉ PŘÍSTUPY K TVORBĚ APLIKACÍ NAD SVG DOKUMENTY

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

Formy komunikace s knihovnami

Projekt Datové schránky

MOZILLA JAKO VÝVOJOVÁ PLATFORMA

Michal Krátký, Miroslav Beneš

2012 ET NETERA a.s. Wicket přehled technologie Martin Strejc

Úvod. Únor Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 23

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

Content Security Policy

Systémová administrace portálu Liferay

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ů.

Statistika pro ( )

Statistika pro ( )

NSWI096 - INTERNET JavaScript

HMI * nad webovými technologiemi

Základní pojmy spojené s webovým publikováním ~ malý slovníček pojmů~ C3231 Základy WWW publikování Radka Svobodová, Stanislav Geidl

CZ.1.07/1.5.00/

Případová studie: Adresářové řešení pro webhosting pomocí ApacheDS. Lukáš Jelínek

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Studentská tvůrčí a odborná činnost STOČ 2013

14,819 (5.84 Stránky/Návštěva) Čvn Kvě Čvc Srp 2014

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

Fakulta elektrotechnická. protokoly. Yun Ruan. Studijní program: Elektrotechnika a informatika, strukturovaný, Bakalářský. Obor: Výpočetní technika

Olga Rudikova 2. ročník APIN

MBI - technologická realizace modelu

MATURITNÍ PRÁCE dokumentace

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

Instalace produktu Ontopia. ver (open-source verze)

Elektronická podpora výuky předmětu Komprese dat

Úvod 13 O čem je tato kniha? Pro koho je tato kniha? Jak studovat tuto knihu? Poděkování 16 Zpětná vazba od čtenářů Zdrojové kódy ke knize Errata 17

Redakční systém Joomla. Prokop Zelený

Individuální projekt z předmětu webových stránek 2012/ Anketa

Architektury informačních systémů

Architektury informačních systémů

Formáty WWW zdrojů. Mgr. Filip Vojtášek.

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

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

Využití aplikace SketchUp pro tvorbu jednoduchého informačního systému

11. Přehled prog. jazyků

Nové přístupy tvorby web site. Doc. Ing. Zdeněk Havlíček, CSc. KIT PEF CZU - 13/11/2001

Softwarové komponenty a Internet

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Úvod. Leden Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 22

Nejčastější kladené dotazy

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

Statistika pro light4sport.cz ( )

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:

Název: On-line tvorba webu Anotace:

Embedded vývoj v Clutteru a Mx

Statistika pro light4sport.cz ( )

Požadavky pro výběrová řízení TerraBus ESB/G2x

Integrace OpenOffice.org a Javy. CZJUG, , Robert Vojta

Jak postavit webovou stránku pro mobilní zařízení. Lukáš Kokoška

Common Object Request Broker Architecture

BI-AWD. Administrace Webového a Databázového serveru Instalace webového serveru Apache httpd


Transkript:

Mozilla pro vývojáře David Majda (majda@czilla.cz) 14.4.2005 LinuxExpo 2005, Praha

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áře 2

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áře 3

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

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áře 5

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áře 6

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áře 7

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áře 8

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

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áře 10

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áře 11

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áře 12

XUL - ukázka demo.xul <?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window id="demo-window" title="xul Demo" xmlns="http://www.mozilla.org/keymaster/ gatekeeper/there.is.only.xul"> <script type="application/x-javascript" src="demo.js" /> <vbox> <textbox id="text" value="zadejte text" /> <button label="vymazat" oncommand="deltext();" /> </vbox> </window> demo.js function deltext() { document.getelementbyid("text").value = ""; } David Majda: Mozilla pro vývojáře 13

XUL widgety (1/3) <button> <checkbox> <radiogroup> <radio> <textbox> David Majda: Mozilla pro vývojáře 14

XUL widgety (2/3) <listbox> <listitem> <tree> <treecols> <treecol> <treechildren> <treeitem> David Majda: Mozilla pro vývojáře 15

XUL widgety (3/3) <menubar> <menu> <menupopup> <menuitem> <menuseparator> <toolbox> <toolbar> <toolbarbutton> <tabbbox> <tabs> <tab> David Majda: Mozilla pro vývojáře 16

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áře 17

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áře 18

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 <?xml version="1.0"?> <overlay xmlns=" "> <menupopup id="menu_toolspopup"> <menuitem label="boogie" accesskey="b" position="3" oncommand="openboogie();" /> </menupopup> </overlay> David Majda: Mozilla pro vývojáře 19

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áře 20

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áře 21

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áře 22

Materiály Tato prezentace ke stažení na www.czilla.cz Další materiály www.xulplanet.com průvodce a reference XUL www.mozilla.org/docs oficiální vývojářská dokumentace wiki.mozilla.org dokumentace, odkazy, plány do budoucna David Majda: Mozilla pro vývojáře 23

Děkuji za pozornost Dotazy?