iam lug 2009 integration and coexistence session

54
© 2009 by the individual speaker Integration and Coexistence: Leveraging Lotus & Microsoft products to build better solutions John Head Alex Kassabov PSC Group, LLC

Upload: john-head

Post on 18-Dec-2014

1.182 views

Category:

Technology


0 download

DESCRIPTION

Presentation from IamLUG conference

TRANSCRIPT

Page 1: Iam Lug 2009   Integration And Coexistence Session

© 2009 by the individual speaker

Integration and Coexistence:Leveraging Lotus & Microsoftproducts to buildbetter solutions

John HeadAlex Kassabov

PSC Group, LLC

Page 2: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Before We Begin

• Please turn off/set to vibrate/mute all

Cell Phones

Pagers

Computers

Please remember to fill out your evaluations

1

Page 3: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

What We’ll Cover …

• Who we are?

• Integration Background

• Integration from the Notes client

• Integration from other applications

• Integration from a web browser

• Integration with Google Docs

• Real World Integration

• Looking forward

• Wrap-up and Q&A

2

Page 4: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Who Are We?

• John D. Head

Director of Enterprise Collaboration at PSC Group, LLC

Involved in Lotus technology since 1993

OpenNTF.org Steering Committee Member and IP Working Group Chairman

• Speaker

Over 30 sessions at Lotusphere since 1996

Speaker at Lotus Developer , ILUG, UKLUG, and other conferences

• Author

Publications on Office and SmartSuite integration with Notes

LotusUserGroup.org contributing Author and Forum moderator

―Lotus Symphony for Dummies‖ Technical Editor

―Self Assessment and Strategy Guide for Migrating from Domino Document

Manager ― Redbook Author

• www.johndavidhead.com twitter.com/johnhead

3

Page 5: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Who Are We?

• Alex Kassabov

Vice President of Collaboration at PSC Group, LLC

Involved in Lotus technology since 1995

Notes R3 – got dragged there kicking and screaming

• Speaker

Lotusphere sessions on Desktop Integration

Collaboration Summit

GRAINTE Chicago Lotus User Group

• Akassabov.wordpress.com

4

Page 6: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

PSC Group, LLC

IBM Premium Business Partner for 19+ Years

Microsoft Managed Partner

Notes & Domino 8.5 Design Partner

OpenNTF.org Alliance Member, Steering Committee Company, & Former Host of OpenNTF.org

Winner of 2007 & 2009 Lotus Awards!

Host of the following blogs:

Ed Brill’s (www.edbrill.com)

Lotus Design Blog(Mary Beth Raven)(www.notesdesign.com)

LotusStaffNotes (Brent Peters)(www.lotusstaffnotes.com)

Lotus Connections Team

(synch.rono.us)

Lotus Sametime(www.thesametimeblog.com)

Domino Server Team(www.dominoblog.com)

Lotus Mashups(www.mix-and-mash.com)

Chris Pepin – IBM CTO’s Office(www.chrispepin.com)

Page 7: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Demo Databases

• Presentation example database

Single database with all examples

You can configure it for your Notes client

Example numbers in the presentation match those in the

database

• Lotusphere 2009 session database

From Genii Software

Updated version inside the demo database

• Personal name and address book

My demos work with the standard Notes 6, 7, 8, & 8.5 templates

6

Page 8: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Let’s take a little poll …

• Who is using …

Office 97 and earlier

Office 2000

Office XP

Office 2003

Office 2007

Office 2010 Beta

OpenOffice / StarOffice

Lotus Symphony

iWork

Other

7

Page 9: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

What We’ll Cover …

• Who we are?

• Integration Background

• Integration from the Notes client

• Integration from other applications

• Integration from a web browser

• Integration with Google Docs

• Real World Integration

• Looking forward

• Wrap-up and Q&A

8

Page 10: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Integration History

• 1994

DDE with Ami Pro

• 1996

Notes R4

OLE

LotusScript

VBA

• 1997

