mmlug 2009 integration and coexistence session
DESCRIPTION
Integration and Coexistence: Leveraging Lotus & Microsoft products to build better solutions.TRANSCRIPT
Integration and Coexistence:
Leveraging Lotus & Microsoft
products to build better solutions
John Head
PSC Group, LLC
MWLUG Conference 2009Empowering the Lotus
Community
IBM Center
Chicago, IL
August 27-28, 2009
Before We Begin
• Please turn off/set to vibrate/mute all
Cell Phones
Pagers
Computers
Please remember to fill out your
evaluations
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
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
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)
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
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
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
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
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
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
Integration from the Notes Client
• Integrating Microsoft Word
• Integrating Lotus Symphony Documents
• Mail Merge
• Integrating Microsoft Excel
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
Creating a Word Document — ―Hello World‖
Demo — Example 1
Launch Microsoft
Word and enter
some text
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.
Use the MS 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!
Word Template — Data from Notes
Demo — Example 2
Create a new document
Prompt user
Place data into document
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
Notes to Writer
Demo — Example 3
“Hello World” from
Notes to
Symphony Documents
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!
Mail Merge from Address Book
Demo — Example 4
Generate a mail merge
from the personal
name and address
book
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
Working with Microsoft Excel
Demo — Example 5
Create a spreadsheet
from Notes data and
generate a chart
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
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
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
Demo — Example 6
Word template that
reads a Notes database
via a Web service
Microsoft Excel and XML
Demo — Example 7
Importing Domino data
into a spreadsheet
using XML
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#
VSTO 3.0 Project Types
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
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
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
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
ASP.NET Calling Domino via a Web Service
Demo — Example 9
Creating an ASP.NET
Web page that calls
Domino via a
Web service
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
Domino Data in a Grid on an ASP.NET Web Page
• This is what the data will look like in the grid
control:
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
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
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
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
Google Docs Integration – Posting Documents
Demo — Example 11
Posting Document to
Google Doc from
Notes
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
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
Real World Integration - Demos
Demo — Example 12
Advanced VSTO
Demos
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
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
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
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
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
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_APIO
Oo_en.html
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
Follow Up
How to contact us:
John Head
Twitter.com/johnhead
Linkedin.com/in/johndhead
Facebook.com/johnhead
Slideshare.com/johnhead