SlideShare a Scribd company logo
A Notes Developer's Journey into Java
Tweet about this event
And mention us: @Teamstudio @TLCCLTD
Feb. 17, 2015
@Teamstudio
teamstudio.com
@TLCCLTD
tlcc.com
Courtney Carter
Inbound Marketing Specialist
Teamstudio
Who We Are
• Teamstudio’s background is in creating tools for
collaborative computing in mid-size and large
enterprises, primarily for IBM Notes
• Easy-to-use tools for developers and administrators
• 1600+ active customers, 53 countries
• Offices in US, UK, and Japan
• Entered mobile space in 2010 with Unplugged: easy
mobilization of Notes apps to Blackberry, Android
and iOS
Teamstudio Unplugged
• Your mobile Domino server: take your IBM Notes
apps with you!
• End-users access Notes applications from mobile
devices whether online or offline
• Leverages the powerful technology of XPages
Unplugged Templates
• Continuity – Mobile offline access to
BCM programs
• OneView Approvals – Expense
approvals; anywhere, anytime
• CustomerView – lightweight CRM
framework for field sales and field
service teams
• Contacts – customer information database
• Activities – customer activity log
• Media – mobile offline file storage and access
XControls
• Set of Controls for IBM Domino XPages developers
working on new XPages apps and on app
modernization projects
• Re-write of the Teamstudio Unplugged Controls
project, but adds full support for PC browser-based
user interfaces as well as mobile interfaces
• Enables XPages developers to create controls that
are responsive
• Learn more: http://xcontrols.org
Teamstudio Services
• Professional services for modernization, web
enablement, project management, development,
and administration
o Modernization Services
o Unplugged Developer Assistance Program
o Application Upgrade Analysis
o Application Complexity Analysis
o Application Usage Auditing
• http://www.teamstudio.com/solutions/services/
• Usage Auditing promotion:
o Now through Mar. 31, 2015, sign up for a free demo of Usage Auditing, and be
entered to win a Nexus 6.
• Engage: Mar. 30-31, 2015
o Come see us in Ghent, Belgium for a chance to win an iPhone 6!
1
#XPages
Your Host Today:
Paul Della-Nebbia
TLCC
@PaulDN
A Notes Developer’s Journey
Into Java
How can TLCC Help YOU!
2
• Private classes at
your location or
virtual
•XPages Development
•Support Existing Apps
•Administration
• Let us help you
become an expert
XPages developer!
• Delivered via Notes
• XPages
• Development
• Admin
• User
Self-
Paced
Courses
Mentoring
Instructor-
Led
Classes
Application
Development
and
Consulting
Free
Demo
Courses!
TLCC Java Courses and Package for XPages Developers
Java 1 for XPages Development (9.0)
• Covers the Java Language
Java 2 for XPages Development
• Debugging
• Expression Language
• JavaBeans and Managed Beans
• Third Party Java Libraries
• Exporting to PDF and Excel files
• On Sale for $599, save $300
Java for XPages Package
• Has both Java courses
• On Sale for only $999, save $700
3
Click here for more information on the Java courses
Sale prices good through 3/15/2015
Upcoming and Recorded Webinars
4
• March 17th - Presenting Data - Two Alternatives to the View Control
www.tlcc.com/xpages-webinar
View Previous Webinars
(use url above)
Asking Questions – Q and A at the end
5
Use the Orange Arrow button to
expand the GoToWebinar panel
Then ask your questions in the
Questions pane!
We will answer your questions
verbally at the end of the
webinar
Your Presenter Today:
6
#XPages
Howard Greenberg
TLCC
@TLCCLtd
Intro - A Notes Developer’s Journey into Java
• Been doing object oriented
programming with LotusScript
• Used Java before in agents and
web services, and snippets in
XPages
• Helped write TLCC’s Java courses
since R5
7
Join me on my journey with a Java Managed Bean
TLCC Catalog – “Before”
• User chooses a version
• Then load the category names into scoped
variables
XPages, LotusScript, etc.
• User then selects type or category
• Repeat control figures out what to show
– Uses FT search
• Change anything and it all reloads
• Hard to control order
8
End Goal
• Improve Performance
• Simpler Implementation
• Reusable Architecture for future enhancements
– Mobile design
– Different layout using Bootstrap
9
Solution – Managed Bean
• Rough idea of what was needed…
• Data kept in memory
– Be careful here
• Return a collection of Strings for Types and Categories for each version
• Be able to get a collection of all courses for:
– A specific version
– A type within that version (Dev or Admin)
– A category for that version (XPages, Java, etc.)
– A category within that type for that version
• Then for each course return information to display
– Name
– Price
– Short Description
– And more from the view columns
– But NOT the actual catalog document contents
• that is another XPage
10
What is a Java Bean?
A JavaBean is a Java class that:
• Uses getter and setter methods to access its property
elements
• Encapsulates many objects into a single bean object
JavaBean Requirements/Conventions
For a Java class to be considered a "bean" it must:
• Have a public no-argument constructor (or no constructors)
• The class properties (fields) must be defined as private
• Uses public method calls that start with get, set, or is
• Implements java.io.Serializable interface to be technically
qualified as a JavaBean
– Important for XPages if they are serialized to disk
– Reminder!!! Don’t EVER store a Domino object in a bean
or scoped variable
11
12
Sample Bean
What is a Managed Bean?
• Bean registered with defined scope in the runtime
framework
– getter and setter methods are called directly
– No need to instantiate an object variable for the bean
• Follows all of the same conventions as a Java Bean
• Programming a Java Bean is the same as a Managed Bean
– Nothing in the Java source defines a "Managed Bean“
• For XPages, defined in Faces-config
13
Objects
• Versions – collection of versions, each version holds a types
object
– R9, R85, R8
• Types – each type holds a Categories object that has the
categories for that type
– Dev or Admin
• Categories – each category holds a CourseList
– XPages, Java, LotusScript
• CourseList
– Holds a collection of courses
• Course
– Holds details about a particular course
14
Object Definition
•Name
•Price
•etc
Course
•ArrayList
•Holds Courses
Course List
•LinkedHashMap
•Key: Category Name
•Value: CourseList for
that category
CategoryTable
•LinkedHashMap
•Key: Type Name
•Value: CategoryTable
TypeTable
15
Java Environment
• Domino Designer is built on Eclipse
– Full Java development platform
• Java Perspective
–Window, Open Perspective
16
Java Useful Collections - ArrayList
• ArrayLists are like Arrays but:
– Part of the Collection class
– Don’t have to set a size like Arrays
– Can use Generics
• ArrayList<Course> CourseList = new ArrayList<Course>();
– Add using:
• add(object) – CourseList.add(newCourse)
• addAll(collection of objects)
–CourseList.addAll(setOfCourses)
– Useful in Repeats!
• Pass an ArrayList to a repeat value property
17
Java Collections - LinkedHashMap
• Holds a key – value pair
• Maintains Insertion Order
• Create:
– LinkedHashMap<String, CoursesList> CatTable;
• Set and access a value:
– CatTable.put(“XPages Courses”, CourseList);
– CatTable.get(“XPages Courses”)
• To loop through:
– All entries: CatTable.entrySet()
– Keys only: CatTable.keyset()
– Values only: CatTable.values()
18
Choosing a Collection
• Key considerations
– Automatic Sorting
• TreeSet, TreeMap
– Maintains Insertion Order
• LinkedHashSet, Linked HashMap
– Holds Key,Value pairs
• HashMap, TreeMap,
LinkedHashMap
– Duplicates
• ArrayList
• Most Often Used!
– ArrayList
– LinkedHashMap
– TreeMap
19
Which Collection to Use? A Handy Flow Chart
20
http://www.sergiy.ca/guide-to-selecting-appropriate-map-collection-in-java/
http://www.janeve.me/articles/which-java-collection-to-use
Managed Beans in XPages
• Implemented in faces-config.xml
• Choose scope (or don’t: then bean gets instantiated on every access)
• Can set values of properties in faces-config via managed-property
• Initialize values using:
– Constructor in bean (remember, no arguments)
– Using the setters
– Managed-property in faces-config file
• Bean reloads if you change Java code (no need to restart HTTP)
<managed-bean>
<description>description</description>
<managed-bean-name>beanName</managed-bean-name>
<managed-bean-class>beanClass</managed-bean-class>
<managed-bean-scope>beanScope</managed-bean-scope>
</managed-bean>
21
Accessing Beans in XPages via SSJS
• No need to declare or instantiate bean
– beanName.getPropertyName();
– beanName.setPropertyName();
• Examples:
– catalogBean.getTypes();
– catalogBean.getAllCoursesByCategory(typeVal, interestVal);
22
Accessing a Bean via Expression Language
• Preferred way (compared to SSJS)
– beanName.propertyName
• Don’t add get or is in front of name, watch case
– (use leading lowercase even though method has
uppercase)
– If Java code was “public List<String> getTypes(){…”
catalogBean.types
• Can not pass in parameters
23
Performance Gains (total load time)
24
Task Before Bean After Bean
Initial Access 1,350ms 598ms
Change versions 657ms 231ms
Select type 352ms 235ms
Choose category 352ms 120ms
Back End Profiler (XPages Toolbox) – Change Versions
25
Without Bean:
2787 calls
188ms
With Bean:
146 calls
0ms
26
Our Bean is roasted…(In other words, that is the end)
TLCC Java Courses and Package for XPages Developers
Java 1 for XPages Development (9.0)
• Covers the Java Language
Java 2 for XPages Development
• Debugging
• Expression Language
• JavaBeans and Managed Beans
• Third Party Java Libraries
• Exporting to PDF and Excel files
• On Sale for $599, save $300
Java for XPages Package
• Has both Java courses
• On Sale for only $999, save $700
27
Click here for more information on the Java courses
Sale prices good through 3/15/2015
Questions????
28
Use the Orange Arrow button to
expand the GoToWebinar panel
Then ask your questions in the
Questions panel!
Remember, we will answer your
questions verbally
Upcoming Events:
Entwickler Camp, March 2-4th, in Gelsenkirchen, Germany
Engage, March 30/31 in Ghent, Belgium
Question and Answer Time!
29
Teamstudio Questions?
contactus@teamstudio.com
978-712-0924
TLCC Questions?
howardg@tlcc.com paul@tlcc.com
888-241-8522 or 561-953-0095
Howard Greenberg
#XPages
@TLCCLtd
@Teamstudio
@PaulDN
Paul Della-Nebbia Courtney Carter
To learn more about Java in XPages:
Special offer for webinar attendees on TLCC’s Java Package

More Related Content

What's hot

Getting Started with the OpenNTF Domino API
Getting Started with the OpenNTF Domino APIGetting Started with the OpenNTF Domino API
Getting Started with the OpenNTF Domino API
Teamstudio
 
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
Paul Withers
 
Chap3 3 12
Chap3 3 12Chap3 3 12
Chap3 3 12
Hemo Chella
 
Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections
Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections
Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections
Teamstudio
 
(ATS3-DEV08) Team Development with Accelrys Enterprise Platform
(ATS3-DEV08) Team Development with Accelrys Enterprise Platform(ATS3-DEV08) Team Development with Accelrys Enterprise Platform
(ATS3-DEV08) Team Development with Accelrys Enterprise Platform
BIOVIA
 
XPages Workshop: Concepts And Exercises
XPages Workshop:   Concepts And ExercisesXPages Workshop:   Concepts And Exercises
XPages Workshop: Concepts And Exercises
ddrschiw
 
Work with xml in java
Work with xml in javaWork with xml in java
Work with xml in java
Asya Dudnik
 
Uno! Deux! Three! Making Localization of XPages as Easy as 1-2-3
Uno! Deux! Three! Making Localization of XPages as Easy as 1-2-3Uno! Deux! Three! Making Localization of XPages as Easy as 1-2-3
Uno! Deux! Three! Making Localization of XPages as Easy as 1-2-3
Kathy Brown
 
Enterprise Persistence in OSGi - Mike Keith, Oracle
Enterprise Persistence in OSGi - Mike Keith, OracleEnterprise Persistence in OSGi - Mike Keith, Oracle
Enterprise Persistence in OSGi - Mike Keith, Oracle
mfrancis
 
MWLUG 2016 : AD117 : Xpages & jQuery DataTables
MWLUG 2016 : AD117 : Xpages & jQuery DataTablesMWLUG 2016 : AD117 : Xpages & jQuery DataTables
MWLUG 2016 : AD117 : Xpages & jQuery DataTables
Michael Smith
 
2 jdbc drivers
2 jdbc drivers2 jdbc drivers
2 jdbc drivers
myrajendra
 
3 jdbc api
3 jdbc api3 jdbc api
3 jdbc api
myrajendra
 
Advance java1.1
Advance java1.1Advance java1.1
Advance java1.1
Prince Soni
 
Silicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your databaseSilicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your database
Speedment, Inc.
 
4 jdbc step1
4 jdbc step14 jdbc step1
4 jdbc step1
myrajendra
 
Enterprise OSGi at eBay
Enterprise OSGi at eBayEnterprise OSGi at eBay
Enterprise OSGi at eBayTony Ng
 
Connect2014 Show104: Practical Java
Connect2014 Show104: Practical JavaConnect2014 Show104: Practical Java
Connect2014 Show104: Practical Java
panagenda
 
Java.sql package
Java.sql packageJava.sql package
Java.sql packagemyrajendra
 

What's hot (20)

Getting Started with the OpenNTF Domino API
Getting Started with the OpenNTF Domino APIGetting Started with the OpenNTF Domino API
Getting Started with the OpenNTF Domino API
 
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
 
Chap3 3 12
Chap3 3 12Chap3 3 12
Chap3 3 12
 
Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections
Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections
Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections
 
(ATS3-DEV08) Team Development with Accelrys Enterprise Platform
(ATS3-DEV08) Team Development with Accelrys Enterprise Platform(ATS3-DEV08) Team Development with Accelrys Enterprise Platform
(ATS3-DEV08) Team Development with Accelrys Enterprise Platform
 
XPages Workshop: Concepts And Exercises
XPages Workshop:   Concepts And ExercisesXPages Workshop:   Concepts And Exercises
XPages Workshop: Concepts And Exercises
 
Work with xml in java
Work with xml in javaWork with xml in java
Work with xml in java
 
Uno! Deux! Three! Making Localization of XPages as Easy as 1-2-3
Uno! Deux! Three! Making Localization of XPages as Easy as 1-2-3Uno! Deux! Three! Making Localization of XPages as Easy as 1-2-3
Uno! Deux! Three! Making Localization of XPages as Easy as 1-2-3
 
Enterprise Persistence in OSGi - Mike Keith, Oracle
Enterprise Persistence in OSGi - Mike Keith, OracleEnterprise Persistence in OSGi - Mike Keith, Oracle
Enterprise Persistence in OSGi - Mike Keith, Oracle
 
MWLUG 2016 : AD117 : Xpages & jQuery DataTables
MWLUG 2016 : AD117 : Xpages & jQuery DataTablesMWLUG 2016 : AD117 : Xpages & jQuery DataTables
MWLUG 2016 : AD117 : Xpages & jQuery DataTables
 
2 jdbc drivers
2 jdbc drivers2 jdbc drivers
2 jdbc drivers
 
Css
CssCss
Css
 
3 jdbc api
3 jdbc api3 jdbc api
3 jdbc api
 
Advance java1.1
Advance java1.1Advance java1.1
Advance java1.1
 
Silicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your databaseSilicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your database
 
4 jdbc step1
4 jdbc step14 jdbc step1
4 jdbc step1
 
Jvm (1)
Jvm (1)Jvm (1)
Jvm (1)
 
Enterprise OSGi at eBay
Enterprise OSGi at eBayEnterprise OSGi at eBay
Enterprise OSGi at eBay
 
Connect2014 Show104: Practical Java
Connect2014 Show104: Practical JavaConnect2014 Show104: Practical Java
Connect2014 Show104: Practical Java
 
Java.sql package
Java.sql packageJava.sql package
Java.sql package
 

Viewers also liked

3-ий вебинар презентация - Дворик
3-ий вебинар презентация - Дворик 3-ий вебинар презентация - Дворик
3-ий вебинар презентация - Дворик Galina Perova
 
Tech tool chest
Tech tool chestTech tool chest
Tech tool chest
Gabriela Paulino Castillo
 
Workshop2aprilfinal
Workshop2aprilfinalWorkshop2aprilfinal
Workshop2aprilfinal
drs Pieter de Kok RA
 
Polytech geii sept2016
Polytech geii sept2016Polytech geii sept2016
Menentukan volum benda putar
Menentukan volum benda putarMenentukan volum benda putar
Menentukan volum benda putar
Vanny Febian
 
Working to a brief pro forma
Working to a brief pro formaWorking to a brief pro forma
Working to a brief pro formaChloeandRachel
 
Tuberkulez
TuberkulezTuberkulez
Tuberkulezmilka562
 
The mobile experience in Australia
The mobile experience in AustraliaThe mobile experience in Australia
The mobile experience in AustraliaSophie Blomet
 
FORMACIÓN PROFESIONAL INTEGRAL - FPI
FORMACIÓN PROFESIONAL INTEGRAL - FPI FORMACIÓN PROFESIONAL INTEGRAL - FPI
FORMACIÓN PROFESIONAL INTEGRAL - FPI
UNIVERSIDAD DE LOS LLANOS
 
Ekosistem
Ekosistem Ekosistem
Ekosistem
Aditya Masyitha
 
How To Make LinkedIn a Marketing Machine
How To Make LinkedIn a Marketing MachineHow To Make LinkedIn a Marketing Machine
How To Make LinkedIn a Marketing Machine
MITCPS
 
Rain dove. Que ves cando me ves?
Rain dove. Que ves cando me ves?Rain dove. Que ves cando me ves?
Rain dove. Que ves cando me ves?
marcendon
 
Interenet And Domain Name
Interenet And Domain NameInterenet And Domain Name
Interenet And Domain Name
NameStall
 
Otchet fonda za 4 goda
Otchet fonda za 4 godaOtchet fonda za 4 goda
Otchet fonda za 4 godamilka562
 
United Paycheck - Multi E-Wallet System
United Paycheck - Multi E-Wallet System United Paycheck - Multi E-Wallet System
United Paycheck - Multi E-Wallet System United Paycheck
 
Juvenal blanco, powerpoint2
Juvenal blanco, powerpoint2Juvenal blanco, powerpoint2
Juvenal blanco, powerpoint2juve1995
 

Viewers also liked (19)

3-ий вебинар презентация - Дворик
3-ий вебинар презентация - Дворик 3-ий вебинар презентация - Дворик
3-ий вебинар презентация - Дворик
 
Tech tool chest
Tech tool chestTech tool chest
Tech tool chest
 
Workshop2aprilfinal
Workshop2aprilfinalWorkshop2aprilfinal
Workshop2aprilfinal
 
Polytech geii sept2016
Polytech geii sept2016Polytech geii sept2016
Polytech geii sept2016
 
Menentukan volum benda putar
Menentukan volum benda putarMenentukan volum benda putar
Menentukan volum benda putar
 
6 webinar-court
6 webinar-court6 webinar-court
6 webinar-court
 
Working to a brief pro forma
Working to a brief pro formaWorking to a brief pro forma
Working to a brief pro forma
 
Tuberkulez
TuberkulezTuberkulez
Tuberkulez
 
The mobile experience in Australia
The mobile experience in AustraliaThe mobile experience in Australia
The mobile experience in Australia
 
Presentation1
Presentation1Presentation1
Presentation1
 
FORMACIÓN PROFESIONAL INTEGRAL - FPI
FORMACIÓN PROFESIONAL INTEGRAL - FPI FORMACIÓN PROFESIONAL INTEGRAL - FPI
FORMACIÓN PROFESIONAL INTEGRAL - FPI
 
Ekosistem
Ekosistem Ekosistem
Ekosistem
 
How To Make LinkedIn a Marketing Machine
How To Make LinkedIn a Marketing MachineHow To Make LinkedIn a Marketing Machine
How To Make LinkedIn a Marketing Machine
 
Rain dove. Que ves cando me ves?
Rain dove. Que ves cando me ves?Rain dove. Que ves cando me ves?
Rain dove. Que ves cando me ves?
 
Interenet And Domain Name
Interenet And Domain NameInterenet And Domain Name
Interenet And Domain Name
 
Otchet fonda za 4 goda
Otchet fonda za 4 godaOtchet fonda za 4 goda
Otchet fonda za 4 goda
 
Jurnal minggu 1
Jurnal minggu 1Jurnal minggu 1
Jurnal minggu 1
 
United Paycheck - Multi E-Wallet System
United Paycheck - Multi E-Wallet System United Paycheck - Multi E-Wallet System
United Paycheck - Multi E-Wallet System
 
Juvenal blanco, powerpoint2
Juvenal blanco, powerpoint2Juvenal blanco, powerpoint2
Juvenal blanco, powerpoint2
 

Similar to A Notes Developer's Journey into Java

Transformations: Smart Application Migration to XPages
Transformations: Smart Application Migration to XPagesTransformations: Smart Application Migration to XPages
Transformations: Smart Application Migration to XPages
Teamstudio
 
Bccon use notes objects in memory and other useful
Bccon   use notes objects in memory and other usefulBccon   use notes objects in memory and other useful
Bccon use notes objects in memory and other useful
Frank van der Linden
 
Apache Cayenne for WO Devs
Apache Cayenne for WO DevsApache Cayenne for WO Devs
Apache Cayenne for WO DevsWO Community
 
ics user group dev day_2014 use notes objects in memory and other useful
ics user group dev day_2014 use notes objects in memory and other usefulics user group dev day_2014 use notes objects in memory and other useful
ics user group dev day_2014 use notes objects in memory and other useful
ICS User Group
 
Introduction to oops
Introduction to oopsIntroduction to oops
Introduction to oops
Umamaheshwariv1
 
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUlrich Krause
 
Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)
Robert Scholte
 
