SlideShare a Scribd company logo
1 of 44
Write once, run anywhere 
Angular.js in XPages 
Mark Roden 
PSC Group LLC 
Senior Solutions Architect 
MWLUG 2014
About Marky 
Over 17 years IBM Notes Domino® work 
Senior Solutions Architect at PSC Group 
• XPages Developer 
• Project Leader 
• Angular.js Protagonist 
Contact Information 
– Blog: http://www.xomino.com 
– Email: marky@xomino.com 
– Twitter: @markyroden 
– Skype: marky.roden 
– "Come work for us - it will be fun" 
www.psclistens.com @pscgroup
Angular.js in XPages 
• What is Angular.js ? 
• How does Angular.js integrate with XPages ? 
• Why do I care ? 
• Demonstration 
• Behind the demonstration 
• Ok I care – so now what ?
Angular.js in XPages
Angular.js in XPages 
• What is Angular.js ? 
• AngularJS is a structural framework for dynamic web apps. It lets 
you use HTML as your template language and lets you extend 
HTML's syntax to express your application's components clearly 
and succinctly. Angular's data binding and dependency injection 
eliminate much of the code you currently have to write.
Angular.js in XPages 
• What is Angular.js ? 
• MVC web framework to model your application using client side 
JavaScript as opposed to Server side code. 
– The Model is the data created by the application 
– The View is the HTML representation of the data through 
the use of Templates 
– The Controller is the application code which is used to 
determine the way the Model is populated and displayed.
Angular.js in XPages 
• How does Angular.js integrate with XPages ? 
http://xomino.com/category/angular-in-xpages/ 
• Domino is the original NoSQL database 
– Secure 
– XPages is Domino with a Java Server Faces server 
– Multiple options for data retrieval 
• Domino Data Services 
• Custom Rest Service 
• ExtLib Rest Service 
• ?ReadViewEntries
Angular.js in XPages 
• How does Angular.js integrate with XPages ? 
• An application written using Angular.js uses 4 main things 
– HTML Pages 
– JavaScript files 
– CSS 
– A Data Service 
• One or many of those can be “XPages”
Angular.js in XPages 
• How does Angular.js integrate with XPages ? 
• HTML and JavaScript 
in the WebContent folder
Angular.js in XPages 
• How does Angular.js integrate with XPages ? 
• Data from the server via Domino Data Services
Angular.js in XPages 
• How does Angular.js integrate with XPages ? 
• Code written in *anything* including (but mostly excluding) 
Domino Designer 
– Notepad 
– Notepad++ 
– JetBrainsWebStorm
Angular.js in XPages 
• How does Angular.js integrate with XPages ? 
– Hook WebStorm up to the On Disk Structure of your DB
Angular.js in XPages 
• How does Angular.js work? 
– Model 
• Domino Data 
– View 
• HTML 
– Controller 
• JavaScript
Angular.js in XPages 
• How does Angular.js work? 
Model View
Angular.js in XPages 
• How does Angular.js work? 
– PersonDetailCtrl 
C .createPerson() 
R .getPerson() 
U .savePerson() 
D .deletePerson()
Angular.js in XPages 
• How does Angular.js work? 
Controller
Angular.js in XPages 
• Why do I care? 
• Business Perspective 
– Requirements 
– Customers 
• Personal Perspective 
– Web development 
– Increasingly popular 
– Too bleeding edge for Enterprise today but they will 
catch up eventually
Angular.js in XPages 
• Why do I care? 
• Requirements 
– Mixed technology production environment 
– Multiple Web Server environment 
– Pressure on existing Notes applications to Modernize or 
Die?
Angular.js in XPages 
• Why do I care? 
• Requirements 
– Because you want a subset of one application’s 
functionality to appear in another application 
– Dashboards 
• Charts 
• Reports 
– Functional decision making across systems
Angular.js in XPages 
• Demonstration 
• People application 
1. Running independently on Domino 
2. Running within another application 
3. Running on different Domino Server
Angular.js in XPages 
• Demonstration 
• Basic People application 
– Add new People 
– Edit 
– Delete
Angular.js in XPages 
• Demonstration
Angular.js in XPages 
• Demonstration
Angular.js in XPages 
• Demonstration
Angular.js in XPages 
• Demonstration 
– Including the application to a new Domino site
Angular.js in XPages 
• Demonstration
Angular.js in XPages 
• Demonstration 
– Running the same app on a different Domino Server
Angular.js in XPages 
• Demonstration
Angular.js in XPages 
• Behind the demonstration 
– Cross-Origin Resource Sharing (CORS) 
• Browser security 
• Preventing cross site scripting attacks 
• https://developer.mozilla.org/en- 
US/docs/Web/HTTP/Access_control_CORS
Angular.js in XPages 
• Behind the demonstration 
– Consolidating the inclusion code
Angular.js in XPages 
• Behind the demonstration 
– Consolidating the inclusion code
Angular.js in XPages 
• Directives 
– Angular.js “plugins” to run a batch of code based on an 
HTML attribute 
– Portable code which can be plugged into any application 
at any time.
Angular.js in XPages 
• Ok I care – so now what ? 
– A new paradigm of business application integration 
Write once – run anywhere? Seriously !
Angular.js in XPages 
• Ok I care – so now what ? 
– More Demonstrations 
Angular.js in XPages 
• Demonstration 
– Data Binding with an Angular Driven Chart Directive
Angular.js in XPages 
• Bluemix
Angular.js in XPages 
• Bluemix
Angular.js in XPages 
• Demonstration 
– XPages application running inside of Connections
Angular.js in XPages 
• Demonstration 
– XPages application running inside of Connections using 
the Connections Business Card API
Angular.js in XPages 
• Demonstration 
– Context specific, integrated Charting within Connections
Angular.js in XPages 
• Demonstration 
– XPages application running inside of SharePoint
Angular.js in XPages 
• Conclusion 
– Angular.js: MVC front end client side framework 
– Use Domino as a NoSQL app server 
– Modernize Domino Applications smartly 
– Running Domino apps within other server platforms 
– Make your application code portable
Angular.js in XPages 
Questions ? 
For more information on Angular.js, XPages and 
Application Modernization 
mroden@psclistens.com 
twitter: marky.roden 
skype: marky.roden

