How a spark between Progress and an ISV can easily turn into a fire !
Introducing Peggy Cole
- Software Coordinator- Member of the Organi R&D team- 15 years Progress experience- OE, OOP, ABL, Dynamics (ADM2), web
services, Visual Studio, socket connections, XML, XSLT, …
- Passionated about optimizing queries and her son
Introducing Gerd De Bruyckere
- Software Architect- Member of the Organi R&D team- 14 years Progress experience- OE, OOP, ABL, web services, Sonic,
Visual Studio, asp.Net, Ajax, Java, Sencha, Telerik, Html 5, Jquery, …
- Passionated about software and single malt whisky
Introducing ORGANI
ISV since 1995
Introducing ORGANI
Introducing ORGANI
- Based in Antwerp (Belgium)- Software, hardware & services- Solution for 4 market segments :
- Wholesale, production, distribution- Logistic services- Finance departments &
accountants- Bailiffs & debt collection
Introducing ORGANI
Introducing ORGANI
What is this session about ?
• Migration of some “old” applications to become 64-bit compliant Telerik applications
• Issues we came across and where we have (no) solution
for • Making advantage of some new features of OpenEdge like
reflection, OERadRibbonForm, … • Future development like new templates, Kendo UI
What is this session about ?
How did we come to this point ?
1977 1996 2000 2002
May, 1977A new company was born
ORGANI
Our timeline ...
CobolCTOSFassport…
1977 1996 2000 2002
May, 1977A new company was born
ORGANI
June, 1995ORGANI joined forces with Progress Software
Our timeline ...
1977 1996 2000 2002
May, 1977A new company was born
ORGANI
1996Start development ORDAS II (new version of our ERP for wholesale & industry) - ProShield
June, 1995ORGANI joined forces with Progress Software
Data & layout in 1 screen
Our timeline ...
1996 2000 2002
1996Start development ORDAS II (new version of our ERP for wholesale & industry) Proshield
Data & layout in 1 screen
Our timeline ...
2000Start development BEVEX II (ERP for logistics services) ProShield 6.1)
1996 2000 2002
1996Start development ORDAS II (new version of our ERP for wholesale & industry) Proshield
Data & layout in 1 screen
2000Start development BEVEX II (ERP for logistics services) ProShield 6.1)
2002Start development ORAS III (Financial solution)(using ProShield 7)
Our timeline ... 2001Start development OLS(Logistics solution)(using Progress Dynamics)
2002 2008 2010
2002Start development ORAS III (Financial solution)(using ProShield 7)
2008Start development TAGOR III (Bailiffs solution) – OE 10.2 B(using ProShield 8)
Datasets, temptables, OO, Codejock integration
Our timeline ...
What was the result of our effort in 2008 ?
2002 2008 2010
2002Start development ORAS III (Financial solution)(using ProShield 7)
2008Start development TAGOR III (Bailiffs solution) – OE 10.2 B(using ProShield 8)
Datasets, temptables, OO, Codejock integration
2010Start web developmentTelerik RAD Controls
Proxygen & asp.Net
Our timeline ...
What was the result of our effort in 2010 ?
2010 2012 2015
2010Start web developmentTelerik RAD Controls
2012Start mobile development
Proxygen & asp.Net
Our timeline ...
Sencha
2010 2012 2015
2010Start web development
2012Start mobile development
Proxygen & asp.Net
Sencha
Our timeline ...
2010 2012 2015
2010Start web development
2012Start mobile development
2015Joined effort new project(ProShield Fly2Pro)
- 64 bit- Infragistics & Telerik- Object Oriented- Prodatasets- New controls- Kendo UI
Proxygen & asp.Net
Sencha
Our timeline ...
Architecture of most recent application
DATA SOURCES
DATA ACCESS
TEMP TABLES
UI LOGIC
UI
DATABASE
BUSINESSLOGIC
UILOGIC
PRESENTATION
UI
PRESENTATION
DATA
SO
UR
CES
DATA
AC
CES
S
TEM
P T
AB
LES
UI LO
GIC
UI LOGIC BUSINESS LOGIC DB
.w.p
(superpr)
Business entity class
Server component
classApp
server
Context management
Session management
Exception management
Short term & long term strategy
Why modernisation ?
Organi
Customers
Developers
Prospects
• Move forward• Don’t forget the past
• New, modern UI• New features
• Keep the motivation• Attract new developers
• Compete with the competition (Navision, SAP, …)
How do you start modernising ?
Short term : migration of applications without rewriting code
• Strong collaboration with framework vendor
Fly2Pro
Styles
CLS
CTRL
FRM
LIB
PRG
IMG
Contr.
Styles folder with themes
Include folder for transaction handling, dataset includes, …
Common classes like an Util class, a class for converting browsers to grids, window
api class
Here resides the real controls from Infragistics or
Telerik Winforms
Forms, like the login form, the menu shell, datepicker
form, …
Controller class for forms, security, task panel, …
Image folder, contains the images for ribbonbar, menu
items, …
Program folder with the framework programs like
user maintenance, security, …
How do you start modernising ?
Short term : migration of applications without rewriting code
• Strong collaboration with framework vendor• Adding some new features :
New modern menu Embedding frames into forms Conversion of browser to grid Get rid of shared variables
New menu
How to create a telerik menu …
1. Create a form2. Let it inherit from the new forms that are build on Telerik3. Add a RadDock to the form 4. Add DockWindow and document window5. Run the form
And the rest is up to you …
Frames to forms
Progress window ( *.w)
Toolbar / menubar
Frame
Progress form (*.cls)
Data toolbar / menubar ctrlCommandBar / ctrlRibbonBar
ctrlClientDockArea
Frame
Conversion of browser to grid
1. Start a form2. Build ribbonbar (data driven)3. Embed the old window & change background color of frame 4. Create grid, add to form (voForm:Controls:Add(voGrid) and bring to front 5. Attach query of browser to bindingsource of grid
Special thanks to
Mike Fechner
Say no to shared variables
How do you start modernising ?
Long term : New templates
• Choice between Infragistics, Telerik, … no dependency• Create a set of properties, methods, events, … for our
developers to choose• Use new techniques like Kendo UI, enumurations,
reflection, business entity, …
KENDO UI Mobile via JSDO (REST)
Business Entity Database
MODEL
VIEW
Controller
3th partyWeb API (limited
functions)
FRONTEND BACKEND
BASE CONTROL…
BASE CONTROLINFRAGISTICS
BASE CONTROLTELERIK
INTERFACE
COMMON CONTROLVIEW
CONTROL FACTORY
Implements
Demonstration
COMMON CONTROL
INTERFACE
BASE CONTROLTELERIK
CONTROL FACTORY
Generation of code
Demonstration
MODEL
VIEW
Controller
Router
ShowCustomer
Returns view & model
Exposing the code
Demonstration
BE
SCE
MODEL Controller
KENDO UI(MVVM)
Where do we go from here ... ?
Build our own toolset of controls Build our own toolset of utils Build complex templates
Winner gets an Organi goodie bag :
Quiz
• Let’s KAHOOT !