The Latest in Enterprise JavaBeans Technology
The Latest in Enterprise JavaBeans TechnologyThe Latest in Enterprise JavaBeans Technology
The Latest in Enterprise JavaBeans Technology
Simon Ritter
 
Store Beyond Glorp
Store Beyond GlorpStore Beyond Glorp
Store Beyond Glorp
ESUG
 
Java Serialization Facts and Fallacies
Java Serialization Facts and FallaciesJava Serialization Facts and Fallacies
Java Serialization Facts and FallaciesRoman Elizarov
 
SharePoint 2014: Where to save my data, for devs!
SharePoint 2014: Where to save my data, for devs!SharePoint 2014: Where to save my data, for devs!
SharePoint 2014: Where to save my data, for devs!Ben Steinhauser
 
Skillwise Elementary Java Programming
Skillwise Elementary Java ProgrammingSkillwise Elementary Java Programming
Skillwise Elementary Java Programming
Skillwise Group
 
XPages -Beyond the Basics
XPages -Beyond the BasicsXPages -Beyond the Basics
XPages -Beyond the Basics
Ulrich Krause
 
[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics
Ulrich Krause
 
DSL's with Groovy
DSL's with GroovyDSL's with Groovy
DSL's with Groovy
paulbowler
 
Where to save my data, for devs!
Where to save my data, for devs!Where to save my data, for devs!
Where to save my data, for devs!
SharePoint Saturday New Jersey
 
Angular 2 overview
Angular 2 overviewAngular 2 overview
Angular 2 overview
Jesse Warden
 
Java training in ahmedabad
Java training in ahmedabadJava training in ahmedabad
Java training in ahmedabad
TOPS Technologies
 

Similar to A Notes Developer's Journey into Java (20)

Transformations: Smart Application Migration to XPages
Transformations: Smart Application Migration to XPagesTransformations: Smart Application Migration to XPages
Transformations: Smart Application Migration to XPages
 
Bccon use notes objects in memory and other useful
Bccon   use notes objects in memory and other usefulBccon   use notes objects in memory and other useful
Bccon use notes objects in memory and other useful
 
Apache Cayenne for WO Devs
Apache Cayenne for WO DevsApache Cayenne for WO Devs
Apache Cayenne for WO Devs
 
ics user group dev day_2014 use notes objects in memory and other useful
ics user group dev day_2014 use notes objects in memory and other usefulics user group dev day_2014 use notes objects in memory and other useful
ics user group dev day_2014 use notes objects in memory and other useful
 
Introduction to oops
Introduction to oopsIntroduction to oops
Introduction to oops
 
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basics
 
Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)
 