SmartSuite with LotusScript (Word Pro)

• 1998

Notes R5 with COM support

• 2001

Notes Domino 6

• 2004

Notes Domino 6.5 with LS2J and DXL

• 2005

Notes Domino 7 with Web services

• 2007

2007 Office System

Lotus Notes/Domino 8

Lotus Symphony

• 2008

Visual Studio 2008

Notes/Domino 8.5

• 2009 Notes/Domino 8.5.1

• 2010 Visual Studio 2010

Office 2010

Page 11: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

The Good News

• We have entered the “Industrial Revolution” period of

the Integration Era

• In the “Medieval Times”

DDE with Ami Pro

NotesSQL was used to get even the most basic of data

OLE embedding

Notes F/X

10

Page 12: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

The Good News (continued)

• The Renaissance brought us new tools

OLE automation

COM automation

And much more

• The Revolution brings us major changes

A true competitor to Office

Visual Studio.NET 2008 and VSTO 3.0

Code begins to move from inside a document to complete

applications

11

Page 13: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Integration from the Notes Client

• Integrating Microsoft Word

• Integrating Lotus Symphony Documents

• Mail Merge

• Integrating Microsoft Excel

12

Page 14: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Integration from Notes

• From Notes, you will write code to manipulate the

application

• In most cases, you will be converting Visual Basic for

Applications (VBA) code to LotusScript

• The VBA code will be written so it saves in Notes as

LotusScript

• Once you get the knack of converting the code, you

can focus on the process vs. the code

13

Page 15: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Creating a Word Document — ―Hello World‖

Demo — Example 1

Launch Microsoft

Word and enter

some text

Page 16: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

The Easiest Way to Start

• Microsoft Office provides us with a recorder

• Records all keyboard actions

Mouse actions are sometimes recorded, so avoid when

possible

• Generates VBA code for you

• Easy way to learn how something is done

Table is created

Page settings are set

etc.

Page 17: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Use the Microsoft Constants Database

• Provides a listing of all Microsoft

Office variables and their

converted constants

• Extraction of constants by

John Collidge

• Database built by Tom Duff

• OpenNTF.org project

• Supports Microsoft Office 2000,

XP, 2003, and 2007

• More features planned!

Page 18: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Word Template — Data from Notes

Demo — Example 2

Create a new document

Prompt user

Place data into document

Page 19: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Introduction to OpenOffice.org Development

• Designed on an interface-based component model called

Universal Network Objects (UNO)

• UNO definition

UNO offers interoperability between different programming

languages, different object models, different machine

architectures, and different processes; either in a local network

or even via the Internet

UNO components can be implemented in, and accessed from,

any programming language for which a UNO language

binding exists

18

Page 20: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Notes to Writer

Demo — Example 3

―Hello World‖ from

Notes to

Symphony Documents

19

Page 21: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Merging Mail from Notes

• Most requested Notes-to-Office Integration functionality

• Users have no idea how to get data from Notes into Word

• Lotus has not provided this functionality … yet

• Quick win for you — take this code back and add it to

your boss’s personal name and address book and be the

HERO!

Page 22: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Mail Merge from Address Book

Demo — Example 4

Generate a mail merge

from the personal

name and address

book

Page 23: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Integration with Microsoft Excel

• Working with Excel is very different from Word

• The objects we use are different

• In Excel, we tend to move more data from Notes to the application

Lots of rows in Excel vs. filling in bookmarks in Word

Microsoft Word Microsoft Excel

Text Position/Cursor Cell

Paragraph Range

Page Worksheet

Document Workbook

Page 24: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Working with Microsoft Excel

Demo — Example 5

Create a spreadsheet

from Notes data and

generate a chart

Page 25: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

What We’ll Cover …

• Who we are?

• Integration Background

• Integration from the Notes client

• Integration from other applications

• Integration from a web browser

• Integration with Google Docs

• Real World Integration

• Looking forward

• Wrap-up and Q&A

24

