Vous voulez voir cette page en français ? Cliquez ici.

Have one to sell? Sell yours here
Rapid Application Development with Mozilla
 
See larger image
 

Rapid Application Development with Mozilla [Paperback]

Nigel McFarlane
4.1 out of 5 stars  See all reviews (8 customer reviews)

Available from these sellers.



Product Details


Product Description

Book Description

Rapid Application Development with Mozilla, part of the Bruce Perens Open Source Series, is a concise guide for any programmer who wants to learn the versatility and compatibility of Mozilla, an open source toolset with over a thousand objects and components. An additional feature of Rapid Application Development with Mozilla is the NoteTaker Web browser add-on-a sample Mozilla application that is developed throughout the book. Written by Web and XML expert Nigel McFarlane, this book is the perfect addition to the library of any user-interface software engineer, cross-platform developer, or any programmer looking to discover the benefits of rapid application development.

From the Inside Flap

Introduction

Welcome to Software Development the Mozilla Way

The Mozilla Platform is a large software development tool that is a modern blend of XML document processing, scripting languages, and software objects. It is used to create interactive, user-focused applications. This book is a conceptual overview, reference, and tutorial on the use of the platform for building such applications.

The Mozilla Platform encourages a particular style of software development: rapid application development (RAD). RAD occurs when programmers base their applications-to-be on a powerful development tool that contains much pre-existing functionality. With such a tool, a great deal can be done very quickly. The Mozilla Platform is such a tool.

One strategy for doing RAD is to make sophisticated HTML pages and display them in a Web browser. This book does not explain HTML, nor does it show how to create such pages. It has very little to do with HTML. Instead, it shows how to create applications that require no browser, and that might appear to be nothing like a Web browser. Such applications might be Web-enabled, benefiting from the advantages that Web browsers have, or they might have nothing to do with the Web at all.

Because Mozilla is closely linked to the Web in people's minds, this last point cannot be emphasized enough. The Mozilla Platform is far more than a browser. Here are some statistics:

  • Mozilla contains well over 1,000 object types and well over 1,000 interfaces.
  • It is highly standards compliant, supporting many standards from bodies such as the W3C, IETF, and ECMA. These bodies are, respectively, the World Wide Web Consortium, the Internet Engineering Task Force, and the European Computer Manufacturers' Association.
  • Mozilla is built on a very big source code base and is far larger than most Open Source projects. It is 30 times larger than the Apache Web Server, 20 times larger than the Java 1.0 JDK/JRE sources, 5 times bigger than the standard Perl distribution, twice as big as the Linux kernel source, and nearly as large as the whole GNOME 2.0 desktop source--even when 150 standard GNOME applications are included.
  • As a result of the browser wars in the late 1990s, the platform has been heavily tested and is highly optimized and very portable. Not only have hundreds of Netscape employees and thousands of volunteers worked on it, but millions of end users who have adopted Mozilla-based products have scrutinized it as well.

This extensive and tested set of features is a huge creative opportunity for any developer interested in building applications. These features also offer an opportunity for traditional Web developers to broaden their existing skills in a natural way.

This book covers the Mozilla Platform up to version 1.4. Changes between minor versions (e.g., 1.3 and 1.4) are small enough that most of this book will be correct for some time.

Useful Knowledge

Some experience is required when reading this book. Some familiarity with Web standards is assumed.This book sticks strictly to the application services provided by the platform. There is no need to get involved in the source code, unless that is your particular interest.

The Structure of This Book

Chapter 1, Fundamental Concepts, is an overview of Mozilla. The remaining chapters mimic the structure of the Mozilla Platform. The early chapters are about the front part of Mozilla, comprising XML markup, which displays the elements of a graphical user interface. As the chapters proceed, the subject matter works its way to the back of Mozilla. The back consists of objects that silently connect to other computing infrastructure, like file systems, networks, and servers. To summarize:

  • Chapter 1 is a concept overview.
  • Chapters 2-4 describe basic XUL markup. XUL is a dialect of XML.
  • Chapter 5 explains the JavaScript language.
  • Chapters 6-10 describe interactions between the DOM, JavaScript, and XUL.
  • Chapter 11 explains the RDF data format.
  • Chapters 12-14 describe interactions between XUL and RDF.
  • Chapter 15 explains how to enhance XUL using XBL.
  • Chapter 16 describes many useful XPCOM objects. XPCOM is Mozilla's component technology.
  • Chapter 17 describes how to deploy a finished application.

