integrating your domino applications with microsoft … · 2016. 7. 9. · lotus notes developers...
TRANSCRIPT
INTEGRATING YOUR DOMINO
APPLICATIONS WITH MICROSOFT
PRODUCTS
Gary Devendorf
Microsoft
REUSE EXISTING APPLICATIONS
� Production applications can be extended to interact with new
systems
� These extended interfaces can be used again and again in
different client applications
� No need to recreate
USE BEST OF BREED APPLICATIONS
� The best tool for what you need to get done
� Excel for word processing?
� Applications are getting more complex
� End users expect more
EXTENDING NOTES
4
Methods
HTTP
XML
Web Services
COM
ADO.NET
Web Parts
APIs
http://www.interoptips.com
EXTENDING NOTES
5
Methods
HTTP
XML
Web Services
COM
ADO.NET
Web Parts
APIs
http://www.interoptips.com
EXTENDING NOTES
6
Methods
HTTP
XML
Web Services
COM
ADO.NET
Web Parts
APIs
http://www.interoptips.com
EXTENDING NOTES
7
Methods
HTTP
XML
Web Services
COM
ADO.NET
Web Parts
APIs
http://www.interoptips.com
EXTENDING NOTES
8
Methods
HTTP
XML
Web Services
COM
ADO.NET
Web Parts
APIs
http://www.interoptips.com
EXTENDING NOTES
9
Methods
HTTP
XML
Web Services
COM
ADO.NET
Web Parts
APIs
http://www.interoptips.com
EXTENDING NOTES
10
Methods
HTTP
XML
Web Services
COM
ADO.NET
Web Parts
APIs
http://www.interoptips.com
EXTENDING
NOTES
11
Methods
HTTP
XML
Web Services
COM
ADO.NET
Web Parts
APIs
http://www.interoptips.com
EXTENDING NOTES
12
Methods
HTTP
XML
Web Services
COM
ADO.NET
Web Parts
APIs
http://www.interoptips.com
EXTENDING NOTES
13
Methods
HTTP
XML
Web Services
COM
ADO.NET
Web Parts
APIs
http://www.interoptips.com
EXTENDING NOTES
14
Methods
HTTP
XML
Web Services
COM
ADO.NET
Web Parts
APIs
http://www.interoptips.com
SHARE POINT
EXTENDING NOTES
16
Methods
HTTP
XML
Web Services
COM
ADO.NET
Web Parts
APIs
http://www.interoptips.com
SECURITY OPTIONS WEB SERVICES
USING NETWORK CREDENTIALS
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Cred As New NetworkCredential(TextBox2.Text, TextBox3.Text) ' Set User Name/Password credentials
'Dim Cred As New NetworkCredential("Joe User", "wordpass") ' Set User Name/Password credentials
Try
'DominoWS.Proxy.
'DominoWS.UseDefaultCredentials
DominoWS.Credentials = Cred ' asign credential to web service
DominoWS.PreAuthenticate = True ' force credentials in first call
TextBox4.Text = DominoWS.HELLO_NAME(TextBox1.Text) ' call call web service
SECURITY XML WEB AGENT
HOW DO THESE RICH CLIENTS FIT INTO
FUTURE ARCHITECTURES?
20
They are the future
APPLICATION EVOLUTION
21
Domino
Server
Notes
ClientBrowser
Windows
Server
MS Office
Clients
Window
Forms
Mobile
DevicesOther
Clients…
APPLICATION EVOLUTION
22
Future
Server
Notes
ClientBrowser
Domino
Server
MS Office
Clients
Window
Forms
Mobile
DevicesOther
Clients…
CREATING DOMINO SERVICES
Domino Web Services
XML over HTTP
CREATING A WEB SERVICE (R7+)
�Use Domino Designer
�Create "Web Service"
� Like creating an Agent
�Set properties in properties box
�Create LotusScript or Java class
�Generate WSDL - automatically
�Run Server
�Write WS client
NEW DESIGN ELEMENT
CREATE NEW WEB SERVICE
ENTER LOTUSSCRIPT CLASS CODE
VIEW WSDL FILE
TIME TO TRY OUR WEB SERVICE
� Unlike VS.NET, Notes 7 has no way to test its Web services
� We must create a client application
� VS.NET only needs a network connection and the URL to the
WSDL file of the service
R7 WEB SERVICES WSDL URL
� URL syntax of WSDL file:
http://MyServer/MyDatabase.nsf/MyWebService?WSDL
••In our example the URL is:In our example the URL is:
http://www.msdomino.net/orders.nsf/hello_world?wsdlhttp://www.msdomino.net/orders.nsf/hello_world?wsdl
TRY THE URL WITH A WEB BROWSER
WITH WSDL, CREATE WS CLIENTS
A LOOK AT DOMINO WEB AGENT GENERATING
XML
� Web Agents execute with URL call
� Agent programs can do almost anything
� Creating a Web Agent that returns XML is easy
� Parameters are allowed
LOTUSSCRIPT WEB AGENT CODE
Print "Content-type: text/xml“ 'Prevents Domino from sending default headers
Print |<?xml version="1.0" encoding="UTF-8" ?>|
Print "<CustomerOrders>" 'Orders is the root XML element
While Not ( doc Is Nothing ) 'Loop while there are document objects available
Print "<Orders>“ 'Send the parent element for each Order document
Print "<OrderID>"+FixChars(Cstr(doc. OrderID(0)))+"</OrderID>"
Print "<CustomerID>"+FixChars(Cstr(doc. CustomerID(0)))+ "</Customer..……
Print "</Orders>“ 'Close the Order element tag
Set doc = view.GetNextDocument( doc ) 'Get the next document in the view
Wend
Print "</CustomerOrders>"
End Sub
LOTUSSCRIPT FIXCHARS FUNCTION CODE
Function FixChars(TextData As String) As String 'Replace XML chars For i=1 To Len(TextData)MyChar= Mid(TextData,i,1)Select Case MyCharCase "<"
F_XML= F_XML & "<"Case ">"
F_XML= F_XML & ">"Case |"|
F_XML= F_XML & """Case "'"
F_XML= F_XML & "'"Case "&"
F_XML= F_XML & "&"Case Else
F_XML= F_XML & MyCharEnd Select
NextFixChars=F_XML
DOMINO XML DATA VIA URL
NON-DOMINO SERVER – NOTES XML
http://www.proposion.com/OrdersDemo/OrdersXml.aspx
WHY NOT USE DOMINO XML OBJECTS?
� No good reason other than backward compatibility
� it was easier – fewer lines of code
XML/HTTP PROVIDE DATA/TRANSPORT
� This is only one method
� Very flexible with long reach
� An HTTP/XML interface Agent can be used over and over in
many clients
ARCHITECTURE FOR THE FUTURE
� Why build on Domino platform if I’m moving to Hanover, DB2,
ASP.NET or something else in the future?
� By creating clients access with standards, the backend system can be
swapped with changing clients
� Reuse yesterday’s and today work
WHO WILL BUILD THESE NEW
APPLICATIONS?
� Lotus Notes Developers
� VB.NET 90% the same syntax as LotusScript
� VS.NET experience similar to Domino Designer’s
� No one knows your applications better
� Hybrid applications are quick and easy
� Add features to existing applications
41
FIND EXAMPLES OF DOMINO SERVICES
�� Domino Web ServicesDomino Web Services
�� Domino XML over HTTPDomino XML over HTTP�� http://interoptips.comhttp://interoptips.com