we are evaluating the use of SenchaTouch 2 and ExtJS for a web application project. The project will have a desktop version (maybe ExtJS) and a touch version (maybe SenchaTouch).
A big part of logic have to be implemented in JS. GUI and platform independent logic: client/server communication, plugins to access our services (e.g. Authentication) or data handling etc.
So the question is: Is there a shared part, we can use for both plattforms? It seems, that a lot is equal, similiar or different. E.g. the class system seems to be equal, the store system is different. But the important point is, that the overlap is not defined. We do not want to build our software on our speculations .
ExtCore stucks at version 3 and is not part of ExtJS 4 and SenchaTouch 2. We found ext-core.js and ext-foundation.js in ExtJS 4. But both files are not available in SenchaTouch 2, as far as we see. Is this correct?
The current solutions for our requirements:
- Implementing the logic twice (with ExtJS and SenchaTouch)
- Use plain JS
- Use another Framework for shared functionality.
Are these the only valid solutions or is there an official and reliable way to implement things for both Sencha Frameworks?
The biggest issue is that Sencha Touch 2 uses a config object that automatically creates getters and setters but that is where the config properties go. Ext JS 4 doesn't use this.
For that problem, we already found a workaround. An own define method which applies the config - stuff to the ExtJs4 Objects. The bigger problem is that the parameters do not match, even in the non-gui classes. As I mentioned, it is important, that we can rely on something. So there is no official shared part? Are there any plans for that?
The biggest issue is that Sencha Touch 2 uses a config object that automatically creates getters and setters but that is where the config properties go. Ext JS 4 doesn't use this.
Doesn't 4.1 support the config object that creates automatic getters and setters?
I guess I should say "won't 4.1 ...." if it comes out of beta?
I did not search for differences, but the code of basic classes (classes I would expect in sencha platform) looks different for me. Here are two examples, I stumbled over:
- Ext.data.reader.Json: In ExtJS the property for the root node is called "root" in SenchaTouch it is "rootProperty".
- Ext.data.proxy.Ajax.doRequest() differs completely, so it is impossible to overwrite this method in an extended proxy object.
For me it looks like Sencha Touch differs apart from ExtJS.
Is the "Sencha Platform" real or will become real? Is there an official statement?
2. Configuration
In Ext JS 4, we introduce a dedicated config property that gets processed by the powerful Ext.Class pre-processors before the class is created. Features include:
Configurations are completely encapsulated from other class members
Getter and setter, methods for every config property are automatically generated into the class' prototype during class creation if the class does not have these methods already defined.
An apply method is also generated for every config property. The auto-generated setter method calls the apply method internally before setting the value. Override the apply method for a config property if you need to run custom logic before setting the value. If apply does not return a value then the setter will not set the value. For an example see applyTitle below.
: This was written when ExtJS 4 was announced! Why is this stuff even in the docs and the learning materials if it isn't even true??
I'm still waiting for an official statement about Sencha Platform. I have to made a statement to my boss . What is the plan? Or is Sencha Platform dead?
Same problems here, i was digging around sencha&extjs vs other frameworks such as Sproutcore, Ender, Knockout, Backbone, RX
And 2 things bothers me the most with ExtJS:
no way to move your code base from extJS to mobile Sencha framework.
no way I know of to cleanly separate Web UI from JS logic - to have a separate layer of html/css plus javascript binding layer (event pipes, templates, jquery, pick your choice) to your App logic written in ExtJS
I could not find any definitive answer on code migration from ExtJS to Sencha.
I am also evaluating how both products interact. It seems to me it is a brilliant strategy for sencha to keep these products on the same base to make development of mobile and desktop applications easy. Thus one more argument for using sencha touch over jquery mobile/ others when also developing for desktop is well documented and "easy" to do. (even when there are things that have to be different due to the kind of target device, but isn't that what frameworks are for?)
I would really appreciate some comments about the future plans, and how Sencha thinks where the journey goes to.