Within this flow from front to back, each chapter follows a set structure:

  • Facing the start of each chapter is a special diagram called the NPA diagram.
  • The first few paragraphs of a chapter introduce the chapter concepts, expanding on brief remarks in Chapter 1, Fundamental Concepts. Read these remarks to identify whether the chapter is relevant to your need.
  • For more difficult material, these concepts are expanded into a concept tutorial. Read this tutorial material when looking through the book for the first time, or if a concept seems very foreign.
  • Next, all the technical detail is laid out in a structured manner. Many examples are provided to support a first-time read, but this detail is designed to be flipped through and revisited later when you've forgotten something.
  • In later chapters, this reference material is followed by a scripting section that explains what JavaScript interactions are possible. Read this when XUL and RDF alone are not enough for your purposes.
  • "Style Options" describes the impact of the CSS standards on the chapter. Read this when a window doesn't look right.
  • "Hands On" contains the NoteTaker tutorial that runs throughout the book. Read this when you need to get into the coding groove.
  • "Debug Corner" contains problem-solving advice and collected wisdom on the chapter's technology. Read this before coding and when you're really stuck.
  • Finally, the summary closes with a reflective overview and exits gracefully in the direction of the next chapter.

Some of these structural elements are discussed in the following topics.

The NPA Diagram

The core of the Mozilla Platform is implemented in the C and C++ programming languages, using many object classes. To understand how it all works, one could draw a huge diagram that shows all the object-oriented relationships explicit in those classes. Such a diagram would be quite detailed, and any high-level features of the platform might not be obvious. Although the diagram might be accurate, it would be a challenge to understand.

The NPA diagram is a simplified view of Mozilla's insides. NPA stands for not perfectly accurate. It is a learning aid. No one is arguing that Mozilla is built exactly as the diagram shows; the diagram is just a handy thinking tool. There is no attempt to illustrate everything that Mozilla does.

The NPA diagram appears prior to each chapter of this book. The subject matter of a given chapter is usually tied to a specific part or parts of the diagram.

Style Options

Mozilla makes extensive use of cascading stylesheet styles. In addition to features described in the CSS2 standard, Mozilla has many specialist style extensions. An example of a Mozilla-specific style is

vbox { -moz-box-orient: vertical; }

Most chapters contain a short section that describes Mozilla-style extensions relevant to that chapter.

The NoteTaker Tool

NoteTaker is a small programming project that is a running example throughout this book. There isn't room for developing a full application, so the compromise is a small tool that is an add-on. NoteTaker is a Web browser enhancement that provides a way to attach reminder notes (Web notes) to displayed Web pages. The browser user can attach notes to the pages of a Web site, and when that Web site is visited at a later date, the note reappears. This is done without modifying the remote Web site at all. Notes can be created, edited, updated, and deleted.

The browser window shown has a new toolbar, which is the NoteTaker toolbar. That toolbar includes a drop-down menu, among other things. The displayed HTML page includes a small pale rectangle--that is the Web note for the page's URL. That rectangle does not appear anywhere in the displayed test.html file. Also shown is the Edit dialog window, which is used to specify the content and arrangement of the current note.

As an idea, it doesn't matter whether NoteTaker is pure genius or horribly clumsy. Its purpose is to be a working technology demonstrator. Each chapter enhances NoteTaker in a small way so that, by the end of this book, all Mozilla's technologies can be seen at work together.

There is no generally agreed upon technical term for describing NoteTaker. The relationship between the tool and a browser is a little like the relationship between a Java applet and a Java application. It is an add-on that is more than a mere configuration option but less than a plugin.

This example project is attached to a Web browser. Generally speaking, Mozilla applications should run in their own windows with no Web browser in sight. There is no implication that all Mozilla applications should be designed like NoteTaker--it is just that NoteTaker is too small as described here to stand by itself.

Hands On: Tools Needed for Development

Even this short introduction attempts to follow the chapter structure described earlier. To begin development with Mozilla, you need a computer, software, and documentation.

Microsoft Windows, Macintosh, and UNIX/Linux are all acceptable development systems, although MacOS 9 support is slowly being dropped and perhaps should be avoided. The computer does not need to be Internet-enabled or even LAN-enabled after the platform is installed.Chapter 1, Fundamental Concepts, discusses software installation in "Hands On."

