serious sencha - using sencha extjs/touch for enterprise applications

8
Serious Sencha Using Sencha for Enterprise Applications Learned lessons from the first Sencha projects at ]project-open[ [email protected]

Upload: projectopen

Post on 12-Jan-2015

326 views

Category:

Software


1 download

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

Page 1: Serious Sencha - Using Sencha ExtJS/Touch for Enterprise Applications

Serious SenchaUsing Sencha for Enterprise Applications

Learned lessons from the first Sencha projects at ]project-open[[email protected]

Page 2: Serious Sencha - Using Sencha ExtJS/Touch for Enterprise Applications

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.

Page 3: Serious Sencha - Using Sencha ExtJS/Touch for Enterprise Applications

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

Page 4: Serious Sencha - Using Sencha ExtJS/Touch for Enterprise Applications

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

Page 5: Serious Sencha - Using Sencha ExtJS/Touch for Enterprise Applications

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.

Page 6: Serious Sencha - Using Sencha ExtJS/Touch for Enterprise Applications

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

Page 7: Serious Sencha - Using Sencha ExtJS/Touch for Enterprise Applications

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.

Page 8: Serious Sencha - Using Sencha ExtJS/Touch for Enterprise Applications

ThankYou!

[email protected]

(Frank Bergmann and Klaus Hofeditz)