app development – where should i go...

70
1 App Development – Where should I go now? engage 2015 René Winkelmeyer midpoints GmbH

Upload: others

Post on 04-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

1

App Development – Where should I go now?

engage 2015

René Winkelmeyer midpoints GmbH

Page 2: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

2

René Winkelmeyer Head of Development

midpoints GmbH http://www.midpoints.de IBM Advanced Business Partner IBM Design Partner (Notes Domino, Mobile, Verse) Apple Enterprise Developer und MDM Group Member Samsung Enterprise Alliance Partner Services - Enterprise Mobility Service - Mobile Device und Application Management - IBM Notes Traveler und IBM Mobile Connect

About me

Page 3: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

3

•  Skype

muenzpraeger •  Twitter

muenzpraeger •  LinkedIn

muenzpraeger •  Slideshare

muenzpraeger

•  Web http://blog.winkelmeyer.com http://www.midpoints.de

•  Mail [email protected] [email protected]

OpenNTF •  File Navigator •  Generic NSF View Widget for IBM Connections

About me

René Winkelmeyer Head of Development

Page 4: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

4

Page 5: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

5

Stateless, stateful – server-side oder client-side?

§  xxx

Page 6: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

6

Stateless, stateful – server-side oder client-side?

§  xxx

Page 7: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

7

Stateless, stateful – server-side oder client-side?

§  xxx

HTML

JavaScript

CSS

Java

Page 8: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

8

Stateless, stateful – server-side oder client-side?

§  xxx

HTML (1992)

JavaScript (1995)

CSS (1996)

Java (1995)

Page 9: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

9

Page 10: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

10

Stateless, stateful – server-side oder client-side?

§  xxx

Page 11: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

11

Stateless, stateful – server-side oder client-side?

§  xxx

Page 12: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

12

Stateless, stateful – server-side oder client-side?

§  xxx

Page 13: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

13

http://serienjunkies.org/serie/sledge-hammer/

Page 14: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

14

http://www.beautylish.com/videos/nails

Page 15: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

15

Stateless, stateful – server-side oder client-side?

§  xxx

http://io9.com/the-history-channel-and-jeremy-renner-are-working-on-te-1693267727

Page 16: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

16

Stateless, stateful – server-side oder client-side?

§  xxx

http://io9.com/the-history-channel-and-jeremy-renner-are-working-on-te-1693267727

Page 17: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

17

ARE YOU

PREPARED?

Page 18: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

18

https://www.flickr.com/photos/chuckcongdon/5647209408

Page 19: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

19

http://io9.com/the-history-channel-and-jeremy-renner-are-working-on-te-1693267727

Page 20: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

20

Programming Language Capabilities Notes/Domino

§  @Commands / @Functions

§  LotusScript

§  Procedural

§  OOP

Page 21: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

21

Programming Language Capabilities Notes/Domino

§  JavaScript

§  On the web

§  In the client

§  CSS (not a language)

§  On the web

§  In the Client

Page 22: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

22

Programming Language Capabilities Notes/Domino

§  Java

§  In Agents

§  In XPages

§  As OSGi HTTP Plugins for Equinox

§  As OSGi HTTP Plugins for Expeditor

§  As OSGi HTTP Plugins for DOTS (Domino OSGi Tasklet Service)

Page 23: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

23

Self shooted

Page 24: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

24

TIOBE Index

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Page 25: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

25

GitHut.info

Page 26: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

26

GitHut.info

Page 27: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

27

GitHut.info

Page 28: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

28

GitHut.info

Page 29: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

29

GitHut.info

Page 30: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

30

GitHut.info

Page 31: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

31

Page 32: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

32

DUMB vs.

KNOWS

Page 33: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

33

Skillsets – Frontend

§  Strong eye for UI design

§  Love to move pixels

§  Working around Browser behaviour

§  Open to adapt new frameworks and behavior frequently

§  Experience in consuming APIs

Page 34: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

34

Skillsets – Frontend

§  HTML5

§  JavaScript

§  Modern frameworks like AngulaJS (even after 2.0), Backbone.js, Dojo, jQuery etc.

§  Node.js / Rhino

§  CSS3 / LESS / SASS

Page 35: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

35

CSS2 vs. CSS3