The Latest in Enterprise JavaBeans Technology
The Latest in Enterprise JavaBeans TechnologyThe Latest in Enterprise JavaBeans Technology
The Latest in Enterprise JavaBeans Technology
 
Store Beyond Glorp
Store Beyond GlorpStore Beyond Glorp
Store Beyond Glorp
 
Java Serialization Facts and Fallacies
Java Serialization Facts and FallaciesJava Serialization Facts and Fallacies
Java Serialization Facts and Fallacies
 
SharePoint 2014: Where to save my data, for devs!
SharePoint 2014: Where to save my data, for devs!SharePoint 2014: Where to save my data, for devs!
SharePoint 2014: Where to save my data, for devs!
 
Skillwise Elementary Java Programming
Skillwise Elementary Java ProgrammingSkillwise Elementary Java Programming
Skillwise Elementary Java Programming
 
XPages -Beyond the Basics
XPages -Beyond the BasicsXPages -Beyond the Basics
XPages -Beyond the Basics
 
[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics
 
Unit4wt
Unit4wtUnit4wt
Unit4wt
 
Unit4wt
Unit4wtUnit4wt
Unit4wt
 
DSL's with Groovy
DSL's with GroovyDSL's with Groovy
DSL's with Groovy
 
Where to save my data, for devs!
Where to save my data, for devs!Where to save my data, for devs!
Where to save my data, for devs!
 
Angular 2 overview
Angular 2 overviewAngular 2 overview
Angular 2 overview
 
Java training in ahmedabad
Java training in ahmedabadJava training in ahmedabad
Java training in ahmedabad
 

More from Teamstudio

Search Terms and Design Complexity: A Tutorial Before Modernizing or Migrating
Search Terms and Design Complexity: A Tutorial Before Modernizing or MigratingSearch Terms and Design Complexity: A Tutorial Before Modernizing or Migrating
Search Terms and Design Complexity: A Tutorial Before Modernizing or Migrating
Teamstudio
 
SmartNSF - 100% Smart - and in Color!
SmartNSF - 100% Smart - and in Color!SmartNSF - 100% Smart - and in Color!
SmartNSF - 100% Smart - and in Color!
Teamstudio
 
Back from the Dead: When Bad Code Kills a Good Server
Back from the Dead: When Bad Code Kills a Good ServerBack from the Dead: When Bad Code Kills a Good Server
Back from the Dead: When Bad Code Kills a Good Server
Teamstudio
 
Understand Usage with Detailed Access Information
Understand Usage with Detailed Access InformationUnderstand Usage with Detailed Access Information
Understand Usage with Detailed Access Information
Teamstudio
 
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
Teamstudio
 
Marty, You're Just Not Thinking Fourth Dimensionally
Marty, You're Just Not Thinking Fourth DimensionallyMarty, You're Just Not Thinking Fourth Dimensionally
Marty, You're Just Not Thinking Fourth Dimensionally
Teamstudio
 
IBM Presents the IBM Notes and Domino Roadmap
IBM Presents the IBM Notes and Domino RoadmapIBM Presents the IBM Notes and Domino Roadmap
IBM Presents the IBM Notes and Domino Roadmap
Teamstudio
 
Expanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate UsabilityExpanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate Usability
Teamstudio
 
Optimus XPages Part 2: The Deep Dive
Optimus XPages Part 2: The Deep DiveOptimus XPages Part 2: The Deep Dive
Optimus XPages Part 2: The Deep Dive
Teamstudio
 
Understand the True Business Usage of Notes Applications with Usage Auditor
Understand the True Business Usage of Notes Applications with Usage AuditorUnderstand the True Business Usage of Notes Applications with Usage Auditor
Understand the True Business Usage of Notes Applications with Usage Auditor
Teamstudio
 
Optimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best PracticesOptimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best Practices
Teamstudio
 
Building Responsive Applications Using XPages
Building Responsive Applications Using XPagesBuilding Responsive Applications Using XPages
Building Responsive Applications Using XPages
Teamstudio
 
Using Cool New Frameworks in (Mobile) Domino Apps
Using Cool New Frameworks in (Mobile) Domino AppsUsing Cool New Frameworks in (Mobile) Domino Apps
Using Cool New Frameworks in (Mobile) Domino Apps
Teamstudio
 
Ask the XPages Experts
Ask the XPages ExpertsAsk the XPages Experts
Ask the XPages Experts
Teamstudio
 
Everything XControls
Everything XControlsEverything XControls
Everything XControls
Teamstudio
 
Move Your XPages Applications to the Fast Lane
Move Your XPages Applications to the Fast LaneMove Your XPages Applications to the Fast Lane
Move Your XPages Applications to the Fast Lane
Teamstudio
 
An Introduction to the Model-View-Controller Pattern
An Introduction to the Model-View-Controller PatternAn Introduction to the Model-View-Controller Pattern
An Introduction to the Model-View-Controller Pattern
Teamstudio
 
Mobilisez vos Applications IBM Notes avec Teamstudio Unplugged ! (French Lang...
Mobilisez vos Applications IBM Notes avec Teamstudio Unplugged ! (French Lang...Mobilisez vos Applications IBM Notes avec Teamstudio Unplugged ! (French Lang...
Mobilisez vos Applications IBM Notes avec Teamstudio Unplugged ! (French Lang...
Teamstudio
 
Domino, Notes, and Verse - Where are We and Whats the Future?
Domino, Notes, and Verse - Where are We and Whats the Future?Domino, Notes, and Verse - Where are We and Whats the Future?
Domino, Notes, and Verse - Where are We and Whats the Future?
Teamstudio
 
App.Next - The Future of Domino Application Development
App.Next - The Future of Domino Application DevelopmentApp.Next - The Future of Domino Application Development
App.Next - The Future of Domino Application Development
Teamstudio
 

More from Teamstudio (20)

Search Terms and Design Complexity: A Tutorial Before Modernizing or Migrating
Search Terms and Design Complexity: A Tutorial Before Modernizing or MigratingSearch Terms and Design Complexity: A Tutorial Before Modernizing or Migrating
Search Terms and Design Complexity: A Tutorial Before Modernizing or Migrating
 
SmartNSF - 100% Smart - and in Color!
SmartNSF - 100% Smart - and in Color!SmartNSF - 100% Smart - and in Color!
SmartNSF - 100% Smart - and in Color!
 
Back from the Dead: When Bad Code Kills a Good Server
Back from the Dead: When Bad Code Kills a Good ServerBack from the Dead: When Bad Code Kills a Good Server
Back from the Dead: When Bad Code Kills a Good Server
 
Understand Usage with Detailed Access Information
Understand Usage with Detailed Access InformationUnderstand Usage with Detailed Access Information
Understand Usage with Detailed Access Information
 
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
 
Marty, You're Just Not Thinking Fourth Dimensionally
Marty, You're Just Not Thinking Fourth DimensionallyMarty, You're Just Not Thinking Fourth Dimensionally
Marty, You're Just Not Thinking Fourth Dimensionally
 
IBM Presents the IBM Notes and Domino Roadmap
IBM Presents the IBM Notes and Domino RoadmapIBM Presents the IBM Notes and Domino Roadmap
IBM Presents the IBM Notes and Domino Roadmap
 
Expanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate UsabilityExpanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate Usability
 
Optimus XPages Part 2: The Deep Dive
Optimus XPages Part 2: The Deep DiveOptimus XPages Part 2: The Deep Dive
Optimus XPages Part 2: The Deep Dive
 
Understand the True Business Usage of Notes Applications with Usage Auditor
Understand the True Business Usage of Notes Applications with Usage AuditorUnderstand the True Business Usage of Notes Applications with Usage Auditor
Understand the True Business Usage of Notes Applications with Usage Auditor
 
Optimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best PracticesOptimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best Practices
 
Building Responsive Applications Using XPages
Building Responsive Applications Using XPagesBuilding Responsive Applications Using XPages
Building Responsive Applications Using XPages
 
Using Cool New Frameworks in (Mobile) Domino Apps
Using Cool New Frameworks in (Mobile) Domino AppsUsing Cool New Frameworks in (Mobile) Domino Apps
Using Cool New Frameworks in (Mobile) Domino Apps
 
Ask the XPages Experts
Ask the XPages ExpertsAsk the XPages Experts
Ask the XPages Experts
 
Everything XControls
Everything XControlsEverything XControls
Everything XControls
 
Move Your XPages Applications to the Fast Lane
Move Your XPages Applications to the Fast LaneMove Your XPages Applications to the Fast Lane
Move Your XPages Applications to the Fast Lane
 
An Introduction to the Model-View-Controller Pattern
An Introduction to the Model-View-Controller PatternAn Introduction to the Model-View-Controller Pattern
An Introduction to the Model-View-Controller Pattern
 
Mobilisez vos Applications IBM Notes avec Teamstudio Unplugged ! (French Lang...
Mobilisez vos Applications IBM Notes avec Teamstudio Unplugged ! (French Lang...Mobilisez vos Applications IBM Notes avec Teamstudio Unplugged ! (French Lang...
Mobilisez vos Applications IBM Notes avec Teamstudio Unplugged ! (French Lang...
 
Domino, Notes, and Verse - Where are We and Whats the Future?
Domino, Notes, and Verse - Where are We and Whats the Future?Domino, Notes, and Verse - Where are We and Whats the Future?
Domino, Notes, and Verse - Where are We and Whats the Future?
 
App.Next - The Future of Domino Application Development
App.Next - The Future of Domino Application DevelopmentApp.Next - The Future of Domino Application Development
App.Next - The Future of Domino Application Development
 

Recently uploaded

AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 

Recently uploaded (20)

AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 

A Notes Developer's Journey into Java

  • 1. A Notes Developer's Journey into Java Tweet about this event And mention us: @Teamstudio @TLCCLTD Feb. 17, 2015
  • 3. Who We Are • Teamstudio’s background is in creating tools for collaborative computing in mid-size and large enterprises, primarily for IBM Notes • Easy-to-use tools for developers and administrators • 1600+ active customers, 53 countries • Offices in US, UK, and Japan • Entered mobile space in 2010 with Unplugged: easy mobilization of Notes apps to Blackberry, Android and iOS
  • 4. Teamstudio Unplugged • Your mobile Domino server: take your IBM Notes apps with you! • End-users access Notes applications from mobile devices whether online or offline • Leverages the powerful technology of XPages
  • 5. Unplugged Templates • Continuity – Mobile offline access to BCM programs • OneView Approvals – Expense approvals; anywhere, anytime • CustomerView – lightweight CRM framework for field sales and field service teams • Contacts – customer information database • Activities – customer activity log • Media – mobile offline file storage and access
  • 6. XControls • Set of Controls for IBM Domino XPages developers working on new XPages apps and on app modernization projects • Re-write of the Teamstudio Unplugged Controls project, but adds full support for PC browser-based user interfaces as well as mobile interfaces • Enables XPages developers to create controls that are responsive • Learn more: http://xcontrols.org
  • 7. Teamstudio Services • Professional services for modernization, web enablement, project management, development, and administration o Modernization Services o Unplugged Developer Assistance Program o Application Upgrade Analysis o Application Complexity Analysis o Application Usage Auditing • http://www.teamstudio.com/solutions/services/
  • 8. • Usage Auditing promotion: o Now through Mar. 31, 2015, sign up for a free demo of Usage Auditing, and be entered to win a Nexus 6. • Engage: Mar. 30-31, 2015 o Come see us in Ghent, Belgium for a chance to win an iPhone 6!
  • 9. 1 #XPages Your Host Today: Paul Della-Nebbia TLCC @PaulDN A Notes Developer’s Journey Into Java
  • 10. How can TLCC Help YOU! 2 • Private classes at your location or virtual •XPages Development •Support Existing Apps •Administration • Let us help you become an expert XPages developer! • Delivered via Notes • XPages • Development • Admin • User Self- Paced Courses Mentoring Instructor- Led Classes Application Development and Consulting Free Demo Courses!
  • 11. TLCC Java Courses and Package for XPages Developers Java 1 for XPages Development (9.0) • Covers the Java Language Java 2 for XPages Development • Debugging • Expression Language • JavaBeans and Managed Beans • Third Party Java Libraries • Exporting to PDF and Excel files • On Sale for $599, save $300 Java for XPages Package • Has both Java courses • On Sale for only $999, save $700 3 Click here for more information on the Java courses Sale prices good through 3/15/2015
  • 12. Upcoming and Recorded Webinars 4 • March 17th - Presenting Data - Two Alternatives to the View Control www.tlcc.com/xpages-webinar View Previous Webinars (use url above)
  • 13. Asking Questions – Q and A at the end 5 Use the Orange Arrow button to expand the GoToWebinar panel Then ask your questions in the Questions pane! We will answer your questions verbally at the end of the webinar
  • 14. Your Presenter Today: 6 #XPages Howard Greenberg TLCC @TLCCLtd
  • 15. Intro - A Notes Developer’s Journey into Java • Been doing object oriented programming with LotusScript • Used Java before in agents and web services, and snippets in XPages • Helped write TLCC’s Java courses since R5 7 Join me on my journey with a Java Managed Bean
  • 16. TLCC Catalog – “Before” • User chooses a version • Then load the category names into scoped variables XPages, LotusScript, etc. • User then selects type or category • Repeat control figures out what to show – Uses FT search • Change anything and it all reloads • Hard to control order 8
  • 17. End Goal • Improve Performance • Simpler Implementation • Reusable Architecture for future enhancements – Mobile design – Different layout using Bootstrap 9
  • 18. Solution – Managed Bean • Rough idea of what was needed… • Data kept in memory – Be careful here • Return a collection of Strings for Types and Categories for each version • Be able to get a collection of all courses for: – A specific version – A type within that version (Dev or Admin) – A category for that version (XPages, Java, etc.) – A category within that type for that version • Then for each course return information to display – Name – Price – Short Description – And more from the view columns – But NOT the actual catalog document contents • that is another XPage 10
  • 19. What is a Java Bean? A JavaBean is a Java class that: • Uses getter and setter methods to access its property elements • Encapsulates many objects into a single bean object JavaBean Requirements/Conventions For a Java class to be considered a "bean" it must: • Have a public no-argument constructor (or no constructors) • The class properties (fields) must be defined as private • Uses public method calls that start with get, set, or is • Implements java.io.Serializable interface to be technically qualified as a JavaBean – Important for XPages if they are serialized to disk – Reminder!!! Don’t EVER store a Domino object in a bean or scoped variable 11
  • 21. What is a Managed Bean? • Bean registered with defined scope in the runtime framework – getter and setter methods are called directly – No need to instantiate an object variable for the bean • Follows all of the same conventions as a Java Bean • Programming a Java Bean is the same as a Managed Bean – Nothing in the Java source defines a "Managed Bean“ • For XPages, defined in Faces-config 13
  • 22. Objects • Versions – collection of versions, each version holds a types object – R9, R85, R8 • Types – each type holds a Categories object that has the categories for that type – Dev or Admin • Categories – each category holds a CourseList – XPages, Java, LotusScript • CourseList – Holds a collection of courses • Course – Holds details about a particular course 14
  • 23. Object Definition •Name •Price •etc Course •ArrayList •Holds Courses Course List •LinkedHashMap •Key: Category Name •Value: CourseList for that category CategoryTable •LinkedHashMap •Key: Type Name •Value: CategoryTable TypeTable 15
  • 24. Java Environment • Domino Designer is built on Eclipse – Full Java development platform • Java Perspective –Window, Open Perspective 16
  • 25. Java Useful Collections - ArrayList • ArrayLists are like Arrays but: – Part of the Collection class – Don’t have to set a size like Arrays – Can use Generics • ArrayList<Course> CourseList = new ArrayList<Course>(); – Add using: • add(object) – CourseList.add(newCourse) • addAll(collection of objects) –CourseList.addAll(setOfCourses) – Useful in Repeats! • Pass an ArrayList to a repeat value property 17
  • 26. Java Collections - LinkedHashMap • Holds a key – value pair • Maintains Insertion Order • Create: – LinkedHashMap<String, CoursesList> CatTable; • Set and access a value: – CatTable.put(“XPages Courses”, CourseList); – CatTable.get(“XPages Courses”) • To loop through: – All entries: CatTable.entrySet() – Keys only: CatTable.keyset() – Values only: CatTable.values() 18
  • 27. Choosing a Collection • Key considerations – Automatic Sorting • TreeSet, TreeMap – Maintains Insertion Order • LinkedHashSet, Linked HashMap – Holds Key,Value pairs • HashMap, TreeMap, LinkedHashMap – Duplicates • ArrayList • Most Often Used! – ArrayList – LinkedHashMap – TreeMap 19
  • 28. Which Collection to Use? A Handy Flow Chart 20 http://www.sergiy.ca/guide-to-selecting-appropriate-map-collection-in-java/ http://www.janeve.me/articles/which-java-collection-to-use
  • 29. Managed Beans in XPages • Implemented in faces-config.xml • Choose scope (or don’t: then bean gets instantiated on every access) • Can set values of properties in faces-config via managed-property • Initialize values using: – Constructor in bean (remember, no arguments) – Using the setters – Managed-property in faces-config file • Bean reloads if you change Java code (no need to restart HTTP) <managed-bean> <description>description</description> <managed-bean-name>beanName</managed-bean-name> <managed-bean-class>beanClass</managed-bean-class> <managed-bean-scope>beanScope</managed-bean-scope> </managed-bean> 21
  • 30. Accessing Beans in XPages via SSJS • No need to declare or instantiate bean – beanName.getPropertyName(); – beanName.setPropertyName(); • Examples: – catalogBean.getTypes(); – catalogBean.getAllCoursesByCategory(typeVal, interestVal); 22
  • 31. Accessing a Bean via Expression Language • Preferred way (compared to SSJS) – beanName.propertyName • Don’t add get or is in front of name, watch case – (use leading lowercase even though method has uppercase) – If Java code was “public List<String> getTypes(){…” catalogBean.types • Can not pass in parameters 23
  • 32. Performance Gains (total load time) 24 Task Before Bean After Bean Initial Access 1,350ms 598ms Change versions 657ms 231ms Select type 352ms 235ms Choose category 352ms 120ms
  • 33. Back End Profiler (XPages Toolbox) – Change Versions 25 Without Bean: 2787 calls 188ms With Bean: 146 calls 0ms
  • 34. 26 Our Bean is roasted…(In other words, that is the end)
  • 35. TLCC Java Courses and Package for XPages Developers Java 1 for XPages Development (9.0) • Covers the Java Language Java 2 for XPages Development • Debugging • Expression Language • JavaBeans and Managed Beans • Third Party Java Libraries • Exporting to PDF and Excel files • On Sale for $599, save $300 Java for XPages Package • Has both Java courses • On Sale for only $999, save $700 27 Click here for more information on the Java courses Sale prices good through 3/15/2015
  • 36. Questions???? 28 Use the Orange Arrow button to expand the GoToWebinar panel Then ask your questions in the Questions panel! Remember, we will answer your questions verbally
  • 37. Upcoming Events: Entwickler Camp, March 2-4th, in Gelsenkirchen, Germany Engage, March 30/31 in Ghent, Belgium Question and Answer Time! 29 Teamstudio Questions? contactus@teamstudio.com 978-712-0924 TLCC Questions? howardg@tlcc.com paul@tlcc.com 888-241-8522 or 561-953-0095 Howard Greenberg #XPages @TLCCLtd @Teamstudio @PaulDN Paul Della-Nebbia Courtney Carter To learn more about Java in XPages: Special offer for webinar attendees on TLCC’s Java Package