Your SlideShare is downloading. ×
Serious Sencha - Using Sencha ExtJS/Touch for Enterprise Applications
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Serious Sencha - Using Sencha ExtJS/Touch for Enterprise Applications

339
views

Published on

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, …

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.

Published in: Software, Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
339
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Serious Sencha Using Sencha for Enterprise Applications Learned lessons from the first Sencha projects at ]project-open[ frank.bergmann@project-open.com
  • 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. 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. 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. 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. 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. 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. Thank You! frank.bergmann@project-open.com www.project-open.com (Frank Bergmann and Klaus Hofeditz)