we are evaluating ExtJS 4 for the use in one of our next projects. Our company is no stranger to ExtJS (or Sencha for that matter). We have 10+ people who are working with the framework on a day to day basis, with some members even going all the way back to yui-ext days.
In the past, we've been pretty conservative about the switch due to youth of the framework and honestly, we were more or less happy with 3.x. Now, being almost 2 years since first public release of the 4.x branch, we are thinking about making the switch.
We are interested in some real world experience from the people who've been using it in production in the last 2 years. So without further ado, the questions.
- What was the most difficult part of the switch?
- Is the API stable?
- Are you using MVC?
- Does DOM partitioning improve IE performance in real world apps?
- How often did you find yourself monkey patching the framework and is the core code easy to understand/fix?
ExtJs 4.2 was becoming stable somewhere near version 4.1 so it was a hard switch. ExtJs 4.2 is stable now but it still does not perform as well as 3.4 did. Though the bufferedgrids are better.
For myself I am not using MVC in the way Sencha provides it. Migrating from 3.4 to 4 and put it in the MVC format was too much work. However the class design of 4.2 is much better then it was in 3.2. It was at that point possible to refactor great parts of my code and I was able to even enlarge my application.
IE 6 is at version 4.2 unworkable. From IE 7+ it will do but it still ExtJs 3.4 has better performance (but then besides the buffered grids - they are really great).
The source code is provided, and it is possible to override whatever you want.
Migration from 3.x to 4.x is straight forward as long as you design your application with OO. MVC will have overhead and I didn't see performance gain after all files loaded. My application has more than 150 classes and all are using refractory.
I wouldn't say 4.1.1a and 4.2.0 are stable to release our product, and I had reported a few very serious bugs for 4.2.0. Some serious bugs(tree/grid) are still in 4.2.1 beta.
Performance of 4.2.0 is still not much slower than 3.4.x with FF, you will have to spend lots of time to tune up yourself for your application. We haven't test with IE7/8 yet, if it is too slow we may have to wait to release our product with 4.x.x.
We have premium support, but that is not mean our tickets will get solved even our tickets are extjs bugs.
Basically we still develop our application with 3.4.x, at the same time, with 4.x.x since we cannot afford to release any unstable product.
Is anyone actually running complex applications (> 50.000 lines) on IE7 / IE8 with ExtJS 4.x?
My base requirements are acceptable performance on IE7 and good performance on IE8, and I'm wondering whether it makes sense to even consider switching over until we can drop legacy IE as a requirement for our product.
My app has more than 1 MB of selftyped js code. Do not know how much lines that is.
only IE6 is now a problem, it has problems simultaneous loading of data in grids. IE7+ will do good.
With the class structure of 4.2 it is possible to write larger apps (even without using MVC), but the performance is not that of 3.4.
In 4.2 it really depends more on your programming skills, organizing code et cetera.
For example in 4.2 you must be very specific with layout issues in cases where you could be lazy in 3.4. Give everything a height and width if you know it or are able to calculate it yourself. Doing doLayouts() (which my code in 3.4 contained everywhere) is disastrous. First thing to do, delete them all.