Ext JS 4 Beta 3 is Available Today
Today we're delighted to release Ext JS 4 Beta 3, which continues our weekly release cycle as we rapidly close in on Ext JS 4.0 Final. So far you’ve helped us with almost a thousand improvements, bug fixes and new features since the first preview release and we can’t wait to repay your dedication with a rock solid final release in the very near future.
Download Ext JS 4 Beta 3 View Examples
While we are tracking a small number of known issues that affect various edge cases, in general we are very happy with the stability of the framework. We’ve updated a lot of examples and documentation and I’d like to share some of those changes with you now.
MVC Guide and Examples
One of the biggest new pieces of functionality in Ext JS 4 is the application architecture. Based on an MVC structure, the new app architecture not only organizes your application code, it also vastly reduces the amount of code you have to write. Until now, there had been few details on how to use MVC with Ext JS so in this Beta we’ve addressed that by adding two full MVC examples (MVC Feed Viewer, Loading Nested Data Example) and a detailed guide on how to use it to create apps.
We hope to include additional MVC examples, tutorials and documentation in the final release, but in the meantime I hope what we have provided in Beta 3 is enough to whet your appetite and encourage you to dig in and write your own apps with the architecture. We’ve actually significantly simplified the approach provided out of the box (MVC is only 3 classes), while making it enormously more powerful by leveraging the brand new ComponentQuery.
For those who haven’t encountered it yet, ComponentQuery is a selector engine for Components. It enables you to search the page for components just like you search the DOM for elements. Say you want to get all of the grids on the page with the title “Users” — it’s as easy as:
Ext.ComponentQuery.query('gridpanel[title="Users"]');
ComponentQuery accepts an almost unlimited number of selectors and can be nested to any level. Check out the CQ docs for lots more examples, and the MVC guide for how to leverage this powerful new technology in your applications.
Property Grid Returns
One component that we had held back from the beta was the Property Grid. We’re pleased to include Property Grid now in Beta 3, and it’s sporting a much improved API. In previous versions Property Grid didn’t use the Store system, instead it accepted only an object that provided the keys and values to edit. Ext JS 4 still accepts the old format, but is now also able to take a Store just like any other grid. We’ve created a new example showing off the Property Grid, which you can find in the new hosted Beta 3 examples.
API and Documentation Improvements
In November at SenchaCon 2010, I highlighted the class API and documentation as two of the things we really wanted to improve upon for Ext JS 4. Although we’re not at 4.0 final quite yet, we’ve already poured a lot of effort into improving both of these.
I’ll start with the API documentation. We’ve been updating both the documentation itself and the application that it is presented in, and for the first time in Beta 3 have added a new Guides section. We have detailed guides on everything from Trees to the Class System and will continue to build this valuable resource over the course of Ext JS 4.x. Even excluding the new guides, Ext JS 4 already has almost twice as much developer documentation as Ext JS 3.
We also committed to improving the API wherever possible in Ext JS 4. For the first time we have a formal API style guide, which defines how we name the classes, functions and configurations in the framework. Between Beta 2 and Beta 3 we brought the framework into line with this style guide, which involved a number of changes. We have detailed all of the changes we made since B2 in the release notes so if you are already using the previous Beta releases for your apps you will need to update your code to use the standardized APIs.
We will be releasing the API style guide with Ext JS 4.0 final and encourage you to read it both to understand why things are named the way they are, as well as to use the same conventions throughout your own code.
Performance Improvements
A number of performance improvements have been committed to the framework over the last couple of weeks. Firstly we were able to optimize the class definition and loading system to significantly reduce boot time over previous releases. We’ve also capitalized on the unified rendering system to speed up component rendering through a more intelligent template compilation algorithm. Finally, a number of low-level but very frequently called DOM functions have been optimized to make UI rendering and manipulation even faster.
These performance improvements combine to make Beta 3 feel noticeably faster than the releases before it, but we’re not done yet. Performance tuning is an ongoing process and we expect the framework to get faster and faster over time.
The Road to Ext JS 4.0 Final
Our focus from now until final is on fixing any remaining bugs and further improving documentation. We also aim to release updated Calendar components along with 4.0 final. Your help in testing the framework in the real world continues to be invaluable and greatly increases the speed at which we are able to deliver the framework to you. Thank you once again, we can’t wait to share the finished product!