Page 26: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Moving to the Other Side

• This part covers the more advanced subjects

Such as automating Lotus Notes from Microsoft Office and

other technologies

We will use COM, XML, Web services, and .NET technologies

As the title suggests, this part is more technical We are about to

pick up the pace

Page 27: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Automation from the Microsoft Side

• Many integration scenarios require that user interaction start, or

solely be, from an application other than Notes

• Many times we will not have the Notes client installed

• We will not be writing LotusScript

We may call LotusScript through the Notes COM interface

• We need to take advantage of ―new‖ technologies

XML

Web services

.NET

Managed code

Page 28: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Demo — Example 6

Word template that

reads a Notes database

via a Web service

Page 29: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Microsoft Excel and XML

Demo — Example 7

Importing Domino data

into a spreadsheet

using XML

Page 30: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

VSTO Versions

• Visual Studio Tools for Office

Version 1 = VSTO 2003 with Visual Studio.NET 2003

Version 2 = VSTO Second Edition with Visual Studio.NET 2005

Version 3 = VSTO 3.0 with Visual Studio.NET 2008

• Unless you are forced too, only use VSTO 3.0

• VSTO allows for VB.NET and C#

PSC has moved to C# for all our development

C# is more powerful

More third-party tools available for C#

29

Page 31: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

VSTO 3.0 Project Types

Page 32: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

VSTO 3.0 and Microsoft Word and Domino Web Service

Demo — Example 8

Creating a new Word

document that prompts

the user and fills out

Domino data via

Using VSTO

Page 33: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

What We’ll Cover …

• Who we are?

• Integration Background

• Integration from the Notes client

• Integration from other applications

• Integration from a web browser

• Integration with Google Docs

• Real World Integration

• Looking forward

• Wrap-up and Q&A

32

Page 34: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Ways to Add Domino Functionality to ASP.NET

• Using Domino Web services

• Using Domino Web agents and XML

• NOTE: Selecting the right option is dependent on the

Domino Server version and the developer’s skill

Page 35: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

ASP.NET Calling a Domino Web Service

• We can call the same Domino Web service we have used

before

• ASP.NET will import the Web service

• Code behind the button will be virtually the same as

when ASP.NET called Domino via COM

Page 36: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

ASP.NET Calling Domino via a Web Service

Demo — Example 9

Creating an ASP.NET

Web page that calls

Domino via a

Web service

Page 37: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

ASP.NET Can Also Work with Domino XML

• ASP.NET can display Domino data in a great grid control

• Steps to make this happen:

Drag a GridView data control onto your page

An XMLDataSource object is automatically added

The XMLDataSource is associated with the GridView control

Set the DataFile property of the XMLDataSource to the

XML agent

Page 38: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Domino Data in a Grid on an ASP.NET Web Page

• This is what the data will look like in the grid control:

Page 39: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Displaying Domino XML in an ASP.NET Web Page Grid

Demo — Example 10

Creating an ASP.NET

Web page that uses

the grid control

to display Domino XML

Page 40: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Microsoft SharePoint Integration

• Integration at the Notes client

Mainsoft Sharepoint Integrator

• Integration with Domino data

A combination of

VSTO

Domino XML

Some magic :-)

Samples inspired by Gary Devendorf @ Microsoft

• Demo in download database

39

Page 41: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

What We’ll Cover …

• Who we are?

• Integration Background

• Integration from the Notes client

• Integration from other applications

• Integration from a web browser

• Integration with Google Docs

• Real World Integration

• Looking forward

• Wrap-up and Q&A

40

Page 42: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Google Docs Integration

• Higher degree of difficulty

• Java code integrated with the Notes 8 and 8.5 Standard

Clients

Eclipse.org plug-ins

• A sidebar application that displays the documents

Just like Quickr!

• This sample is not for the timid!

• There is also a C# library available

41

Page 43: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Google Docs Integration – Posting Documents

Demo — Example 11

Posting Document to

Google Doc from

Notes