The sole warning in this introduction relates to documentation. This book alone is simply not enough information for all development needs. It would need to be a 10-volume encyclopedia to achieve that end. Just as UNIX has man(1) pages and applications have help systems, Mozilla has its own electronic reference information. That information complements the material in this book.

Unfortunately, that help information is widely scattered about and must be collected together by hand.The CSS2, DOM 2 Core, and DOM 2 Events standards are the most important ones; the others are rarely needed.This is the JavaScript standard. You can do without it, but it is occasionally handy.These definition files describe all the object interfaces in Mozilla. These files are extracted from the source code and bundled up for your convenience.These specially prepared files are a nearly accurate list of the class-interface pairs supported by the platform. These lists help answer the question: What object might I use? They can be manipulated with a text editor or a spreadsheet.

  • Finally, it would be helpful to possess a Web development book with a JavaScript focus.
  • If you are very detail oriented and have copious free time, then you might consider adding a full copy of the Mozilla Platform source code (40 MB approximately). That is not strictly required.

    It is common for advanced application programmers to retain a full copy of the Mozilla Platform source code (40 MB, approximately). This book sticks strictly to the application services provided by the platform, so there is no need to get involved in the source code, unless that is your particular interest.

    Debug Corner: Unreadable Documentation

    Make sure that any documentation you download has the right format for your platform. The UNIX tools unix2dos and dos2unix can help; also UNIX files can be read on Microsoft Windows with any decent text editor (e.g.To fix this, follow the suggestions in the Mozilla release notes. For other font problems, see the discussion on fonts in Chapter 3, Static Content.

    Some standards are written in HTML. If you save these files to local disk and disconnect from the Internet, sometimes they display in a browser very slowly. This is because the browser is trying to retrieve stylesheets from a Web server. To fix this, choose "Work Offline" from the File menu, and reload the document.

    Summary

    Mozilla is a massively featured development environment with origins in XML, objects, and the Web, and application developers can easily exploit it. I hope you enjoy reading this book as much as I enjoyed writing it. I wish you many constructive and creative hours exploring the technology, should you choose to take it up. With that said, here we go…


    Tag this product

     (What's this?)
    Think of a tag as a keyword or label you consider is strongly related to this product.
    Tags will help all customers organize and find favorite items.
    Your tags: Add your first tag
     

     

    Customer Reviews

    8 Reviews
    5 star:
     (3)
    4 star:
     (3)
    3 star:
     (2)
    2 star:    (0)
    1 star:    (0)
     
     
     
     
     
    Average Customer Review
    4.1 out of 5 stars (8 customer reviews)
     
     
     
     
    Share your thoughts with other customers:
    Most helpful customer reviews

    3.0 out of 5 stars Too much focus on UI development with XML/JavaScript, Nov 14 2004
    By A Customer
    This review is from: Rapid Application Development with Mozilla (Paperback)
    I bought this book mainly because I was interested to learn more about NSPR (Netscape portable runtime library) and XPCOM (cross-platform clone of Microsoft's COM). Unfortunately, as it turned out, the book does not cover these technologies in great detail. The book discusses them mainly in context of using from JavaScript, but my interest is in using them from C++ (interesting detail: there are no C++ code samples in the book, all the samples are either in JavaScript or XML). By the way, I find it disappointing that Mozilla is still bound exclusively to the Netscape's creature called JavaScript though there exist other and in some ways more powerful and expressive scripting languages such as Python, Ruby, Perl. Technologies and tools such XPCOM or SWIG could make it possible to automagically generate bindings for all or some of these languages. Another thing that is missing is comparison of Mozilla platform with alternative technologies such as Eclipse or Qt. In other words there is no clear answer why and when one should choose Mozilla.

    The books is probably good for those interested in cross-platform GUI development using blend of XML and JavaScript if you already made up your mind to use Mozilla. But I would not recommend it for C++ progammer who wants to get a better insight in Mozilla code base, which is probably not very surprising - the book's content just matches its title.

    PS The book polygraphic quality is just excellent. It's printed on a fine paper with nice typesetting.

    Help other customers find the most helpful reviews 
    Was this review helpful to you? Yes No


    3.0 out of 5 stars Cluttered, but useful, May 4 2004
    By 
    C. Holloway "cLive ;-)" (Santa Monica, CA United States) - See all my reviews
    (REAL NAME)   
    This review is from: Rapid Application Development with Mozilla (Paperback)
    Most good programming books have clear examples and good Appendices.

    This book, unfortunately, decided to take the examples and the Appendix and shuffle them together.

    Code examples for the 'Note Taker' application are hard to follow on first read through. Too much detail is given for tag options (that should have been in appendices), and the example app is never displayed in full.

    It may just be me, but I learn quicker if I can see something practical and then have it explained. I can identify pieces of a puzzle much better if I know the context of each piece beforehand.

    It may be "Rapid Application" Development, but I'm afraid it isn't Rapid "Application Development" in my opinion. It's obviously written by someone with a deep understanding of Mozilla application development - I just wished that they had tested it on some Mozilla newbies and taken on board feedback before publishing!

    Help other customers find the most helpful reviews 
    Was this review helpful to you? Yes No


    4.0 out of 5 stars Breaking New Ground: Mozilla Applications, Jan 27 2004
    By 
    Robert L. Cochran (Greenbelt, MD USA) - See all my reviews
    (REAL NAME)   
    This review is from: Rapid Application Development with Mozilla (Paperback)
    This is one of the most fascinating technical books I've read in some time. This book teaches something you want to know about, if you are a web programmer. Your education is not complete without it. You can definitely handle this, too. Discover why RAD on Mozilla is cool.

    Nigel McFarlane's book offers an introduction to the vast of the capabilities of the Mozilla browser. Want to build an application? Download and install a copy of Mozilla (it's free), get this book, and start exploring Mozilla's vastly sophisticated application development framework. You don't need deep expertise in Mozilla internals to get applications started. I am working on a project for a client that will emphasize graphics. This book is helping me get started with it, even though I have no deep knowledge of Mozilla's workings. I'm now dabbling with XML User Interface Language (XUL), XML Binding Language (XBL), and Resource Description Framework (RDF), thanks to this book. I'm also getting indirect exposure to Scalable Vector Graphics (SVG), MathML, and Chemistry Markup Language (CML), as an unexpected side benefit. The Mozilla.org developers have implemented to some degree these interesting and deeply complex XML-related standards.

    The book is easy to read. McFarlane is able to take extremely complex material and explain it in a way most people will understand. Go ahead, read the first few of Chapters 1 and 15: they will draw your interest and bring you into the next paragraph and the next. You can pick up this book, read the introductory material, and go right into Mozilla and start working. You will understand what McFarlane is talking about. The writing format should sustain your interest in experimenting and learning more and then going on to do your own applications.

    I personally appreciate the choice of font, line spacing and font size. It seems easier on bifocal equipped older folks such as me. Each chapter begins with interesting diagrams referred to as "Not Perfectly Accurate (NPA) diagrams". They help you see how the chapter topic fits in to the application class object framework being discussed. There are all the things you come to expect of a good tech book: numerous screenshots, well-laid out tables, plenty of source code to dabble with. The publisher has done an excellent job of laying out and producing the book. There are very few typos compared to those littering many other technical books.

    This book is going to give programmers using the Mozilla platform for applications a competitive edge. Mozilla, today, is available in many forms and is widely deployed. AOL deploys Mozilla in those stupid tin CD cans, and that gives Mozilla enormous critical mass. You can download Mozilla Firebird and Mozilla Thunderbird right now if you would like lighter-weight browser or email clients, respectively. Mozilla is catching on, and it is getting better every day. I highly recommend that you buy and read this book and then do some apps with Mozilla.

    McFarlane suggests you visit his web site http://www.nigelmcfarlane.com/ , and it doesn't exist. Some readers might buy a book on the strength of the topic, the book examples, and the author's promise of downloadable source code. It can be disappointing not to see the promised web site and source code. But don't worry, the publisher offers downloadable source code through http://authors.phptr.com/mcfarlane. My other concern is that I wish this book were physically a bit larger in size. I like 8.5 inch X 11 inch page formats for books with a lot of screen shots and tabular data.

    An overall must-have book.

    Help other customers find the most helpful reviews 
    Was this review helpful to you? Yes No

    Share your thoughts with other customers: Create your own review
    Want to see more reviews on this item?
     Go to Amazon.com to see all 14 reviews  4.1 out of 5 stars 
     
     
    Most recent customer reviews






    Only search this product's reviews



    Listmania!

    Create a Listmania! list

    Look for similar items by category


    Look for similar items by subject


    Feedback