PDA

View Full Version : Help on Upgrading to ExtJs 4



paulgutekunst
25 Jul 2012, 8:12 AM
I currently manage a large web application that uses ExtJs 2.x. The backend is using the Spring Web framework. I've been looking at rolling out an upgraded UI using ExtJs 4 but am having a hard time working this out with this new UI architecture.

Here is how the application currently works. User navigates to billing/read/home.do page. Spring maps to billing/read/HomeController.java and the controller maps to the billing/read/home.jsp view. The home.jsp has an app.billing.read.Home javascript class being called. The js class extends something called Application. Application sets up the viewport and the basic layout. The Home class will handle all the UI pieces for that particular page. This architecture has been successful for this project. Knowing this architecture and what I've seen in the ExtJs4 examples I cant quite figure out the thought process when there isn't a single entry point.

I'm interested in hearing what your thoughts are for my particular case. Can I upgrade to ExtJs 4 and keep the existing application architecture? I'm not married to the current application architecture, but am not going to do anything new until I understand this more. My goal is to upgrade the framework and update the UI to more current standards.

friend
25 Jul 2012, 9:24 AM
In my experience, I found it worth the time/effort to fully embrace the ExtJs single-page/single-point of entry design paradigm. Having said that, I'm a Spring/Web MVC/Java monkey as well and I know all too well the challenges of updating older apps; from retrictive, badly-estimated timelines to non-existent specs, etc..

ExtJs v4.x doesn't force any particular architecture on you; you can do things (almost) exactly as you've done them in the past; ExtJs v4.x just offers you a better alternative, should you take the time/effort to buy into its design philosphy.

If you do take the time to move to the new ExtJs MVC architecture, I can guarantee that you'll be happy you did, though there will be a little hair pulling along the way.

I have a sample application which I've shared with a few other uses on this forum, where the app provides a functional, a semi real-world example of the ExtJs MVC architecture with Spring Web/Security frameworks on the backend. If you're interested, PM me on the forums and I'll setup a download link from my dev linux server.

paulgutekunst
25 Jul 2012, 9:39 AM
Friend, thank you for your reply. It would be awesome to check out what you have, as I am a more hands-on learner. I have some ideas jiggling around in the back of my head but would be nice to see what you have implemented. I would send you a PM, but I get a message saying that you cant receive private messages.

friend
25 Jul 2012, 11:20 AM
Sorry about that; I modified my profile settings accordingly.

I'll PM you with details later today.

Thx.

paulgutekunst
25 Jul 2012, 11:30 AM
Ok thank you very much!

mberrie
25 Jul 2012, 9:42 PM
The current pattern of each Spring controller serving up a complete HTML document hosting an independent ExtJs application has the following pros and cons IMHO:

Pros


no major rewrite on the backend required
limited complexity of each individual application and therefore**
smaller learning curve and
shorter project duration (less costs)

Cons

No 'modern' single-page app - less coolness factor :). Of course there are other benefits, but this is not the right time to discuss the single-page paradigm.
ExtJs4 has a longer 'startup' (initialization) time compared to Ext2 (never did actual numbers though) - this is more of an issue if you are repeatedly firing up Ext4 applications

**I would definitely look into the new MVC support. It's no golden bullet but it helps keep things more organized.
The major problem I see is that currently there is no framework support for how to organize larger single-page applications - all the 'programming by convention' stuff assumes that you load more or less everything on application startup (stores, controllers, etc) and never unload it.
I wouldn't say it is too difficult to come up with a solution, but there are different strategies and it might take time to come up with a solution that fits your requirements and style. For an Ext4 newbie it might also be a good opportunity to get lost. :)

So without knowing too much about your current application (and e.g. the complexity of individual sub applications) I would recommend that you convert one or two 'sub' application to Ext4 MVC first and see how this works out.
This way you get familiar with Ext4 and its MVC approach without having to deal with too many things at one (backend rewrite, Ext MVC in large applications, etc).