SlideShare a Scribd company logo
1 of 30
Download to read offline
The Hairy Bikers Domino Cookbook




                    Presenter: Bill Buchan & Steve McDonagh
                    Company: hadsl & AVX
The Hairy Bikers ?

• “The Hairy Bikers” are two hairy
  bikers who do cooking
 –Simon King & Dave Myers
 –Have a BBC Series
• Their web site is at:
 –http://hairybikers.com
• Steve and I are both bikers
 –And he can cook
• So we thought....
Programming is like Cooking


• Programming is like cooking

 –You get a recipe to help you start
 –As you get better, you can adapt it
 –We’ll give you a short tutorial on each item

• But... You know all about Domino
  Programming
This is not...

• This is NOT about Domino Programming
• This is about interfacing Domino to different systems
• Remember:
 –A good corporate programmer does not develop
  from scratch
 –A good corporate developer is there to join up components in
  order to deliver results
 –Sometimes, the components are outside Domino
 –Like a hairy biker, we knock stuff out using the stuff we find
Remember:

• Whilst the business might love Domino
 –Other parts of the business use different tools.
• Its part of our job to make it easy
 –For those other parts to see our data
 –For our applications to use other data
• Not only does that make us gods in our world
 –It makes us good corporate programmers to other teams


• Job Security....
So what we going to cover?

• The worlds simplest Lotus Notes Application
 –A wee contact database
• Then we access it via a:
 –Web service
 –Ajax front end
 –BlackBerry SmartPhone
 –Flex Front End
 –.Net Visual Basic Service
We’re focusing on..

• We’re focusing on
 –The pros and cons for each platform
 –Hacking Developing each solution
 –Debugging each solution
• We’re not really interested in the Domino application
  - you know all about those
• We’re not delivering production quality code here
 –Thats your homework
The Application is:

• The Application is:
 –Very simple - single view and Form
 –No complex code, validation, error checking
• Remember,
 –The application isnt the point of this presentation
 –The point is how it interfaces with other systems
The Hairy Bikers Example Db
The Domino Application
Serving Web Services to others...



