SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

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
 
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
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 

Kürzlich hochgeladen (20)

Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
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
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
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
 
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
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
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
 
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 🔝✔️✔️
 
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-...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
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
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
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
 
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
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 

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