2. Contents
Contents
1. RIA?
2. XULRunner?
3. Developing With XULRunner
4. Blog Writer
5. Q&A
2
3. RIA?
RIA
?
Installation & Updates
Using Anywhere
Richer Than Web Standard
Allow offline use of Application
Client/Server Balance
Network Efficiency
3
6. XULRunner?
XULRunner
?a Mozilla runtime package (GRE) that can be used to
bootstrap XUL+XPCOM applications
XPCOM SVG
Gecko rendering XSLT
engine
XMLHttpRequest
XUL
DOMParser
XBL
Web Services (SOAP)
File picker
Embeding APIs
Helper app dialog/UI
Extension Manager
6
7. XULRunner?
XPCOM Cross Platform Component Object Model
Reusable cross-platform libraries
Virtually all of the functionality of Gecko
XPConnect - quot;Scriptablequot; IDL interfaces
7
8. XULRunner?
XUL XML User Interface Language
<window>
<menubar id=quot;
menubaridquot;>
<menu id=quot;
menuid“ >
<menupopup>
<menuitem >
</menupopup>
</menu>
</menubar>
<toolbar id=quot;
toolbaridquot;>
<toolbarbutton >
</toolbar>
<!-- your code here
8
10. XULRunner vs Adobe AIR
AIR Adobe Integrated Runtime
A runtime environment for building RIAs using Flash, Flex, HTML
and Ajax, that can be deployed as a desktop application.
Features
Local file system access
Native Drag N Drop
UI Controls
SQLLite embed
Webkit
Ajax framework Support
Rich Media and Video
Tools
Flex Builder
Aptana
Dreamweaver extention
10
11. XULRunner vs Adobe AIR
XULRunner AIR
Language Html, xul & javascript Html,mxml, javascript
& actionscript
Rendering Engine gecko Webkit
RDBMS Yes Yes
UI Controls XUL Flex Comp.
API XPCOM Flash, Flex APIs
DnD Yes Yes
Access FileSystem Yes Yes
Cross Platform Window, linux, mac Window, linux, mac
Web Launcher No Yes
11
12. XULRunner vs Adobe AIR
Desktop Based RIA
XULRunne
r
AI
R
Flex,
SilverLight
AJA
X
Web Based RIA
12
17. Developing With XULRunner
Debugging
Function dump()
pref(quot;browser.dom.window.dump.
enabledquot;, true);
Javascript dump(quot;my text herenquot;);
Console pref(quot;javascript.options.showInCons
true);
Components.utils.reportError(str);
function jsdump(str){
Components.classes['@mozilla.
org/consoleservice;1']
Venkman Debugger
.getService(Components.interfaces.
nsIConsoleService)
.logStringMessage(str);
}
17
18. Developing With XULRunner
Libraries Mozilla Fuel
A JavaScript Library to help developers build extensions
new in Firefox 3
Objective
s easy access interfaces, components and
services.
threaded wrapper for nsIProcess
convenience wrapper for file, text or stream
var cs = Components.classes['@mozilla.org/consoleservice;1']
.getService(Components.interfaces.nsIConsoleService);
var cs = MOZILLA.ConsoleService();
18
19. Developing With XULRunner
Libraries Mozdev JSLib
make life easier for developers by providing a general purpose
library
Modules
Debug
install jslib.init(this); var file = Components.classe
io include (jslib_file); (Components.interfaces.nsILo
network var file = new File(quot;c: file.initWithPath(quot;c:tmpfoo.d
rdf tmpfoo.datquot;); var ioService = Components.
sound file.open(quot;wquot;); getService(Components.inter
utils file.write(quot;This is a var uri = ioService.newFileUR
xul testnquot;); var channel = ioService.newC
zip file.close(); var outputStream = Compone
stream;1quot;].createInstance(Co
outputStream.init(file, 0x20|0x
var buffer = quot;This is a testnquot;;
outputStream.write(buffer, bu
19
outputStream.flush();