1. #1
    Ext JS Premium Member
    Join Date
    Sep 2008
    Posts
    47
    Vote Rating
    0
    dizzyd is on a distinguished road

      0  

    Question could be possible set-up an hybrid webUP??

    Hallo to all and thanks in advantage for the answers.
    I hope that someone have had facing the same problem that I am going to explain.


    I am facing a big problem.... And I do not have a cristal clear idea of how to solve it.

    I have to plan the upgrade of a large enterprise application with the following architecture:
    back-end wrote in php with Zend Framework
    front-end wrote in Extjs 3.x Framework


    They would like upgrade the front-end to Sencha Extjs 5 or Sencha GXT
    (they are evaluating the pro and cons).

    The mandatory condition is that I must not stop the development/maintenance
    of the current application.


    I thought to set up an "hybrid" situation where the already present pages keep working
    with Extjs 3.0 and use the new tecnology, that will be choosed,
    for develop the new pages, so plan a progressive upgrade of the old
    pages one by one.

    Ok let's go with the questions:
    Is this idea feasible?
    if YES (I hope so) How?

    Whereas that in any case an huge rewriting work is needed,
    which choice would be better? ExtJs or GXT?


    thanks again
    Davide.

  2. #2
    Sencha - Support Team
    Join Date
    Feb 2013
    Location
    California
    Posts
    6,598
    Vote Rating
    168
    Gary Schlosberg is a splendid one to behold Gary Schlosberg is a splendid one to behold Gary Schlosberg is a splendid one to behold Gary Schlosberg is a splendid one to behold Gary Schlosberg is a splendid one to behold Gary Schlosberg is a splendid one to behold

      0  

    Default

    Much of your decision will rely on how big your project is, how long you expect it to take to upgrade, etc. If possible, I personally would try to build the new version in Ext JS 5 (or GXT if I was a strong Java programmer), and minimally maintain the old app on until the new one is ready. This will allow you to use the many new features in version 5, and make your code easier to maintain. You should consider that support for Ext JS 3.x will stop in June, so a solution being driven by that version of the framework might become problematic.
    Are you a Sencha products veteran who has wondered what it might be like to work at Sencha? If so, please reach out to our human resources manager: fabienne.bell@sencha.com

  3. #3
    Ext JS Premium Member
    Join Date
    Sep 2008
    Posts
    47
    Vote Rating
    0
    dizzyd is on a distinguished road

      0  

    Default

    Thank you Gary Schlosberg,
    I glad to answer to yours points.

    Actually this application is pretty big and really complex,
    its develop have been in progres since 2008 and starts with Extjs2.

    At present my taqrget is to evaluate the feasibility of this Upgrade precisely
    in consideration of the end of the support for sencha Extjs3.

    Just for give you an idea, the following is the structure of the
    already developed front-end.
    Code:
    ├── automationEvents
    │   └── lanePanelEvents.js
    ├── AutomationWidget.js
    ├── builders
    │   ├── buildAdmissionPage.js
    │   ├── buildArchivePage.js
    │   ├── buildAutomatedQcPage.js
    │   ├── buildAutomatedQcPage.js.ori
    │   ├── buildAutomationBarcodeReaderConfig.js
    │   ├── buildAutomationConfigurationCapColorForm.js
    │   ├── buildAutomationConfigurationCapColor.js
    │   ├── buildAutomationConfigurationCarrierBuffer.js
    │   ├── buildAutomationConfigurationEmptyCarriers.js
    │   ├── buildAutomationConfigurationLayoutForm.js
    │   ├── buildAutomationConfigurationLayout.js
    │   ├── buildAutomationConfigurationOverload.js
    │   ├── buildAutomationConfigurationPage.js
    │   ├── buildAutomationConfigurationStandardForm.js
    │   ├── buildAutomationConfigurationStandard.js
    │   ├── buildAutomationConfigurationVisionSystem.js
    │   ├── buildAutomationCountersPage.js
    │   ├── buildAutomationErrorRecoveryPage.js
    │   ├── buildAutomationExceptionPage.js
    │   ├── buildAutomationGUIPage.js
    │   ├── buildAutomationStatusBar.js
    │   ├── buildAutomationSystemPage.js
    │   ├── buildAutomationTeach.js
    │   ├── buildAutomationTestsPage.js
    │   ├── buildBarcode.js
    │   ├── buildBatchTestsPage.js
    │   ├── buildBeltMotors.js
    │   ├── buildBeTheTubePage.js
    │   ├── buildConfiguratorPage.js
    │   ├── buildConfPage.js
    │   ├── buildDataBackupPage.js
    │   ├── buildDecisionMakingPage.js
    │   ├── buildEnableTestInstrumentPage.js
    │   ├── buildExportQcPage.js
    │   ├── buildfreeBarcode.js
    │   ├── buildGemEditorPage.js
    │   ├── buildHistoricArchive.js
    │   ├── buildInstrumentWL.js
    │   ├── buildKeyboard.js
    │   ├── buildLogViewerPage.js
    │   ├── buildMonitorPage.js
    │   ├── buildNemoSettingPage.js
    │   ├── buildNumPad.js
    │   ├── buildPersonalSettingPage.js
    │   ├── buildPrintlist.js
    │   ├── buildPrintPage.js
    │   ├── buildQcAnag.js
    │   ├── buildQcReport.js
    │   ├── buildRejectedPage.js
    │   ├── buildResultSimulatorPanel.js
    │   ├── buildSendHostPage.js
    │   ├── buildSitesEditor.js
    │   ├── buildStatistics.js
    │   ├── buildSystemMenuPages.js
    │   ├── buildTatPage.js
    │   ├── buildUnsolicitedPage.js
    │   └── buildValidationPrefilter.js
    ├── confEvents
    │   ├── abbreviationEvents.js
    │   ├── anag_collectorEvents.js
    │   ├── anag_departmentEvents.js
    │   ├── anag_diagnosisEvents.js
    │   ├── anag_ethnicEvents.js
    │   ├── anag_locationEvents.js
    │   ├── anag_physicianEvents.js
    │   ├── automatedQcEvents.js
    │   ├── automatedQcEvents.js.ori
    │   ├── batchEvents.js
    │   ├── configuratorEvents.js
    │   ├── dilutionEvents.js
    │   ├── enableTestInstrumentEvents.js
    │   ├── errorautomationEvents.js
    │   ├── exceptionEvents.js
    │   ├── gemEditorEvents.js
    │   ├── groupsparamsEvents.js
    │   ├── groupstestsEvents.js
    │   ├── instrumentEvents.js
    │   ├── inventoryEvents.js
    │   ├── labelEvents.js
    │   ├── manageEvents.js
    │   ├── materialEvents.js
    │   ├── nemoSettingEvents.js
    │   ├── paneltestEvents.js
    │   ├── parktestEvents.js
    │   ├── personalSettingEvents.js
    │   ├── reportslabelsEvents.js
    │   ├── sitesEvents.js
    │   ├── templateEvents.js
    │   ├── testcorrelatedEvents.js
    │   ├── testmethodsEvents.js
    │   ├── transresultEvents.js
    │   ├── tube_specimensourceEvents.js
    │   ├── typesampleEvents.js
    │   ├── typesample_instrumentEvents.js
    │   ├── typesample_lisEvents.js
    │   ├── userEvents.js
    │   ├── wardEvents.js
    │   └── ward_testEvents.js
    ├── cryptography
    │   ├── MD5.js
    │   └── SHA1.js
    ├── events
    │   └── validationEvents.js
    ├── guiEvents
    │   ├── admissionEvents.js
    │   ├── archiveEvents.js
    │   ├── BarcodeEvents.js
    │   ├── beTheTubeEvents.js
    │   ├── decisionMakingEvents.js
    │   ├── exceptionslistEvents.js
    │   ├── freeBarcodeEvents.js
    │   ├── historicArchiveEvents.js
    │   ├── InstrumentWorklistEvents.js
    │   ├── logViewerEvents.js
    │   ├── monitorEvents.js
    │   ├── printlistEvents.js
    │   ├── qcAnagEvents.js
    │   ├── rejectedEvents.js
    │   ├── sendHostEvents.js
    │   ├── sitesEditorEvents.js
    │   ├── statisticsEvents.js
    │   └── unsolicitedEvents.js
    ├── managers
    │   ├── AdmissionManager.js
    │   ├── ArchiveManager.js
    │   ├── AutomatedQcManager.js
    │   ├── AutomatedQcManager.js.ori
    │   ├── AutomationConfigurationLayoutManager.js
    │   ├── AutomationCountersManager.js
    │   ├── AutomationErrorRecoveryManager.js
    │   ├── AutomationExceptionManager.js
    │   ├── AutomationGUIManager.js
    │   ├── AutomationStatusBarManager.js
    │   ├── AutomationSystemManager.js
    │   ├── AutomationTestsManager.js
    │   ├── BarcodeManager.js
    │   ├── BatchTestsManager.js
    │   ├── BeltMotorsManager.js
    │   ├── BeTheTubeManager.js
    │   ├── ConfiguratorManager.js
    │   ├── confManager.js
    │   ├── DecisionMakingManager.js
    │   ├── EnableTestInstrumentManager.js
    │   ├── ExportQcManager.js
    │   ├── freeBarcodeManager.js
    │   ├── GemEditorManager.js
    │   ├── HistoricArchiveManager.js
    │   ├── InstrumentWLManager.js
    │   ├── LogViewerManager.js
    │   ├── MonitorManager.js
    │   ├── NemoAction.js
    │   ├── NemoConnectionManager.js
    │   ├── NemoMenuManager.js
    │   ├── NemoSettingManager.js
    │   ├── PersonalSettingManager.js
    │   ├── PrintlistManager.js
    │   ├── PrintManager.js
    │   ├── QcManager.js
    │   ├── QcReportManager.js
    │   ├── RejectedManager.js
    │   ├── SendHostManager.js
    │   ├── SitesEditorManager.js
    │   ├── specialTemplates
    │   │   ├── TplAllChart.js
    │   │   ├── TplChromatogramHA8180.js
    │   │   ├── TplChromatogramVARIANT2T.js
    │   │   ├── TplElectrophoresis.js
    │   │   ├── TplHematologyDXH.js
    │   │   ├── TplHemo.js
    │   │   └── TplPlatePetri.js
    │   ├── StatisticsManager.js
    │   ├── TatManager.js
    │   ├── UnsolicitedManager.js
    │   ├── ValidationActions.js
    │   ├── ValidationManager.js
    │   ├── ValidationManagerPrefilter.js
    │   ├── ValidationTemplate.js
    │   ├── ValidationTplChromHA8180v.js
    │   ├── ValidationTplChromVariant.js
    │   ├── ValidationTplHemo.js
    │   ├── ValidationTplPhor.js
    │   ├── ValidationTplSingle.js
    │   ├── VKeyboardManager.js
    │   └── VNumPadManager.js
    ├── NemoAutomationGUI.js
    ├── NemoCallBack.js
    ├── nemoConfigurator.js
    ├── NemoExtMonitor.js
    ├── NemoJsonStore.js
    ├── NemoLayout.js
    ├── NemoMenu.js
    ├── NemoModal.js
    ├── NemoPropertyEditorBuilder.js
    ├── NemoQcGraphEngine.js
    ├── NemoQcGraph.js
    ├── NemoSpecialRenderers.js
    ├── NemoWebSockets.js
    ├── NemoWidget.js
    ├── onBC.js
    ├── printEvents
    │   ├── printMedicalReportEvents.js
    │   └── printPatientsResultsEvents.js
    ├── qcEvents
    │   ├── exportQcEvents.js
    │   └── qcReportEvents.js
    └── viewport.js
    10 directories, 200 files

    About the time that I'm expecting to complete the work, I hope to finish
    within December 2015.

    Keep in mind that the work will be done by two developer, me and the
    other one is a strong java writer.

    But the question is still valid,
    Is it possible setup an hybrid application that will give me the solution for a progressive upgrade?

  4. #4
    Sencha - Support Team
    Join Date
    Feb 2013
    Location
    California
    Posts
    6,598
    Vote Rating
    168
    Gary Schlosberg is a splendid one to behold Gary Schlosberg is a splendid one to behold Gary Schlosberg is a splendid one to behold Gary Schlosberg is a splendid one to behold Gary Schlosberg is a splendid one to behold Gary Schlosberg is a splendid one to behold

      0  

    Default

    I'm not sure how well Ext JS 3 and Ext JS 5 would play together. There is an example of 3 and 4 together:
    http://docs.sencha.com/extjs/4.2.1/#...x/sandbox.html

    Keep in mind that in running two versions of the framework you are increasing the amount of code to download and the amount of memory it will take to run your app. Efficiency will be very important, and you may be limited on what you can comfortably display.
    Are you a Sencha products veteran who has wondered what it might be like to work at Sencha? If so, please reach out to our human resources manager: fabienne.bell@sencha.com

  5. #5
    Ext JS Premium Member
    Join Date
    Sep 2008
    Posts
    47
    Vote Rating
    0
    dizzyd is on a distinguished road

      0  

    Default

    Unfortunately the current application was written in Extjs 3 and I do not think good choice works with Extjs 4...

    Keep in mind that in running two versions of the framework you are increasing the amount of code to download and the amount of memory it will take to run your app...
    Yes it is correct, but this situation will be a transitory configuration that will kept untill when the rewriting will be completed.
    About the Efficency it is not a big deal because this application it's a web app, but doesn't work on internet...
    It is pretty hard to explain via Forum.

    you may be limited on what you can comfortably display.
    I do not understand what do you mean, could you explain better?

    Thank you again for your help.

  6. #6
    Touch Premium Member suzuki1100nz's Avatar
    Join Date
    Apr 2011
    Location
    New Zealand
    Posts
    688
    Vote Rating
    225
    suzuki1100nz is a splendid one to behold suzuki1100nz is a splendid one to behold suzuki1100nz is a splendid one to behold suzuki1100nz is a splendid one to behold suzuki1100nz is a splendid one to behold suzuki1100nz is a splendid one to behold suzuki1100nz is a splendid one to behold suzuki1100nz is a splendid one to behold

      1  

    Default

    Hi,
    Jumping from ExtJS 3.0 to 5.0 is a huge jump.
    The decision to move to GXT is a separate one.

    The ExtJS to GXT decision is really dependant on the primary development team skillset. If the company is a Java house then GXT has appeal. If not stick with ExtJS.
    Given you are facing a huge refactor going from 3 to 5.0 IMHO - I would suggest delaying it until the ExtJS 6.0 GA or after and move from 3.0 to the new single framework.

Similar Threads

  1. ST as/in hybrid app, performance
    By vadimv in forum Sencha Touch 2.x: Discussion
    Replies: 3
    Last Post: 28 Jun 2012, 12:32 AM
  2. Hybrid App using Sencha Touch 1.1.1
    By djaytwt in forum Sencha Touch 1.x: Q&A
    Replies: 5
    Last Post: 18 Jan 2012, 7:48 AM
  3. Speeding up ViewPort in hybrid app
    By ngd in forum Ext 3.x: Help & Discussion
    Replies: 2
    Last Post: 6 Jan 2011, 6:47 PM

Thread Participants: 2