• Ingredients:
 –Domino 7.x or above
 –Lotusscript
 –Soap UI (http://soapui.org)
 –Domino Designer 7 or above
• Level: Simple
How to create a Web Service...

• Create a LotusScript-based web service in Domino
  Designer
• Name the class which exposes your methods
• Save the class
• You can access the web service using:
 –http://<server>/<database.nsf>/WebServiceName?WSDL
 –In any browser
• You can now test the web service using SoapUI
• Demo!
Ajax Applications



• Ingredients:
 –Domino 5.x or above
 –Lotusscript
 –Domino Designer 5 or above


• Level: Simple (if you know javascript)
How to create an Ajax application

• You need to choose a Ajax Framework:
 –Dojo is included in Domino and used within iNotes
• Attach them to the application
 –Simplest is to embed in the application
• Write forms and views using Javascript for function
  and CSS for display
• Test, test, test, and test again
 –In all browsers...
• Demo!
Confirmation
SoapUI and the Web Service

• This shows the ‘GetBuddyNames’ Call.
 –The SOAP web service call on the left, results on the right
SoapUI and the Web Service

• This shows the ‘GetBuddy’ Call.
 –The SOAP web service call on the left, results on the right
Flex Applications



• Ingredients:
 –Adobe Flex Builder v3 or above (adobe.com)
 –Lotusscript
 –Domino Designer 7 or above


• Level: Medium (if you know java)
How to create a Flex application

• Open up Flex Builder
 –Do the flex bits..
• Embed the SWF file in a page or form
 –Copy+paste the launch code from Flex Builder to the page
• Demo!
Rich Internet Applications...

• Rich Internet Applications allow the developer
  to have apps

    A. that are connected

    B. that are engaging

    C. respect user adoption over
      technical integration
My experience of using RIA’s
As a corporation we needed :
• Something that would give a unified corporate look and feel

• Something easily localised to 14 languages

• Something that looked and worked the same on all platforms

• Something easily deployable on all conceivable platforms

• Something that could “talk” to multiple data sources

• Something that could produce amazing results quickly
.Net Applications



• Ingredients:
 –Visual Studio 2005 or 2008
 –Visual Basic or C# skills

• Level: Easy (if you know lotusscript)
How to create an .net application

• Open up Visual Studio 2005 or 2008
• Create a ‘Windows Console’ application




• On the project explorer, create a web service
• Point it at our Domino web service
• Wire in some code...
How to create a .net application
• On Solution explorer, ‘Add Service Reference’

• Point it at our Domino web service:
How to create a .net service

• In my case, I want
  to create a .net v2
  service, so click on
  Advanced,
 –Then click on ‘Add
  Web Reference’
How to create a .net service

• Enter a
  web
  reference
  name
 –The click
   on ‘Add
   Reference’
 –
The .Net Code
Windows Services

• If you want code that will run all the time consider
  using a windows service:
 –It has a ‘sleep/wakeup’ protocol so it could poll for work on
  a regular basis
 –If it detects work, it can then spawn worker threads to
  execute this work.
 –Its harder to install - I used MakeMSI to make the .MSI
  installer for my windows services.
 –If you call an authenticated web service, where do you
  store the username/password ?
   • Clear text isnt good enough.
A Quick Gotcha!

• Applications built using
 –VS2005 want to use .Net Framework 2.5
 –VS2008 want to use .Net Framework 3.0 or 3.5
• Customers in general have NOT rolled out .Net
  Framework v3 to their clients, nor their servers
• You can target these projects to use .Net
  Framework v2.5 - this may make your deployment
  easier
So to round up

• Be very good at Domino
• Be good at other things too
• Domino is not a walled garden
• Everything is a weapon

More Related Content

What's hot

Wordpress essential training - Wordpress Presentation PPT
Wordpress essential training - Wordpress Presentation PPTWordpress essential training - Wordpress Presentation PPT
Wordpress essential training - Wordpress Presentation PPTAbdulla2410
 
Mobile Hybrid Development with WordPress
Mobile Hybrid Development with WordPressMobile Hybrid Development with WordPress
Mobile Hybrid Development with WordPressDanilo Ercoli
 
Improve WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of codeImprove WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of codeDanilo Ercoli
 
Tech Thursdays: Building Products
Tech Thursdays: Building ProductsTech Thursdays: Building Products
Tech Thursdays: Building ProductsHayden Bleasel
 
Introduction to web development
Introduction to web developmentIntroduction to web development
Introduction to web developmentIftekher Islam Sunny
 
Rutgers - Active Server Pages
Rutgers - Active Server PagesRutgers - Active Server Pages
Rutgers - Active Server PagesMichael Dobe, Ph.D.
 
Starting Web Development
Starting Web DevelopmentStarting Web Development
Starting Web DevelopmentPooria Farhad
 
wordpress training | wordpress certification | wordpress training course | wo...
wordpress training | wordpress certification | wordpress training course | wo...wordpress training | wordpress certification | wordpress training course | wo...
wordpress training | wordpress certification | wordpress training course | wo...Nancy Thomas
 
Web Application Development Process presented by @Cygnismedia
Web Application Development Process presented by @CygnismediaWeb Application Development Process presented by @Cygnismedia
Web Application Development Process presented by @CygnismediaClark Davidson
 
1 training intro
1 training intro1 training intro
1 training introSayed Ahmed
 
Web development - Developing Web as A Team
Web development -  Developing Web as A TeamWeb development -  Developing Web as A Team
Web development - Developing Web as A TeamMuhammad Akbar Yasin
 
Scalable front-end architecture with Bootstrap 3 + Atomic CSS
Scalable front-end architecture with Bootstrap 3 + Atomic CSSScalable front-end architecture with Bootstrap 3 + Atomic CSS
Scalable front-end architecture with Bootstrap 3 + Atomic CSSHayden Bleasel
 
How to write good quality code
How to write good quality codeHow to write good quality code
How to write good quality codeHayden Bleasel
 
Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web DevelopmentRobert J. Stein
 
Introduction to Web development
Introduction to Web developmentIntroduction to Web development
Introduction to Web developmentMd. Shafiuzzaman Hira
 
Single page application and Framework
Single page application and FrameworkSingle page application and Framework
Single page application and FrameworkChandrasekar G
 
Drupal Introduction
Drupal IntroductionDrupal Introduction
Drupal IntroductionPanos Ladas
 
Std 12 Computer Chapter 3 Designing Simple Website using KompoZer
Std 12 Computer Chapter 3  Designing Simple Website using KompoZerStd 12 Computer Chapter 3  Designing Simple Website using KompoZer
Std 12 Computer Chapter 3 Designing Simple Website using KompoZerNuzhat Memon
 
WordPress and Accessibility
WordPress and AccessibilityWordPress and Accessibility
WordPress and AccessibilityJoseph Dolson
 

What's hot (20)

Wordpress essential training - Wordpress Presentation PPT
Wordpress essential training - Wordpress Presentation PPTWordpress essential training - Wordpress Presentation PPT
Wordpress essential training - Wordpress Presentation PPT
 
Mobile Hybrid Development with WordPress
Mobile Hybrid Development with WordPressMobile Hybrid Development with WordPress
Mobile Hybrid Development with WordPress
 
Improve WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of codeImprove WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of code
 
Tech Thursdays: Building Products
Tech Thursdays: Building ProductsTech Thursdays: Building Products
Tech Thursdays: Building Products
 
Introduction to web development
Introduction to web developmentIntroduction to web development
Introduction to web development
 
Rutgers - Active Server Pages
Rutgers - Active Server PagesRutgers - Active Server Pages
Rutgers - Active Server Pages
 
Starting Web Development
Starting Web DevelopmentStarting Web Development
Starting Web Development
 
wordpress training | wordpress certification | wordpress training course | wo...
wordpress training | wordpress certification | wordpress training course | wo...wordpress training | wordpress certification | wordpress training course | wo...
wordpress training | wordpress certification | wordpress training course | wo...
 
Web Application Development Process presented by @Cygnismedia
Web Application Development Process presented by @CygnismediaWeb Application Development Process presented by @Cygnismedia
Web Application Development Process presented by @Cygnismedia
 
1 training intro
1 training intro1 training intro
1 training intro
 
Dreamweaver
DreamweaverDreamweaver
Dreamweaver
 
Web development - Developing Web as A Team
Web development -  Developing Web as A TeamWeb development -  Developing Web as A Team
Web development - Developing Web as A Team
 
Scalable front-end architecture with Bootstrap 3 + Atomic CSS
Scalable front-end architecture with Bootstrap 3 + Atomic CSSScalable front-end architecture with Bootstrap 3 + Atomic CSS
Scalable front-end architecture with Bootstrap 3 + Atomic CSS
 
How to write good quality code
How to write good quality codeHow to write good quality code
How to write good quality code
 
Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web Development
 
Introduction to Web development
Introduction to Web developmentIntroduction to Web development
Introduction to Web development
 
Single page application and Framework
Single page application and FrameworkSingle page application and Framework
Single page application and Framework
 
Drupal Introduction
Drupal IntroductionDrupal Introduction
Drupal Introduction
 
Std 12 Computer Chapter 3 Designing Simple Website using KompoZer
Std 12 Computer Chapter 3  Designing Simple Website using KompoZerStd 12 Computer Chapter 3  Designing Simple Website using KompoZer
Std 12 Computer Chapter 3 Designing Simple Website using KompoZer
 
WordPress and Accessibility
WordPress and AccessibilityWordPress and Accessibility
WordPress and Accessibility
 

Similar to Uklug2009 Hairy Bikers Cookbook

Entwicker camp2007 blackberry-workshop
Entwicker camp2007 blackberry-workshopEntwicker camp2007 blackberry-workshop
Entwicker camp2007 blackberry-workshopBill Buchan
 
Proper Connections Development for Proper Domino Developers
Proper Connections Development for Proper Domino DevelopersProper Connections Development for Proper Domino Developers
Proper Connections Development for Proper Domino DevelopersMark Myers
 
How to build a SaaS solution in 60 days
How to build a SaaS solution in 60 daysHow to build a SaaS solution in 60 days
How to build a SaaS solution in 60 daysBrett McLain
 
Arizona IT Management Service Book
Arizona IT Management Service BookArizona IT Management Service Book
Arizona IT Management Service BookArizona IT Management
 
Office Add ins community call-February 2019
Office Add ins community call-February 2019Office Add ins community call-February 2019
Office Add ins community call-February 2019Microsoft 365 Developer
 
Free Mongo on OpenShift
Free Mongo on OpenShiftFree Mongo on OpenShift
Free Mongo on OpenShiftSteven Pousty
 
Automation in iOS development
Automation in iOS developmentAutomation in iOS development
Automation in iOS developmentCong Nguyen
 
Col113 introducing the hcl domino volt application i created
Col113 introducing the hcl domino volt application i createdCol113 introducing the hcl domino volt application i created
Col113 introducing the hcl domino volt application i createdMasahiko Miyo
 
Overboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasiaOverboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasiaChristian Heilmann
 
Microsoft loves PHP. Seriously.
Microsoft loves PHP. Seriously.Microsoft loves PHP. Seriously.
Microsoft loves PHP. Seriously.Jenna Hoffman
 
Joomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiencesJoomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiencesAndy_Gaskell
 
MuleSoft Meetup slides_kualalumpur_19thSept_Undisturbed REST: Achieving Undis...
MuleSoft Meetup slides_kualalumpur_19thSept_Undisturbed REST: Achieving Undis...MuleSoft Meetup slides_kualalumpur_19thSept_Undisturbed REST: Achieving Undis...
MuleSoft Meetup slides_kualalumpur_19thSept_Undisturbed REST: Achieving Undis...Manish Kumar Yadav
 
Bluemix and DevOps workshop lab
Bluemix and DevOps workshop labBluemix and DevOps workshop lab
Bluemix and DevOps workshop labbenm4nn
 
BUILDING WEBSITES ON WORDPRESS
BUILDING WEBSITES ON WORDPRESSBUILDING WEBSITES ON WORDPRESS
BUILDING WEBSITES ON WORDPRESSPRINCE KUMAR
 
Adobe CQ at LinkedIn Meetup February 2014
Adobe CQ at LinkedIn Meetup February 2014Adobe CQ at LinkedIn Meetup February 2014
Adobe CQ at LinkedIn Meetup February 2014nyolles
 
Adobe CQ at LinkedIn Meetup February 2014
Adobe CQ at LinkedIn Meetup February 2014Adobe CQ at LinkedIn Meetup February 2014
Adobe CQ at LinkedIn Meetup February 2014Nate Yolles
 
Impact 2014 1147 - Bridging Business Process Management and Integration use c...
Impact 2014 1147 - Bridging Business Process Management and Integration use c...Impact 2014 1147 - Bridging Business Process Management and Integration use c...
Impact 2014 1147 - Bridging Business Process Management and Integration use c...Brian Petrini
 
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 PatternTeamstudio
 

Similar to Uklug2009 Hairy Bikers Cookbook (20)

Entwicker camp2007 blackberry-workshop
Entwicker camp2007 blackberry-workshopEntwicker camp2007 blackberry-workshop
Entwicker camp2007 blackberry-workshop
 
Proper Connections Development for Proper Domino Developers
Proper Connections Development for Proper Domino DevelopersProper Connections Development for Proper Domino Developers
Proper Connections Development for Proper Domino Developers
 
Fastlix
FastlixFastlix
Fastlix
 
Custom V CMS
Custom V CMSCustom V CMS
Custom V CMS
 
How to build a SaaS solution in 60 days
How to build a SaaS solution in 60 daysHow to build a SaaS solution in 60 days
How to build a SaaS solution in 60 days
 
Arizona IT Management Service Book
Arizona IT Management Service BookArizona IT Management Service Book
Arizona IT Management Service Book
 
Office Add ins community call-February 2019
Office Add ins community call-February 2019Office Add ins community call-February 2019
Office Add ins community call-February 2019
 
Free Mongo on OpenShift
Free Mongo on OpenShiftFree Mongo on OpenShift
Free Mongo on OpenShift
 
Automation in iOS development
Automation in iOS developmentAutomation in iOS development
Automation in iOS development
 
Col113 introducing the hcl domino volt application i created
Col113 introducing the hcl domino volt application i createdCol113 introducing the hcl domino volt application i created
Col113 introducing the hcl domino volt application i created
 
Overboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasiaOverboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasia
 
Microsoft loves PHP. Seriously.
Microsoft loves PHP. Seriously.Microsoft loves PHP. Seriously.
Microsoft loves PHP. Seriously.
 
Joomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiencesJoomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiences
 
MuleSoft Meetup slides_kualalumpur_19thSept_Undisturbed REST: Achieving Undis...
MuleSoft Meetup slides_kualalumpur_19thSept_Undisturbed REST: Achieving Undis...MuleSoft Meetup slides_kualalumpur_19thSept_Undisturbed REST: Achieving Undis...
MuleSoft Meetup slides_kualalumpur_19thSept_Undisturbed REST: Achieving Undis...
 
Bluemix and DevOps workshop lab
Bluemix and DevOps workshop labBluemix and DevOps workshop lab
Bluemix and DevOps workshop lab
 
BUILDING WEBSITES ON WORDPRESS
BUILDING WEBSITES ON WORDPRESSBUILDING WEBSITES ON WORDPRESS
BUILDING WEBSITES ON WORDPRESS
 
Adobe CQ at LinkedIn Meetup February 2014
Adobe CQ at LinkedIn Meetup February 2014Adobe CQ at LinkedIn Meetup February 2014
Adobe CQ at LinkedIn Meetup February 2014
 
Adobe CQ at LinkedIn Meetup February 2014
Adobe CQ at LinkedIn Meetup February 2014Adobe CQ at LinkedIn Meetup February 2014
Adobe CQ at LinkedIn Meetup February 2014
 
Impact 2014 1147 - Bridging Business Process Management and Integration use c...
Impact 2014 1147 - Bridging Business Process Management and Integration use c...Impact 2014 1147 - Bridging Business Process Management and Integration use c...
Impact 2014 1147 - Bridging Business Process Management and Integration use c...
 
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
 

More from Bill Buchan

Dummies guide to WISPS
Dummies guide to WISPSDummies guide to WISPS
Dummies guide to WISPSBill Buchan
 
WISP for Dummies
WISP for DummiesWISP for Dummies
WISP for DummiesBill Buchan
 
WISP Worst Practices
WISP Worst PracticesWISP Worst Practices
WISP Worst PracticesBill Buchan
 
Marykirk raft race presentation night 2014
Marykirk raft race presentation night 2014Marykirk raft race presentation night 2014
Marykirk raft race presentation night 2014Bill Buchan
 
Dev buchan best practices
Dev buchan best practicesDev buchan best practices
Dev buchan best practicesBill Buchan
 
Dev buchan leveraging
Dev buchan leveragingDev buchan leveraging
Dev buchan leveragingBill Buchan
 
Dev buchan leveraging the notes c api
Dev buchan leveraging the notes c apiDev buchan leveraging the notes c api
Dev buchan leveraging the notes c apiBill Buchan
 
Dev buchan everything you need to know about agent design
Dev buchan everything you need to know about agent designDev buchan everything you need to know about agent design
Dev buchan everything you need to know about agent designBill Buchan
 
Dev buchan 30 proven tips
Dev buchan 30 proven tipsDev buchan 30 proven tips
Dev buchan 30 proven tipsBill Buchan
 
Entwicker camp2007 calling-the-c-api-from-lotusscript
Entwicker camp2007 calling-the-c-api-from-lotusscriptEntwicker camp2007 calling-the-c-api-from-lotusscript
Entwicker camp2007 calling-the-c-api-from-lotusscriptBill Buchan
 
Ad505 dev blast
Ad505 dev blastAd505 dev blast
Ad505 dev blastBill Buchan
 
Admin2012 buchan web_services-v101
Admin2012 buchan web_services-v101Admin2012 buchan web_services-v101
Admin2012 buchan web_services-v101Bill Buchan
 
Reporting on your domino environment v1
Reporting on your domino environment v1Reporting on your domino environment v1
Reporting on your domino environment v1Bill Buchan
 
12 Step Guide to Lotuscript
12 Step Guide to Lotuscript12 Step Guide to Lotuscript
12 Step Guide to LotuscriptBill Buchan
 
Everything you ever wanted to know about lotus script
Everything you ever wanted to know about lotus scriptEverything you ever wanted to know about lotus script
Everything you ever wanted to know about lotus scriptBill Buchan
 
Admin camp 2011-domino-sso-with-ad
Admin camp 2011-domino-sso-with-adAdmin camp 2011-domino-sso-with-ad
Admin camp 2011-domino-sso-with-adBill Buchan
 
Softsphere 08 web services bootcamp
Softsphere 08 web services bootcampSoftsphere 08 web services bootcamp
Softsphere 08 web services bootcampBill Buchan
 
Connections Lotusphere Worst Practices 2013
Connections Lotusphere Worst Practices 2013Connections Lotusphere Worst Practices 2013
Connections Lotusphere Worst Practices 2013Bill Buchan
 

More from Bill Buchan (20)

Dummies guide to WISPS
Dummies guide to WISPSDummies guide to WISPS
Dummies guide to WISPS
 
WISP for Dummies
WISP for DummiesWISP for Dummies
WISP for Dummies
 
WISP Worst Practices
WISP Worst PracticesWISP Worst Practices
WISP Worst Practices
 
Marykirk raft race presentation night 2014
Marykirk raft race presentation night 2014Marykirk raft race presentation night 2014
Marykirk raft race presentation night 2014
 
Dev buchan best practices
Dev buchan best practicesDev buchan best practices
Dev buchan best practices
 
Dev buchan leveraging
Dev buchan leveragingDev buchan leveraging
Dev buchan leveraging
 
Dev buchan leveraging the notes c api
Dev buchan leveraging the notes c apiDev buchan leveraging the notes c api
Dev buchan leveraging the notes c api
 
Dev buchan everything you need to know about agent design
Dev buchan everything you need to know about agent designDev buchan everything you need to know about agent design
Dev buchan everything you need to know about agent design
 
Dev buchan 30 proven tips
Dev buchan 30 proven tipsDev buchan 30 proven tips
Dev buchan 30 proven tips
 
Entwicker camp2007 calling-the-c-api-from-lotusscript
Entwicker camp2007 calling-the-c-api-from-lotusscriptEntwicker camp2007 calling-the-c-api-from-lotusscript
Entwicker camp2007 calling-the-c-api-from-lotusscript
 
Bp301
Bp301Bp301
Bp301
 
Ad507
Ad507Ad507
Ad507
 
Ad505 dev blast
Ad505 dev blastAd505 dev blast
Ad505 dev blast
 
Admin2012 buchan web_services-v101
Admin2012 buchan web_services-v101Admin2012 buchan web_services-v101
Admin2012 buchan web_services-v101
 
Reporting on your domino environment v1
Reporting on your domino environment v1Reporting on your domino environment v1
Reporting on your domino environment v1
 
12 Step Guide to Lotuscript
12 Step Guide to Lotuscript12 Step Guide to Lotuscript
12 Step Guide to Lotuscript
 
Everything you ever wanted to know about lotus script
Everything you ever wanted to know about lotus scriptEverything you ever wanted to know about lotus script
Everything you ever wanted to know about lotus script
 
Admin camp 2011-domino-sso-with-ad
Admin camp 2011-domino-sso-with-adAdmin camp 2011-domino-sso-with-ad
Admin camp 2011-domino-sso-with-ad
 
Softsphere 08 web services bootcamp
Softsphere 08 web services bootcampSoftsphere 08 web services bootcamp
Softsphere 08 web services bootcamp
 
Connections Lotusphere Worst Practices 2013
Connections Lotusphere Worst Practices 2013Connections Lotusphere Worst Practices 2013
Connections Lotusphere Worst Practices 2013
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel AraĂşjo
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 

Recently uploaded (20)

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

Uklug2009 Hairy Bikers Cookbook

  • 1. The Hairy Bikers Domino Cookbook Presenter: Bill Buchan & Steve McDonagh Company: hadsl & AVX
  • 2. The Hairy Bikers ? • “The Hairy Bikers” are two hairy bikers who do cooking –Simon King & Dave Myers –Have a BBC Series • Their web site is at: –http://hairybikers.com • Steve and I are both bikers –And he can cook • So we thought....
  • 3. Programming is like Cooking • Programming is like cooking –You get a recipe to help you start –As you get better, you can adapt it –We’ll give you a short tutorial on each item • But... You know all about Domino Programming
  • 4. This is not... • This is NOT about Domino Programming • This is about interfacing Domino to different systems • Remember: –A good corporate programmer does not develop from scratch –A good corporate developer is there to join up components in order to deliver results –Sometimes, the components are outside Domino –Like a hairy biker, we knock stuff out using the stuff we find
  • 5. Remember: • Whilst the business might love Domino –Other parts of the business use different tools. • Its part of our job to make it easy –For those other parts to see our data –For our applications to use other data • Not only does that make us gods in our world –It makes us good corporate programmers to other teams • Job Security....
  • 6. So what we going to cover? • The worlds simplest Lotus Notes Application –A wee contact database • Then we access it via a: –Web service –Ajax front end –BlackBerry SmartPhone –Flex Front End –.Net Visual Basic Service
  • 7. We’re focusing on.. • We’re focusing on –The pros and cons for each platform –Hacking Developing each solution –Debugging each solution • We’re not really interested in the Domino application - you know all about those • We’re not delivering production quality code here –Thats your homework
  • 8. The Application is: • The Application is: –Very simple - single view and Form –No complex code, validation, error checking • Remember, –The application isnt the point of this presentation –The point is how it interfaces with other systems
  • 9. The Hairy Bikers Example Db
  • 11. Serving Web Services to others... • Ingredients: –Domino 7.x or above –Lotusscript –Soap UI (http://soapui.org) –Domino Designer 7 or above • Level: Simple
  • 12. How to create a Web Service... • Create a LotusScript-based web service in Domino Designer • Name the class which exposes your methods • Save the class • You can access the web service using: –http://<server>/<database.nsf>/WebServiceName?WSDL –In any browser • You can now test the web service using SoapUI • Demo!
  • 13. Ajax Applications • Ingredients: –Domino 5.x or above –Lotusscript –Domino Designer 5 or above • Level: Simple (if you know javascript)
  • 14. How to create an Ajax application • You need to choose a Ajax Framework: –Dojo is included in Domino and used within iNotes • Attach them to the application –Simplest is to embed in the application • Write forms and views using Javascript for function and CSS for display • Test, test, test, and test again –In all browsers... • Demo!
  • 16. SoapUI and the Web Service • This shows the ‘GetBuddyNames’ Call. –The SOAP web service call on the left, results on the right
  • 17. SoapUI and the Web Service • This shows the ‘GetBuddy’ Call. –The SOAP web service call on the left, results on the right
  • 18. Flex Applications • Ingredients: –Adobe Flex Builder v3 or above (adobe.com) –Lotusscript –Domino Designer 7 or above • Level: Medium (if you know java)
  • 19. How to create a Flex application • Open up Flex Builder –Do the flex bits.. • Embed the SWF file in a page or form –Copy+paste the launch code from Flex Builder to the page • Demo!
  • 20. Rich Internet Applications... • Rich Internet Applications allow the developer to have apps A. that are connected B. that are engaging C. respect user adoption over technical integration
  • 21. My experience of using RIA’s As a corporation we needed : • Something that would give a unified corporate look and feel • Something easily localised to 14 languages • Something that looked and worked the same on all platforms • Something easily deployable on all conceivable platforms • Something that could “talk” to multiple data sources • Something that could produce amazing results quickly
  • 22. .Net Applications • Ingredients: –Visual Studio 2005 or 2008 –Visual Basic or C# skills • Level: Easy (if you know lotusscript)
  • 23. How to create an .net application • Open up Visual Studio 2005 or 2008 • Create a ‘Windows Console’ application • On the project explorer, create a web service • Point it at our Domino web service • Wire in some code...
  • 24. How to create a .net application • On Solution explorer, ‘Add Service Reference’ • Point it at our Domino web service:
  • 25. How to create a .net service • In my case, I want to create a .net v2 service, so click on Advanced, –Then click on ‘Add Web Reference’
  • 26. How to create a .net service • Enter a web reference name –The click on ‘Add Reference’ –
  • 28. Windows Services • If you want code that will run all the time consider using a windows service: –It has a ‘sleep/wakeup’ protocol so it could poll for work on a regular basis –If it detects work, it can then spawn worker threads to execute this work. –Its harder to install - I used MakeMSI to make the .MSI installer for my windows services. –If you call an authenticated web service, where do you store the username/password ? • Clear text isnt good enough.
  • 29. A Quick Gotcha! • Applications built using –VS2005 want to use .Net Framework 2.5 –VS2008 want to use .Net Framework 3.0 or 3.5 • Customers in general have NOT rolled out .Net Framework v3 to their clients, nor their servers • You can target these projects to use .Net Framework v2.5 - this may make your deployment easier
  • 30. So to round up • Be very good at Domino • Be good at other things too • Domino is not a walled garden • Everything is a weapon