More Related Content

What's hot

Introduction To Single Page Application
Introduction To Single Page ApplicationIntroduction To Single Page Application
Introduction To Single Page Application
KMS Technology
 
Single Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.WebSingle Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.Web
Chris Canal
 
Rise of the responsive single page application
Rise of the responsive single page applicationRise of the responsive single page application
Rise of the responsive single page application
Oren Shatken
 
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
Bill Ayers
 

What's hot (20)

Introduction to SharePoint Framework (SPFx)
Introduction to SharePoint Framework (SPFx)Introduction to SharePoint Framework (SPFx)
Introduction to SharePoint Framework (SPFx)
 
Single page application and Framework
Single page application and FrameworkSingle page application and Framework
Single page application and Framework
 
ASP.NET 5 Overview
ASP.NET 5 OverviewASP.NET 5 Overview
ASP.NET 5 Overview
 
Introduction To Single Page Application
Introduction To Single Page ApplicationIntroduction To Single Page Application
Introduction To Single Page Application
 
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
 
The Dark Side of Single Page Applications
The Dark Side of Single Page ApplicationsThe Dark Side of Single Page Applications
The Dark Side of Single Page Applications
 
SharePoint PowerShell for the Admin and Developer - A Venn Diagram Experience
SharePoint PowerShell for the Admin and Developer - A Venn Diagram ExperienceSharePoint PowerShell for the Admin and Developer - A Venn Diagram Experience
SharePoint PowerShell for the Admin and Developer - A Venn Diagram Experience
 
WordPress as a Service
WordPress as a ServiceWordPress as a Service
WordPress as a Service
 
Optimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best PracticesOptimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best Practices
 
All about SPFx
All about SPFxAll about SPFx
All about SPFx
 
Keystone.js 101
Keystone.js 101Keystone.js 101
Keystone.js 101
 
Single Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.WebSingle Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.Web
 
A Gentle Introduction to Blazor
A Gentle Introduction to BlazorA Gentle Introduction to Blazor
A Gentle Introduction to Blazor
 
Single Page Application
Single Page ApplicationSingle Page Application
Single Page Application
 
Rise of the responsive single page application
Rise of the responsive single page applicationRise of the responsive single page application
Rise of the responsive single page application
 
Adobe AEM for Business Heads
Adobe AEM for Business HeadsAdobe AEM for Business Heads
Adobe AEM for Business Heads
 
Managing SharePoint Anywhere with Windows PowerShell
Managing SharePoint Anywhere with Windows PowerShellManaging SharePoint Anywhere with Windows PowerShell
Managing SharePoint Anywhere with Windows PowerShell
 
Alfresco Digital Business Platform Builder Experience
Alfresco Digital Business Platform Builder ExperienceAlfresco Digital Business Platform Builder Experience
Alfresco Digital Business Platform Builder Experience
 
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
 
Extending WordPress as a pro
Extending WordPress as a proExtending WordPress as a pro
Extending WordPress as a pro
 

Similar to Angular.js in XPages

Intro to SPA using JavaScript & ASP.NET
Intro to SPA using JavaScript & ASP.NETIntro to SPA using JavaScript & ASP.NET
Intro to SPA using JavaScript & ASP.NET
Alan Hecht
 