§  New attribute selectors §  element[foo^="bar“] - <element foo="barn" §  element[foo$="bar“] - <element foo="rebar"> §  element[foo*="bar“] - <element foo="rebaring">

§  New pseudo classes §  :root §  :nth-child(n) §  :nth-last-child(n) §  :enabled

§  Background style properties §  background-clip §  background-origin

Page 36: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

36

LESS / SASS

§  CSS precompilers

§  Write in LESS or SASS – Output will be CSS

Page 37: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

37

LESS

Page 38: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

38

LESS

Page 39: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

39

SASS

Page 40: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

40

SASS

Page 41: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

41

Client-side Frameworks

Page 42: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

42

AngularJS HTML

Page 43: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

43

AngularJS script

Page 44: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

44

AngularFaces

Page 45: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

45

Skillsets – Backend

§  Good understanding of application based security

§  KnowHow in SQL and NoSQL (i. e. MongoDB, CouchDB) databases

§  Minimum Java 7 knowledge, Java 8 preferred

§  Source control usage is a must (Git)

Page 46: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

46

Skillsets – Backend

§  Experience with modern web development frameworks (JavaServerFaces, GWT, Spring, Vaadin, JavaFX)

§  Hands-on experience with Junit testing, build tools (Maven) and Continous Integration (CI) tool like Jenkins or Bamboo

§  Knowledge in designing secure, but also easily consumable APIs

§  Experience with J2EE AppServers (Tomcat, Liberty, Glassfish)

Page 47: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

47

API Design

Page 48: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

48

API Design

Page 49: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

49

API Design

Page 50: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

50

API Design

https://api.mycompany.com /people/all /people/<id> /people/<id> /people/<id>

Page 51: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

51

API Design

https://api.mycompany.com /people/all GET /people/<id> GET /people/<id> POST /people/<id> DELETE

Page 52: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

52

API Design

https://api.mycompany.com /people/all GET /people/<id> GET /people/update/<id> UPDATE /people/delete/<id> DELETE

Page 53: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

53

API Design

Page 54: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

54

API Design

Page 55: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

55

JVM Frameworks

Page 56: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

56

Domino server – your unknown powerhorse!

Page 57: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

57

Domino server – your unknown powerhorse!

Page 58: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

58

Domino server – the unknown powerhorse!

§  IBM has introduced with 8.5.3 a „new“ J2EE engine to the Domino server

§  Expeditor WebContainer

§  Fulfills Servlet 2.5 specification

§  You can use standard Web Applications (aka Web Application Archive == WAR) in a modified version

§  More information is here available http://www.slideshare.net/fiorep/domino-osgi-development

Page 59: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

59

Vaadin

Page 60: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

60

XPages vs. Vaadin – History and Presence

XPages Vaadin

•  Bought by IBM in 2001 (XForms)

•  Was „Workplace“

•  Based on JSF

•  Development by IBM (Core, closed source) and partly by the community (ExtLib)

•  In 2001 newly developed as

„Millstone Library“ (IT Mill)

•  Uses GWT since 2007 (IT Mill Toolkit 4)

•  „Feels“ like SWT/AWT/Swing

•  Further development by Vaadin Ltd. (open source, Apache licensed)

Page 61: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

61

XPages vs. Vaadin – Operating systems

XPages Vaadin

•  All Domino supportes operating

systems

•  All operating systems with Java 6

and higher

Page 62: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

62

XPages vs. Vaadin – Supported AppServers

XPages Vaadin

•  IBM Domino

•  XPages Buildpack (IBM Bluemix)

•  Apache Tomcat 5+

•  IBM WebSphere (Full/Liberty) 7+

•  JBoss 4+

•  Liferay Portal 5.2

•  Oracle WebLogic 10.3+

•  WildFly 8+

•  Java Servlet 2.4 / JSR-286

•  ...

Page 63: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

63

XPages vs. Vaadin – Release / Dependencies

XPages Vaadin

•  Rely on Domino-Updates (Major,

Minor, FP, IF)

•  Updating the App-Server means Updating all XPages applications

•  A server update affects all XPages applications

•  New release (minor) all 4-5 weeks

•  Updates of the AppUpdates are independent from Vaadin – and vice versa

•  Vaadin-Updates can be done selectively on a per-applicatio base

Page 64: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

64

XPages vs. Vaadin – IDE

XPages Vaadin

•  IBM Domino Designer 8.5.2+, nur

Windows

•  Eclipse

•  IntelliJ

•  Netbeans

•  ...

Page 65: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

65

XPages vs. Vaadin – Programming languages

XPages Vaadin

•  SSJS

•  JavaScript

•  Java

•  Java •  JavaScript

•  Scala

•  Jython

•  ...

Page 66: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

66

Vaadin

Page 67: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

67

Serverside – RAM (Vaadin example)

500 – 1.000 kb / Session

8.000 active Users == 8 GB

Page 68: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

68

Stateless, stateful – server-side oder client-side?

http://www.slideshare.net/cnbailey/ibm-interconnect-java-vs-javascript

Page 69: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

69

Page 70: App Development – Where should I go now?engage.ug/engage.nsf/pages/2015_Slides_a/$file/Engage... · 2018-10-07 · App Development – Where should I go now? engage 2015 René Winkelmeyer

70

Thank you!