Ext JS 4 Beta 3 is Available Today
Tweet
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
10 months agoFirst? And congrats!
Rodolfo De Nadai
10 months agoCan’t wait for the final version and in the future (hope not that so much in future) the new theme!!
Conor
10 months 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
10 months 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
10 months ago@Conor A better theming guide is in the works. Look out for it in the near future.
dan
10 months 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
10 months agoThanks for the MVC examples. Unfortunately the JS files are minified.
dan
10 months agoWhat is a record? Is it an item in the store or an instance of the model or both?
Les
10 months 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
10 months agoI love you guys!!
ivobo
10 months 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
10 months 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
10 months agoSencha is a model software development outfit, all software Companies should aspire to operate like Sencha.
Chris Dawes
10 months agoYay… let’s get down to business!
Jonathon Creenaune
10 months 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
10 months agoCongratulations . Very nice work
Scott
10 months agoPlease, please make Boolean property grid properties render as a check box.
Chris Partridge
10 months 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
10 months agoI hope the final version fully support Firefox 4 and IE9.
Not all ExtJS 4 samples works with these browsers:/
Antoine
10 months 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.
10 months 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
10 months agoFantastic! Well done EXTJS Team!
Andreas Frömer
10 months 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
10 months 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
10 months 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
10 months agoGreat Release, but where did the Dispatcher or in general, the History Support for MVC go?
Andrea Cammarata
10 months agoGreat as always Sencha Team!
Darryl
10 months 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
10 months 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
10 months agofound it. the source is in the examples folder in the download.
Abdel Olakara
10 months agoGreat move by releasing the MVC. Going to give MVC a spin now!
Nick
10 months agoThe example source in the download appears to be minified as well.
Gian Marco
10 months 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
10 months 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
10 months 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
10 months agoAs always, amazing work team! Love it!
Gian Marco Gherardi
10 months 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
10 months 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
10 months agoGreat,I love MVC very much!
But ,why MVC examples are mini code?
renaudham
10 months 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.