Transitioning Groupon to Node.js - EmpireJS 2014
Transitioning Groupon to Node.js - EmpireJS 2014Transitioning Groupon to Node.js - EmpireJS 2014
Transitioning Groupon to Node.js - EmpireJS 2014
Sean McCullough
 
Angularjs for kolkata drupal meetup
Angularjs for kolkata drupal meetupAngularjs for kolkata drupal meetup
Angularjs for kolkata drupal meetup
Goutam Dey
 
Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5
Ganesh Kondal
 

Similar to Angular.js in XPages (20)

The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...
 
[Srijan Wednesday Webinars] Developing Large Scale Applications in AngularJS
[Srijan Wednesday Webinars] Developing Large Scale Applications in AngularJS[Srijan Wednesday Webinars] Developing Large Scale Applications in AngularJS
[Srijan Wednesday Webinars] Developing Large Scale Applications in AngularJS
 
Web jobs, Azure Functions and Serverless Computing
Web jobs, Azure Functions and Serverless ComputingWeb jobs, Azure Functions and Serverless Computing
Web jobs, Azure Functions and Serverless Computing
 
Intro to SPA using JavaScript & ASP.NET
Intro to SPA using JavaScript & ASP.NETIntro to SPA using JavaScript & ASP.NET
Intro to SPA using JavaScript & ASP.NET
 
jQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesjQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPages
 
Angular Meetup 1 - Angular Basics and Workshop
Angular Meetup 1 - Angular Basics and WorkshopAngular Meetup 1 - Angular Basics and Workshop
Angular Meetup 1 - Angular Basics and Workshop
 
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
Escaping the yellow bubble - rewriting Domino using MongoDb and AngularEscaping the yellow bubble - rewriting Domino using MongoDb and Angular
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
 
TallyJS #1 - Intro to AngularJS
TallyJS #1 - Intro to AngularJSTallyJS #1 - Intro to AngularJS
TallyJS #1 - Intro to AngularJS
 
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
 
Mvvm knockout vs angular
Mvvm knockout vs angularMvvm knockout vs angular
Mvvm knockout vs angular
 
Transitioning Groupon to Node.js - EmpireJS 2014
Transitioning Groupon to Node.js - EmpireJS 2014Transitioning Groupon to Node.js - EmpireJS 2014
Transitioning Groupon to Node.js - EmpireJS 2014
 
What is Mean Stack Development ?
What is Mean Stack Development ?What is Mean Stack Development ?
What is Mean Stack Development ?
 
Overview about AngularJS Framework
Overview about AngularJS Framework Overview about AngularJS Framework
Overview about AngularJS Framework
 
Angularjs for kolkata drupal meetup
Angularjs for kolkata drupal meetupAngularjs for kolkata drupal meetup
Angularjs for kolkata drupal meetup
 
Angular JS, A dive to concepts
Angular JS, A dive to conceptsAngular JS, A dive to concepts
Angular JS, A dive to concepts
 
Mean stack
Mean stackMean stack
Mean stack
 
Building front-end apps that Scale - FOSDEM 2014
Building front-end apps that Scale - FOSDEM 2014Building front-end apps that Scale - FOSDEM 2014
Building front-end apps that Scale - FOSDEM 2014
 
Wessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdf
Wessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdfWessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdf
Wessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdf
 
Swagger - Making REST APIs friendlier
Swagger - Making REST APIs friendlierSwagger - Making REST APIs friendlier
Swagger - Making REST APIs friendlier
 
Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5
 

Recently uploaded

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 

Recently uploaded (20)

W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 

