Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Serious Sencha
Using Sencha for Enterprise Applications
Learned lessons from the first
Sencha projects at ]project-open[
f...
Serious
Sencha
“Serious Sencha”
applications cater to
different
requirements
compared to
“normal” Web
applications.
 Seri...
Past Sencha Projects
 Ticket Tracker GUI
using Sencha Ext-JS
 Various Sencha Ext-
JS charts as
graphical indicators
 Un...
Reasons to
Choose
“Sencha”
 Integrated Strategy: Desktop +
Mobile (Ext-JS + Touch), code &
knowledge sharing.
 Consisten...
Overall
Experience
 Performing:
Ext-JS has proved capable to deal with complex
applications with medium amounts of data (...
Ext-JS/Touch Architecture
ServerServer
]po[ Server]po[ Server
REST
Interface
REST
Interface
Server:
REST API
Mobile Client...
Learned
Lessons
 Avoid loading all data into the app at
application startup
– This can take a while with 100.000 customer...
Thank
You!
frank.bergmann@project-open.com
www.project-open.com
(Frank Bergmann and Klaus Hofeditz)
Upcoming SlideShare
Loading in …5
×

Serious Sencha - Using Sencha ExtJS/Touch for Enterprise Applications

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.

  • Be the first to comment

  • Be the first to like this

Serious Sencha - Using Sencha ExtJS/Touch for Enterprise Applications

  1. 1. Serious Sencha Using Sencha for Enterprise Applications Learned lessons from the first Sencha projects at ]project-open[ frank.bergmann@project-open.com
  2. 2. Serious Sencha “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.
  3. 3. 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
  4. 4. 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
  5. 5. 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.
  6. 6. Ext-JS/Touch Architecture ServerServer ]po[ Server]po[ Server REST Interface REST Interface Server: REST API Mobile ClientMobile Client NoteNavigationViewNoteNavigationView NoteListNoteList NoteDetailNoteDetail GUI View: Pages & Panels NoteStoreNoteStore • Id: 12345 • note: „asdf@asdf.com“ • 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
  7. 7. 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.
  8. 8. Thank You! frank.bergmann@project-open.com www.project-open.com (Frank Bergmann and Klaus Hofeditz)

×