Featured Posts

ExtJS, Spring MVC 3 and Hibernate 3.5: CRUD DataGrid... This tutorial will walk through how to implement a CRUD (Create, Read, Update, Delete) DataGrid using ExtJS, Spring MVC 3 and Hibernate 3.5. What do we usually want to...

Readmore

ExtJS plugin: PagingToolbarResizer Well, this is my first ExtJS plugin. Though it is not an advanced plugin, I'm very happy and it is a big accomplishment for me! The problem: ExtJS PagingToolbar Component...

Readmore

Hibernate 3 Annotations Tutorial This tutorial will walk through how to implement a hello world project using Hibernate Annotations and MySQL database. Requirements Download and unzip Hibernate Core...

Readmore

My DeveloperWorks: What's life like for a female Java... Just wanted to share with you my interview on Valerie's My developerWorks blog: Interview with Loiane Groner, Java developer in Brazil. I'm very happy, because this interview...

Readmore

Getting started with ExtJS in your J2EE project This tutorial will walk through how to get an Ext JS installation up and running quickly in your java (J2EE) project. Level: Basic This is the screenshot of this tutorial: First,...

Readmore

Loiane Groner Rss

Ext Designer Review

Posted on : 06-04-2010 | By : Loiane | In : ExtJS

15

A couple of weeks ago, I decided to download Ext Designer and play around with it. In this post, I am going to write a review about this application.

Disclaimer: I am not being paid to do this and no one asked me to. Everything I say/write here is my honest opinion.

Designer is a desktop application that helps you create interfaces faster than ever in an easy-to-use, drag-and-drop environment.

The ExtJS Team created a Preview screencast in which they mock up some interfaces.

It really is cool. There is a post on ExtJS Blog you can check out all the features of this great tool.

Despite being a great tool with all those amazing features, there are some features and ExtJS components I missed in the application.

First, I created a simple ExtJS application to illustrate what I mean.

Click to enlarge the picture

It generates the code for each component you create:

Personal Info – Field Set:

Click to enlarge the picture

Name Text Field:

If you take a look, you will see the name text field within the personal info field set is declared in a different way.

If you want to export the whole code to your favorite IDE, so you can integrate ExtJS with a programming language or platform (e.g.: PHP, Java, .NET), you just need to select the root component and click on “Export Code to Disk” or “Export code to ClipBoard”:

Look now at the code generated from the project I created – it is the same code you get when you choose the export function:

MyWindowUi = Ext.extend(Ext.Window, {
    title: 'Ext Designer Test',
    width: 400,
    height: 250,
    initComponent: function() {
        this.items = [
            {
                xtype: 'tabpanel',
                activeTab: 1,
                items: [
                    {
                        xtype: 'panel',
                        title: 'Grid',
                        items: [
                            {
                                xtype: 'grid',
                                title: 'My Grid',
                                columns: [
                                    {
                                        xtype: 'gridcolumn',
                                        header: 'Name',
                                        sortable: true,
                                        resizable: true,
                                        width: 100,
                                        dataIndex: 'name'
                                    },
                                    {
                                        xtype: 'gridcolumn',
                                        header: 'Phone #',
                                        sortable: true,
                                        resizable: true,
                                        width: 100,
                                        dataIndex: 'phone'
                                    },
                                    {
                                        xtype: 'gridcolumn',
                                        header: 'Address',
                                        sortable: true,
                                        resizable: true,
                                        width: 100,
                                        dataIndex: 'address'
                                    }
                                ],
                                bbar: {
                                    xtype: 'paging'
                                }
                            }
                        ]
                    },
                    {
                        xtype: 'panel',
                        title: 'Form',
                        items: [
                            {
                                xtype: 'fieldset',
                                title: 'Personal Info',
                                layout: 'form',
                                items: [
                                    {
                                        xtype: 'textfield',
                                        fieldLabel: 'Name',
                                        anchor: '100%',
                                        name: 'nameField'
                                    },
                                    {
                                        xtype: 'textarea',
                                        fieldLabel: 'Address',
                                        anchor: '100%',
                                        name: 'addressField'
                                    },
                                    {
                                        xtype: 'textfield',
                                        fieldLabel: 'Phone #',
                                        anchor: '100%',
                                        name: 'phoneField'
                                    }
                                ]
                            },
                            {
                                xtype: 'button',
                                text: 'Save'
                            }
                        ]
                    },
                    {
                        xtype: 'panel',
                        title: 'Tree',
                        items: [
                            {
                                xtype: 'treepanel',
                                title: 'My Tree',
                                root: {
                                    text: 'Root Node'
                                },
                                loader: {

                                }
                            }
                        ]
                    }
                ]
            }
        ];
        MyWindowUi.superclass.initComponent.call(this);
    }
});