Page 44: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

What We’ll Cover …

• Who we are?

• Integration Background

• Integration from the Notes client

• Integration from other applications

• Integration from a web browser

• Integration with Google Docs

• Real World Integration

• Looking forward

• Wrap-up and Q&A

43

Page 45: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Real World Integration

• Real World Use Cases

• Zain Africa Challenge Application

www.zainafricachallenge.com

• PSC won the 2009 Best Philanthropic Lotus Award for this solution

• Integration Samples

Excel for reporting

Word for Scripts

Integra for XML export

44

Page 46: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Real World Integration - Demos

Demo — Example 12

Advanced VSTO

Demos

Page 47: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

What We’ll Cover …

• Who we are?

• Integration Background

• Integration from the Notes client

• Integration from other applications

• Integration from a web browser

• Integration with Google Docs

• Real World Integration

• Looking forward

• Wrap-up and Q&A

47

Page 48: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Looking Forward

• 2009

Lotus Symphony Toolkit with Notes 8.5.1

LotusScript and Java

Requires 8.5.1 Client

Full automation API

XPages in the Notes Client in 8.5.1

Automation from the web

• 2010

Visual Studio 2010 with VSTO 4

Office 2010

Backstage

48

Page 49: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

What We’ll Cover …

• Who we are?

• Integration Background

• Integration from the Notes client

• Integration from other applications

• Integration from a web browser

• Integration with Google Docs

• Real World Integration

• Looking forward

• Wrap-up and Q&A

49

Page 50: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

We Only Scratched the Surface

• There are over 3 hours of content available for this

presentation

• Search Slideshare for Lotusphere 2009 JMP205

• Over 25 demos including Symphony Spreadsheets

Microsoft PowerPoint

Symphony Presentations

Microsoft Project

Microsoft Visio

Microsoft InfoPath

ASP.NET and COM

Google Docs consuming Domino XML

50

Page 51: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Resources

• Microsoft Office developer’s Web site

http://msdn2.microsoft.com/en-us/office/default.aspx

• Microsoft Developer Network

http://msdn.microsoft.com

• Microsoft Office blog listing

http://msdn2.microsoft.com/en-us/office/aa905342.aspx

• PSC’s Reporting and Office Integration page

www.psclistens.com/enTouchCMS/app/viewCategory?

catgId=66

51

Page 52: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Resources (continued)

• OpenOffice.org

http://www.openoffice.org

• OpenOffice Developers Guide http://api.openoffice.org/DevelopersGuide/DevelopersGuide.html

• Programming OpenOffice with Visual Basic

http://www.kalitech.fr/clients/doc/VB_APIOOo_en.html

52

Page 53: Iam Lug 2009   Integration And Coexistence Session

IamLUG 2009

Lotus Community Sites

Lotus Greenhouse (greenhouse.lotus.com) is a live

community website where you can use Lotus Collaboration

Products for free!

The Lotus Community Podcasts

Planet Lotus (www.planetlotus.org) is an aggregation of Lotus related blogs

and news

IdeaJam (www.ideajam.net) is a place where people can post and share their

ideas, and gauge the marketability, popularity and viability with input from

others

OpenNTF (www.openntf.org) is a site devoted to getting groups of individuals

all over the world to collaborate on Lotus Notes/Domino applications and

release them as open source

Bleedyellow.com provides community implementations of

Lotus Connections and Sametime

IBM’s Official portal for developers including a dedicated section for Lotus

(www.ibm.com/developerworks/lotus)

LotusUserGroup.org is the on-line home of the IBM Lotus

community for regional and virtual user groups

Page 54: Iam Lug 2009   Integration And Coexistence Session

IamLUG 200954

Follow Up

How to contact us:

John Head Alex Kassabov

[email protected] [email protected]

Twitter.com/johnhead twitter.com/akassabov

Linkedin.com/in/johndhead Linkedin.com/in/akassabov

Facebook.com/johnhead

Slideshare.com/johnhead