serious sencha - using sencha extjs/touch for enterprise applications
DESCRIPTION
A summary of the decision process at ]project-open[ for choosing Sencha ExtJS/Touch as the base for the mobile strategy. "Serious Sencha" summarizes enterprise requirements for mobile/desktop apps, and how they are different from usual requirements.TRANSCRIPT
Serious SenchaUsing Sencha for Enterprise Applications
Learned lessons from the first Sencha projects at ]project-open[[email protected]
SeriousSencha
“Serious Sencha” applications cater to different requirements compared to “normal” Web applications.
Serious Amounts of Data– 100.000s of business objects– 100s of different object types– Densely interconnected data
Serious Numbers of Users– 1.000s of concurrent users– 10.000s of occasional users– Spanning different levels of the hierarchy with different
information needs
Serious Application Size– 100s of pages and lists of objects– Business objects are relatively “homogeneous”, so many
pages look similar and should reduce boiler plate code
Serious Security– Data include customer contacts, financial information,
project details– Users need a maximum of information to be productive, but
as few as possible to avoid data leaks
Serious Availability– Organizations across several time zones don’t allow for
downtimes
Serious Lifecycles– Business software typically operates between 5 and 20
years during which there are new versions, updates and patches rollout out to thousands of users.
Past Sencha Projects
Ticket Tracker GUI using Sencha Ext-JS
Various Sencha Ext-JS charts as graphical indicators
Under dev: Sencha Ext-JS Gantt Editor
Under dev: Sencha Touch Timesheet logging
Reasons to Choose “Sencha” Integrated Strategy: Desktop +
Mobile (Ext-JS + Touch), code & knowledge sharing.
Consistent framewlrks – all elements can be combined (as opposed to jQuery and others(?))
Both Ext-JS and Touch are leading frameworks in their area
Sencha dual licensing is (more or less…) compatible with ]project-open[ enterprise open source model
Overall Experience
Performing:Ext-JS has proved capable to deal with complex applications with medium amounts of data (10.000 tickets)
Cool:Both Ext-JS and Touch are cutting edge GUIs.
Difficult to learn:Both tools have long learning curves, and sometimes it still takes 2h to perform very simple tasks.
Converging:Differences between Sencha Touch and Sencha Ext-JS have converged. ]po[ code is still separate, but the time savings was massive.
Ext-JS/Touch Architecture
ServerServer
]po[ Server]po[ Server
RESTInterface
RESTInterface
Server:REST API
Mobile ClientMobile Client
NoteNavigationViewNoteNavigationView
NoteListNoteList
NoteDetailNoteDetail
GUI View:Pages & Panels
NoteStoreNoteStore
• Id: 12345• note: „[email protected]“• note_type_id: 11508• note_status_id: 11400• object_id: 624
• Id: 12346• note: „http://www.test.com/“• note_type_id: 11510• note_status_id: 11400• object_id: 8868
. . .
NoteModelNoteModel• Id: integer• note: text• note_type_id: integer• note_status_id: integer• object_id: integer
„Proxy“„Proxy“
Data:Model & Store
Network:Interface
Learned Lessons
Avoid loading all data into the app at application startup– This can take a while with 100.000
customer contacts…– The ]po[ REST back-end now supports a)
compression
References vs. object names:We now use “de-normalized” views instead of sending raw table data
“Dependent stores” (different views at the same data) are an issue – learn to work around until the next main release solves the issue.