5. Structure of the Book

This book is structured so you can create and distribute a simple Mozilla application after reading through Chapter 6. You should read Chapters 1-6 in order and work through the examples. The later chapters provide information about advanced aspects of application development that allow you to take full advantage of what Mozilla has to offer. If you wish, you can read Chapters 7-12 out of order, depending on your needs and interests.

Chapter 1, provides an introduction to Mozilla and its advantages as a development framework. Conceptually, the chapter gives you a thorough understanding of how JavaScript, CSS, and XUL are used to create cross-platform applications.

Chapter 2, goes into the initial technical details about creating Mozilla applications. Two "Hello World" examples are presented to show you how to build an application shell.

Chapter 3, introduces the XML-based User-interface Language, shows you how to create custom XUL documents, and explains how to use the XUL tag set to build out your application shell.

Chapter 4, shows how Cascading Style Sheets are used to create the look and feel of an application and how custom CSS files work together with XUL files in your application shell.

Chapter 5, describes how to add functionality to your application by using JavaScript and how custom JS files added to your application shell interact with existing XUL and CSS files.

Chapter 6, explains how to package an application so it can be installed on different computers. Once you create your custom XUL, CSS, and JS files, you can package and distribute them to users as your Mozilla application after reading this chapter.

Chapter 7, is the first of the more advanced chapters that show you how to extend the basic application framework described in Chapters 1-6. This chapter explains how to use the eXtensible Binding Language to create reusable widgets that will help organize a complicated application.

Chapter 8, examines Mozilla's cross-platform component object model. After reading this chapter, you should be able to find and use existing scriptable components in your own application and create a simple XPCOM component using JavaScript or C++.

Chapter 9, explains how to include dynamic information in your application that can be updated from a database, user input, or other sources. XUL templates rely on RDF, but it is not necessary to fully understand RDF to be able to use XUL templates.

Chapter 10, looks more closely at how Mozilla configures and uses datasources with the Resource Description Framework. RDF is used in XUL templates, but it is also used throughout Mozilla and Mozilla applications. Although it is considered to be one of the most difficult technologies to learn and use, RDF is worth the effort.

Chapter 11, shows how to make your application more accessible by localizing it into any number of different languages. This chapter shows you how to use Document Type Definitions and string bundles to provide translations of your application's interface and other content, such as the Help documents you may provide in your application.

Chapter 12, explores an alternate distribution method that has several advantages over the direct installation method discussed in Chapter 6. By serving your application from a server, you may be able to add extra features that wouldn't be possible otherwise.

The book's three appendixes contain supplemental information not directly applicable to any of the different chapters. Appendix A, explains how to start using the Mozilla source code. Appendix B, describes projects that will assist you with your application development. Appendix C, provides a convenient reference useful for quickly locating specific XUL and XBL elements and event attributes.

This book was written so that a reader who does not want to read about each aspect of application creation can read just the chapters that interest them and still get useful information. For instance, a graphic designer can read the chapters about XUL and CSS and learn how to create an application interface to which a programmer can then add functionality.