There are 40 responses. Add yours.
Tad
1 year agoFirst? And congrats!
Rodolfo De Nadai
1 year agoCan’t wait for the final version and in the future (hope not that so much in future) the new theme!!
Conor
1 year agoReleases and functionality keep getting better and better. Any chance of a better guide on theming though - Robert Dougan’s video - whilst good in itself - really doesnt cut it as a decent reference document.
Well done guys, keep up the work!
Rob Boerman
1 year agoAwesome guys! The new MVC structure actually makes me create better maintainable and extendible applications! Had to get used to it a bit but love it now!
Keep up the amazing work (also cudos to the guys answering every single forum message and fixing it!!)
Rob
Robert
1 year ago@Conor A better theming guide is in the works. Look out for it in the near future.
dan
1 year agoThe links in the MVC guide are broken.
Instead of record = form.getRecord(), values = form.getValues(); record.set(values); maybe we can have form.getUpdatedRecord() ?
Why do you put the list of views in the Application.js file but the list of stores and models in the Users.js controller file?
Where is this.getUsersStore() defined?
Thanks
Pascal Beyeler
1 year agoThanks for the MVC examples. Unfortunately the JS files are minified.
dan
1 year agoWhat is a record? Is it an item in the store or an instance of the model or both?
Les
1 year agoComponentQuery is great, but can I use it to query Sprites?
For instance, I’d like to be able to query the sprite which contains point x and y or query sprites of certain type, etc.
Kay
1 year agoI love you guys!!
ivobo
1 year agoGreat work!
I would like to see vertical 90° panel title on vertical collapsed panels. I saw that with draw class this is possibile.
Sebastien Tardif
1 year agoA future example having more than one features working on the same grid would be great and will start to show improvement when comparing with Ext JS 3.x Grid.
Features to mix together are:
- Virtual Scrolling
- Locking Column
- Grouping Header
- Grouping Summary
- Summary footer row
camelCase
1 year agoSencha is a model software development outfit, all software Companies should aspire to operate like Sencha.
Chris Dawes
1 year agoYay… let’s get down to business!
Jonathon Creenaune
1 year agoFYI if I go to a guide (eg Guides -> Architecture & MVC) then select a class from the left hand class tree I get a 404.
Wemerson
1 year agoCongratulations . Very nice work
Scott
1 year agoPlease, please make Boolean property grid properties render as a check box.
Chris Partridge
1 year agoLooking great guys!
Will the updated Calendar components for 4.0 be included under the ExtJS 4.0 license/support? Or will this still be a separate purchase from Extensible?
C.
mdesign
1 year agoI hope the final version fully support Firefox 4 and IE9.
Not all ExtJS 4 samples works with these browsers:/
Antoine
1 year agoGreat job !
I hope you will add a total line and a total column to the pivot grid, and it will be perfect
H.W.
1 year agoThe MVC looks very nice, but I still fail to see it how to use it together with the code generated by ExtDesigner :(.
(I know, the actual Designer generates code for 3.x, but considering that all Designer updates were only small improvements to previous versions, I can’t see where the the generated code fits in this nice new MVC structure).
MrSparks
1 year agoFantastic! Well done EXTJS Team!
Andreas Frömer
1 year agoThe original Ext.Router is now under Ext.util.Router but the src file is missing.
So Ext.util.Router is undefined for usage.
Martijn
1 year agoI copied (nut sure if moving works) /ext/docs/api to /ext/docs/guide and the docs work as far as I can see.
Gaël Deest
1 year agoI must say I’m pretty impressed by the MVC examples. I’m unsure how to integrate this with login / logout functionality, though/
Thomas Müller
1 year agoGreat Release, but where did the Dispatcher or in general, the History Support for MVC go?
Andrea Cammarata
1 year agoGreat as always Sencha Team!
Darryl
1 year agoIs the source for the MVC examples available somewhere if you view source in the examples the javascript is minified it’s no help to me at all.
Nick
1 year agoI am in the same boat as Daryl. Any chance we can get the app.js files for the mvc examples where the source is not minified?
Darryl
1 year agofound it. the source is in the examples folder in the download.
Abdel Olakara
1 year agoGreat move by releasing the MVC. Going to give MVC a spin now!
Nick
1 year agoThe example source in the download appears to be minified as well.
Gian Marco
1 year agoI think the guide documentation at:
http://dev.sencha.com/deploy/ext-4.0-beta3/docs/guide/application_architecture.html
contains an error: the application entry point is not defined as
Ext.create(‘Ext.app.Application’, ...
but should be defined as:
Ext.application({...
Remco Overdijk
1 year agoI had some major problems getting the MVC guide example to work.
In the end it worked with:
- Loading ext-all using bootstrap.js (ext-core isn’t working, although the examples use it)
- Placing “Ext.Loader.setConfig({enabled:true});” before creating the application. (And in contradiction to Gian Marco’s comment, “Ext.define(‘CRM.controller.Users’, {” is in fact working, and is correct according to the docs).
- “autoCreateViewport: false,” has to be added to the Application config if you use the Viewport in the launch: method, like the example. You can in fact create a Viewport.js in your view folder to auto-create it, but that also throws an error if you use ext-all
- “appFolder: ‘CRM’” can be used in your Application config to override the default path Ext.Loader will use to include your resources. This is NOT mentioned in the docs. Docs says it’s “defaultURL”.
Hope this helps you all to get the example working!
Remco Overdijk
1 year agoOh great, I cannot edit my comment.
What I meant to say in the post above, regarding Gian Marco’s comment was that “Ext.create(‘Ext.app.Application’,{” is working as expected, not the mentioned controller snippet.
Sorry for that.
Jonathan Griffin
1 year agoAs always, amazing work team! Love it!
Gian Marco Gherardi
1 year ago@remco: yes, after posting comment i examined code and saw that Ext.application is almost the same as instantiating an Ext.app.Application (but there are differences).
But i can’t edit comment :-(
I had an example working just by adding ext-core to the html page and the following command:
Ext.Loader.setConfig(‘enabled’, true)
Mário César
1 year ago@Remco Overdijk
Thank you SO much man… I was almost pulling my hair and kicking the desk due to the frustration of not understanding why the ExtJS team was against me. :D
Zero
1 year agoGreat,I love MVC very much!
But ,why MVC examples are mini code?
renaudham
1 year agoHI
Any news about a new Beta 4 release?
Comments are Gravatar enabled. Your email address will not be shown.
Commenting is not available in this channel entry.