Learning Ext JS Book Review

Learning Ext JS Book Cover

I recently completed reading Learning Ext JS by Shea Frederick, Colin Ramsay, and Steve Blades. Ext JS is “a cross-browser JavaScript library for building rich internet applications” including a very elaborate set of customizable UI widgets among other features.

As you already know, I’m a huge fan of jQuery (version 1.3 available as of last week!) and use it exclusively, but I’ve always been curious about Ext. To me, Ext has a completely different goal in mind, and aims to support a very different purpose. Ext allows you the ability to quickly put together highly functional interface elements dedicated to achieving the level of interaction provided by desktop applications.

I’m thrilled to have read this book, as it’s given me a superb jump start to putting together an opinion of Ext. Please keep in mind, however, that those opinions are far from developed, and this review covers the book only, not Ext itself.

Who this book is for

This book is for a very particular person; a programmer interested in working with Ext of course, but also more. If you’re interested in working with Ext, but have no prior experience with JavaScript, I would suggest putting Learning Ext JS on hold until you’ve had a proper introduction to JavaScript. I would suggest something like DOM Scripting by Jeremy Keith.

This book was written as a very particular resource for Ext, not an introduction to JavaScript. I can’t stress that enough. If, however, you’re familiar with JavaScript and unobtrusive DOM scripting, this book is a perfect walkthrough of Ext JS.

Summary of Learning Ext JS

The first chapter is, naturally, an introduction to Ext JS. A brief history is offered explaining the history of Ext and the details surrounding its emergence from being an extension for YUI. The author is careful to mention that Ext should not be thought of as simply another JavaScript library. Ext aims to be a fully functioning JavaScript framework providing tools with which to rapidly build Web-based applications that mimic desktop functionality. The chapter continues to explain where to get Ext, how to get it up and running on your local machine, and even gets your feet wet with a basic example or two. The chapter also explains that Ext has the ability to use JavaScript library adapters, letting you build on top of your library of choice while minimizing your overhead.

Chapter 2 brings you right into working with Ext widgets. You’re walked through the creation of message box dialogs as well as details regarding the syntax incorporated with various Ext elements. Scattered throughout the copy are some tips and tricks that will better prepare you for upcoming chapters which discuss more advanced features of Ext.

Forms are the life-blood of any Web application, and the author makes sure to cover the topic early in the book. Chapter 3 is dedicated to the creation of forms using Ext JS. The core components of a form are discussed, along with how said components are integrated into functional pieces for inclusion in your Web app. The built in validation functionality as well as input widgets within Ext are introduced, and you’re walked through an example to get yourself up and running.

Interface construction begins with Chapter 4: Buttons, Menus, and Toolbars. Here you’re given an overview of the baked in Ext features surrounding toolbar, button, and menu functionality. Lots of little details are discussed, including adding separators and custom icons to your menu items. You can also include form elements within toolbars for added convenience.

One of the most popular features of Ext JS, Grids, is discussed in chapter 5. Grids are used to display tabular data, and a grid is a very elaborate interface element to work with. The chapter begins by discussing what’s required for a grid; a data store, data types for the fields in the store, and methods for displaying your grid. The chapter continues by discussing some of the many features offered by this particular interface element. From built in sorting methods to the inclusion of HTML and graphics within your data cells. You’re walked through the population of a grid via PHP to give a brief introduction to integrating Ext with a server side technology. Grouping, pagination, and other advanced functionality close out this chapter. Chapter 6 takes into consideration a unique type of grid; an editable grid. This widget allows the data contained to be directly edited by the user. The chapter discusses setting up this type of grid, as well as working with (and saving) any changed data.

Chapter 7 guides you further into interface development with Ext JS. Ext bases its interface on a number of things; layouts, regions, and viewports. These elements come together to bring your Ext powered Web application to life. The details surrounding layout syntax and thought process are discussed in this chapter, and you’re guided through setting up a Web application interface built upon the techniques discussed so far in the book.

Another very popular feature of Ext JS is discussed in Chapter 8: Ext JS Does Grow on Trees. Node lists are the primary topic within this chapter, and the author explains just how Ext has implemented them. You’re walked through the creation, population, and interaction with node lists via Ext JS. All of the customization possibilities are explained in this chapter as well, allowing you to work with a node tree catered exactly to your Web application.

Windows and dialogs can also be an integral part of any Web app aimed at mimicking the look and feel of a desktop application. Dialogs are revisited in chapter 9, as well as dialogs with input fields. A lot of detail is covered regarding the various attributes a dialog window in Ext can possess.

One of the main reasons Web applications are taking a strong hold is the ability not only to provide advanced functionality, but also back it up with a little flare. Chapter 10 of Learning Ext JS is dedicated to the topic of effects, and applying those effects to your Web application in an effort to include that extra level of polish your users will appreciate. Lots of animation topics are discussed here, as well as making a point of including visual cues for your user, to ensure she knows that ‘something’ is happening after clicking a button or interacting in some way.

Drag and drop interaction is a significant part of a desktop application. Having the ability to drag and drop elements within an interface is not only engaging, it can truly save an exorbitant amount of time for your user. Ext does drag and drop, and Chapter 11 explains exactly how to accomplish that. There are some unique aspects of Ext’s implementation of drag and drop explained, including an overview of tying various Ext widgets together using drag and drop functionality.

Chapter 12: It’s All about Data covers the integration of server side data into your Web application. This is a very technical chapter, which may require you to read it more than once. The definition of data, how to store it, and general interaction is the overall topic of this chapter, also essential to any higher level Web application today.

Chapter 13 takes a small step back into basics, and discusses programming with Ext from a more library agnostic point of view. Programming for reuse is discussed, as well as packages, classes, and namespaces. You’re shown how to interact and program with Ext on a higher level using these techniques and walked through the creation of your own custom class built for Ext. Events, a terribly important concept in JavaScript, are discussed in this chapter as well, particularly catered to Ext.

The Power of Ext JS: What Else can you Do? Chapter 14 covers a number of other little niceties offered by Ext JS and discusses the community offerings available for Ext. Lots of bonus information is covered here, and gives you a number of directions to explore when expanding your knowledge of Ext JS.


I thought this book was an excellent walkthrough of the ins and outs of Ext JS, and I feel comfortable enough to scope out a project with which to use it. I’d like to give the framework a proper tire-kicking, and I’m glad to have read this book prior to doing so.

Ext JS, like all frameworks, has unique bits and pieces that may be overlooked by reading documentation alone. Having working examples provided in front of you is a great way to learn something new, and the authors of Learning Ext JS did a great job explaining each bit of detail discussed.