Blog

Ext JS 4 Beta 3 is Available Today

April 14, 2011 | Ed Spencer

Ext JS 4 Beta 3 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.

An example MVC application built in Ext JS 4
Ext JS 4 comes with a complete MVC guide and helpful example.

MVC Guide and Examples

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.

The return of Property Grid 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

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

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 ago

First? And congrats!

Rodolfo De Nadai

1 year ago

Can’t wait for the final version and in the future (hope not that so much in future) the new theme!!

Conor

1 year ago

Releases 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 ago

Awesome 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 ago

The 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 ago

Thanks for the MVC examples. Unfortunately the JS files are minified.

dan

1 year ago

What is a record? Is it an item in the store or an instance of the model or both?

Les

1 year ago

ComponentQuery 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 ago

I love you guys!!

ivobo

1 year ago

Great 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 ago

A 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 ago

Sencha is a model software development outfit, all software Companies should aspire to operate like Sencha.

Chris Dawes

1 year ago

Yay… let’s get down to business!

Jonathon Creenaune

1 year ago

FYI 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 ago

Congratulations . Very nice work

Scott

1 year ago

Please, please make Boolean property grid properties render as a check box.

Chris Partridge

1 year ago

Looking 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 ago

I hope the final version fully support Firefox 4 and IE9.
Not all ExtJS 4 samples works with these browsers:/

Antoine

1 year ago

Great job !

I hope you will add a total line and a total column to the pivot grid, and it will be perfect wink

H.W.

1 year ago

The 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 ago

Fantastic! Well done EXTJS Team! smile

Andreas Frömer

1 year ago

The 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 ago

I 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 ago

I 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 ago

Great Release, but where did the Dispatcher or in general, the History Support for MVC go?

Andrea Cammarata

1 year ago

Great as always Sencha Team! wink

Darryl

1 year ago

Is 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 ago

I 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 ago

found it.  the source is in the examples folder in the download.

Abdel Olakara

1 year ago

Great move by releasing the MVC. Going to give MVC a spin now!

Nick

1 year ago

The example source in the download appears to be minified as well.

Gian Marco

1 year ago

I 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 ago

I 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 ago

Oh 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 ago

As 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 ago

Great,I love MVC very much!
But ,why MVC examples are mini code?

renaudham

1 year ago

HI
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.