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
 
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
 
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
 
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
 
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

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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
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
 

Recently uploaded (20)

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...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
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...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
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
 

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