It generated a single code block! Lucky me it is a small and simple project! Imagine the code generated from a big project? Not friendly if you need to maintain this project in the future.

This is the first thing I think they could improve in Ext Designer. If the tool creates a class for each component already, why do not use the reference to it to generate the whole code? And they could export all the classes in different files. I think this is the way most of ExtJS developers does when they have to develop a big project.

The second thing I did not like is that the code is read only. I am a developer, and sometimes I just want to set a property in the code. It may be faster than searching the property in the Component Config tab, after all, I am used to set the properties in the code already. I understand this can be sort of a protection if a person does not know ExtJS and he/she can mess up with the code trying to change anything.

Third: I missed some components, such as radio group and graphs, among others. Maybe this is something they can implement for a near future?

The coolest feature in my opinion is the preview function. It is really awesome!

In general, Ext Designer is a great tool and I love it! It is very intuitive.

I do not recommend it if you are learning ExtJS. I think it is important to understand how ExtJS works and the components patterns before you get started with a visual tool. However, it is great if you are an ExtJS developer already. It can save you a lot of time. It is also great to prototype and design applications (if there is a design team in your company that do not know ExtJS programming).

I definitely recommend buying it.

You can download the full version (with all the features) and try it for 15 days for free (all you need to do is to register as a user on the ExtJS forum). After the evaluation period, you have to get a license.

Happy coding!

Updated: ExtJS quoted this review on ExtJS Notes (Thank You!) – http://notes.extjs.com/post/501611295/ext-designer-is-a-great-tool

Comments (15)

[...] This post was mentioned on Twitter by Loiane Groner, Alessandro Dourado. Alessandro Dourado said: RT @loiane: Blog post: Ext Designer Review http://bit.ly/95Rkyz [...]

Otimo post! (Great Post!)

Thanks for the review! We’re working on improving the generated code, though it’s a difficult problem and we are still defining exactly what ‘best practices’ means.

Great review. Agree with you on the point about the big giant code block. Now I wish they add support for Ext GWT. :)

It’s a layout designer, not an IDE. The real coding is left to the engineer.
Good review.

Social comments and analytics for this post…

This post was mentioned on Twitter by loiane: Blog post: Ext Designer Review http://bit.ly/95Rkyz...

Thanks for the feedback! It means a lot! :)

I have downloaded it too and I must say that I thought it was a disappointing product. Certainly in relation to what you have to pay for it. For that price you bought once a complete Delphi Suite from Borland with a mass of good documentation. The drag and drop features are nice, but it is really not complete. I had to restart the application twice under Windows 7, because it was completely locked.

I am a great fan of Extjs, but this product is not quite as good as it should be, and being quite expensive for the results it deliver.

What disturbs me a bit on forums and blogs is that people so easily think that stuff is great. Well even the community has to stay critical and all the compliments I see on this product (specially on the Extjs website) are way beyound the quality it is delivering.

great post by the way.

Johan Said:

> I am a great fan of Extjs, but this product is not quite as good as it should be, and being quite expensive for the results it deliver.

I concur. Ext Designer could be worth it’s weight in gold if you are a consultant and do large amounts of interface mockups, etc.

But!

1. Ext Designer has crashed 2-3 times for me even thought I’ve only been using it sparingly for two weeks and no autosave guarantees that hours of work will disappear at the blink of an eye.

2. This product does not have a single undo/redo level at all? Even Notepad has a singe undo level – it’s the absolute bare minimum for any serious content creation application today.

3. This product does not have internet proxy awareness at all. Do you seriously want me to pull all the cables out of my PC, unmount it from under the table, walk over to IT in the other building and try to persuade one of the sysadms to allow my PC to access the internet via the a DSL line just to activate Ext Designer? Seriously Mr. Slocum?

Thanks for your review! :)

I think Ext.js it’s a great framework and I surely try this tool!

I just wanna say thanks for you, loiane..thanks for your contribution…. Thank you very much..

Thanks for explications =)

I have used Ext Designer for few days and I’ve got a problem : when I use the code which I export I have as result a white page without error…

Have you got an idea???

Thanks

ExtJS is tricky but worth learning in the end, thanks for the review

Two things that is a huge problem, and hopefully it can be solved is:
1. To be able to interpret and open existing code, which is brought on by the point that you cannot edit the code within the designer.
2. To be able to change themes. What good is a designer if there is no easy way to change the color.

Hi,

I agree very much on the codegeneration. I have just built a project, and it now contains a few thousand code lines generated from Ext Designer. Not very maintainable no, will need to stick to Ext Designer for an eternity…

I have published a blogpost which might be interesting. Ext Designer – a tutorial for developers: http://aboutfrontend.com/2010/07/ext-designer-tutorial-for-a-developer/

Best regards,
http://twitter.com/nilsfredrik

Write a comment