Angular.js in XPages

  • 1. Write once, run anywhere Angular.js in XPages Mark Roden PSC Group LLC Senior Solutions Architect MWLUG 2014
  • 2. About Marky Over 17 years IBM Notes Domino® work Senior Solutions Architect at PSC Group • XPages Developer • Project Leader • Angular.js Protagonist Contact Information – Blog: http://www.xomino.com – Email: marky@xomino.com – Twitter: @markyroden – Skype: marky.roden – "Come work for us - it will be fun" www.psclistens.com @pscgroup
  • 3.
  • 4. Angular.js in XPages • What is Angular.js ? • How does Angular.js integrate with XPages ? • Why do I care ? • Demonstration • Behind the demonstration • Ok I care – so now what ?
  • 6. Angular.js in XPages • What is Angular.js ? • AngularJS is a structural framework for dynamic web apps. It lets you use HTML as your template language and lets you extend HTML's syntax to express your application's components clearly and succinctly. Angular's data binding and dependency injection eliminate much of the code you currently have to write.
  • 7. Angular.js in XPages • What is Angular.js ? • MVC web framework to model your application using client side JavaScript as opposed to Server side code. – The Model is the data created by the application – The View is the HTML representation of the data through the use of Templates – The Controller is the application code which is used to determine the way the Model is populated and displayed.
  • 8. Angular.js in XPages • How does Angular.js integrate with XPages ? http://xomino.com/category/angular-in-xpages/ • Domino is the original NoSQL database – Secure – XPages is Domino with a Java Server Faces server – Multiple options for data retrieval • Domino Data Services • Custom Rest Service • ExtLib Rest Service • ?ReadViewEntries
  • 9. Angular.js in XPages • How does Angular.js integrate with XPages ? • An application written using Angular.js uses 4 main things – HTML Pages – JavaScript files – CSS – A Data Service • One or many of those can be “XPages”
  • 10. Angular.js in XPages • How does Angular.js integrate with XPages ? • HTML and JavaScript in the WebContent folder
  • 11. Angular.js in XPages • How does Angular.js integrate with XPages ? • Data from the server via Domino Data Services
  • 12. Angular.js in XPages • How does Angular.js integrate with XPages ? • Code written in *anything* including (but mostly excluding) Domino Designer – Notepad – Notepad++ – JetBrainsWebStorm
  • 13. Angular.js in XPages • How does Angular.js integrate with XPages ? – Hook WebStorm up to the On Disk Structure of your DB
  • 14. Angular.js in XPages • How does Angular.js work? – Model • Domino Data – View • HTML – Controller • JavaScript
  • 15. Angular.js in XPages • How does Angular.js work? Model View
  • 16. Angular.js in XPages • How does Angular.js work? – PersonDetailCtrl C .createPerson() R .getPerson() U .savePerson() D .deletePerson()
  • 17. Angular.js in XPages • How does Angular.js work? Controller
  • 18. Angular.js in XPages • Why do I care? • Business Perspective – Requirements – Customers • Personal Perspective – Web development – Increasingly popular – Too bleeding edge for Enterprise today but they will catch up eventually
  • 19. Angular.js in XPages • Why do I care? • Requirements – Mixed technology production environment – Multiple Web Server environment – Pressure on existing Notes applications to Modernize or Die?
  • 20. Angular.js in XPages • Why do I care? • Requirements – Because you want a subset of one application’s functionality to appear in another application – Dashboards • Charts • Reports – Functional decision making across systems
  • 21. Angular.js in XPages • Demonstration • People application 1. Running independently on Domino 2. Running within another application 3. Running on different Domino Server
  • 22. Angular.js in XPages • Demonstration • Basic People application – Add new People – Edit – Delete
  • 23. Angular.js in XPages • Demonstration
  • 24. Angular.js in XPages • Demonstration
  • 25. Angular.js in XPages • Demonstration
  • 26. Angular.js in XPages • Demonstration – Including the application to a new Domino site
  • 27. Angular.js in XPages • Demonstration
  • 28. Angular.js in XPages • Demonstration – Running the same app on a different Domino Server
  • 29. Angular.js in XPages • Demonstration
  • 30. Angular.js in XPages • Behind the demonstration – Cross-Origin Resource Sharing (CORS) • Browser security • Preventing cross site scripting attacks • https://developer.mozilla.org/en- US/docs/Web/HTTP/Access_control_CORS
  • 31. Angular.js in XPages • Behind the demonstration – Consolidating the inclusion code
  • 32. Angular.js in XPages • Behind the demonstration – Consolidating the inclusion code
  • 33. Angular.js in XPages • Directives – Angular.js “plugins” to run a batch of code based on an HTML attribute – Portable code which can be plugged into any application at any time.
  • 34. Angular.js in XPages • Ok I care – so now what ? – A new paradigm of business application integration Write once – run anywhere? Seriously !
  • 35. Angular.js in XPages • Ok I care – so now what ? – More Demonstrations 
  • 36. Angular.js in XPages • Demonstration – Data Binding with an Angular Driven Chart Directive
  • 37. Angular.js in XPages • Bluemix
  • 38. Angular.js in XPages • Bluemix
  • 39. Angular.js in XPages • Demonstration – XPages application running inside of Connections
  • 40. Angular.js in XPages • Demonstration – XPages application running inside of Connections using the Connections Business Card API
  • 41. Angular.js in XPages • Demonstration – Context specific, integrated Charting within Connections
  • 42. Angular.js in XPages • Demonstration – XPages application running inside of SharePoint
  • 43. Angular.js in XPages • Conclusion – Angular.js: MVC front end client side framework – Use Domino as a NoSQL app server – Modernize Domino Applications smartly – Running Domino apps within other server platforms – Make your application code portable
  • 44. Angular.js in XPages Questions ? For more information on Angular.js, XPages and Application Modernization mroden@psclistens.com twitter: marky.roden skype: marky.roden