how a spark between progress and an isv can easily turn into a fire !

64
How a spark between Progress and an ISV can easily turn into a fire !

Upload: sybil-sutton

Post on 17-Jan-2016

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: How a spark between Progress and an ISV can easily turn into a fire !

How a spark between Progress and an ISV can easily turn into a fire !

Page 2: 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

Page 3: How a spark between Progress and an ISV can easily turn into a fire !

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

Page 4: How a spark between Progress and an ISV can easily turn into a fire !

Introducing ORGANI

ISV since 1995

Page 5: How a spark between Progress and an ISV can easily turn into a fire !

Introducing ORGANI

Page 6: How a spark between Progress and an ISV can easily turn into a fire !

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

Page 7: How a spark between Progress and an ISV can easily turn into a fire !

Introducing ORGANI

Page 8: How a spark between Progress and an ISV can easily turn into a fire !

Introducing ORGANI

Page 9: How a spark between Progress and an ISV can easily turn into a fire !

What is this session about ?

Page 10: How a spark between Progress and an ISV can easily turn into a fire !

• 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 ?

Page 11: How a spark between Progress and an ISV can easily turn into a fire !

How did we come to this point ?

Page 12: How a spark between Progress and an ISV can easily turn into a fire !

1977 1996 2000 2002

May, 1977A new company was born

ORGANI

Our timeline ...

CobolCTOSFassport…

Page 13: How a spark between Progress and an ISV can easily turn into a fire !

1977 1996 2000 2002

May, 1977A new company was born

ORGANI

June, 1995ORGANI joined forces with Progress Software

Our timeline ...

Page 14: How a spark between Progress and an ISV can easily turn into a fire !

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 ...

Page 15: How a spark between Progress and an ISV can easily turn into a fire !

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)

Page 16: How a spark between Progress and an ISV can easily turn into a fire !

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)

Page 17: How a spark between Progress and an ISV can easily turn into a fire !

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 ...

Page 18: How a spark between Progress and an ISV can easily turn into a fire !
Page 19: How a spark between Progress and an ISV can easily turn into a fire !

What was the result of our effort in 2008 ?

Page 20: How a spark between Progress and an ISV can easily turn into a fire !

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 ...

Page 21: How a spark between Progress and an ISV can easily turn into a fire !
Page 22: How a spark between Progress and an ISV can easily turn into a fire !

What was the result of our effort in 2010 ?

Page 23: How a spark between Progress and an ISV can easily turn into a fire !

2010 2012 2015

2010Start web developmentTelerik RAD Controls

2012Start mobile development

Proxygen & asp.Net

Our timeline ...

Sencha

Page 24: How a spark between Progress and an ISV can easily turn into a fire !
Page 25: How a spark between Progress and an ISV can easily turn into a fire !

2010 2012 2015

2010Start web development

2012Start mobile development

Proxygen & asp.Net

Sencha

Our timeline ...

Page 26: How a spark between Progress and an ISV can easily turn into a fire !

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 ...

Page 27: How a spark between Progress and an ISV can easily turn into a fire !

Architecture of most recent application

Page 28: How a spark between Progress and an ISV can easily turn into a fire !

DATA SOURCES

DATA ACCESS

TEMP TABLES

UI LOGIC

UI

DATABASE

BUSINESSLOGIC

UILOGIC

PRESENTATION

Page 29: How a spark between Progress and an ISV can easily turn into a fire !

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

Page 30: How a spark between Progress and an ISV can easily turn into a fire !

Short term & long term strategy

Page 31: How a spark between Progress and an ISV can easily turn into a fire !

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

Page 32: How a spark between Progress and an ISV can easily turn into a fire !

How do you start modernising ?

Short term : migration of applications without rewriting code

• Strong collaboration with framework vendor

Page 33: How a spark between Progress and an ISV can easily turn into a fire !

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

Page 34: How a spark between Progress and an ISV can easily turn into a fire !

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

Page 35: How a spark between Progress and an ISV can easily turn into a fire !

New menu

Page 36: How a spark between Progress and an ISV can easily turn into a fire !
Page 37: How a spark between Progress and an ISV can easily turn into a fire !

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 …

Page 38: How a spark between Progress and an ISV can easily turn into a fire !
Page 39: How a spark between Progress and an ISV can easily turn into a fire !

Frames to forms

Page 40: How a spark between Progress and an ISV can easily turn into a fire !

Progress window ( *.w)

Toolbar / menubar

Frame

Progress form (*.cls)

Data toolbar / menubar ctrlCommandBar / ctrlRibbonBar

ctrlClientDockArea

Frame

Page 41: How a spark between Progress and an ISV can easily turn into a fire !

Conversion of browser to grid

Page 42: How a spark between Progress and an ISV can easily turn into a fire !

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

Page 43: How a spark between Progress and an ISV can easily turn into a fire !

Say no to shared variables

Page 44: How a spark between Progress and an ISV can easily turn into a fire !
Page 45: How a spark between Progress and an ISV can easily turn into a fire !
Page 46: How a spark between Progress and an ISV can easily turn into a fire !

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

Page 47: How a spark between Progress and an ISV can easily turn into a fire !

KENDO UI Mobile via JSDO (REST)

Business Entity Database

MODEL

VIEW

Controller

3th partyWeb API (limited

functions)

FRONTEND BACKEND

Page 48: How a spark between Progress and an ISV can easily turn into a fire !

BASE CONTROL…

BASE CONTROLINFRAGISTICS

BASE CONTROLTELERIK

INTERFACE

COMMON CONTROLVIEW

CONTROL FACTORY

Implements

Page 49: How a spark between Progress and an ISV can easily turn into a fire !

Demonstration

Page 50: How a spark between Progress and an ISV can easily turn into a fire !

COMMON CONTROL

Page 51: How a spark between Progress and an ISV can easily turn into a fire !

INTERFACE

Page 52: How a spark between Progress and an ISV can easily turn into a fire !

BASE CONTROLTELERIK

Page 53: How a spark between Progress and an ISV can easily turn into a fire !

CONTROL FACTORY

Page 54: How a spark between Progress and an ISV can easily turn into a fire !

Generation of code

Page 55: How a spark between Progress and an ISV can easily turn into a fire !

Demonstration

Page 56: How a spark between Progress and an ISV can easily turn into a fire !

MODEL

VIEW

Controller

Router

ShowCustomer

Returns view & model

Page 57: How a spark between Progress and an ISV can easily turn into a fire !

Exposing the code

Page 58: How a spark between Progress and an ISV can easily turn into a fire !

Demonstration

Page 59: How a spark between Progress and an ISV can easily turn into a fire !

BE

SCE

MODEL Controller

KENDO UI(MVVM)

Page 60: How a spark between Progress and an ISV can easily turn into a fire !

Where do we go from here ... ?

Build our own toolset of controls Build our own toolset of utils Build complex templates

Page 61: How a spark between Progress and an ISV can easily turn into a fire !
Page 62: How a spark between Progress and an ISV can easily turn into a fire !

Winner gets an Organi goodie bag :

Quiz

Page 63: How a spark between Progress and an ISV can easily turn into a fire !

• Let’s KAHOOT !

Page 64: How a spark between Progress and an ISV can easily turn into a fire !