SlideShare uma empresa Scribd logo
1 de 26
@bojanv91

Angular JS + NancyFx + MongoDB =
Ultimate Trio For Building SPA apps
Bojan Veljanovski,
Software Engineer &
Lead Technology Researcher,

HASELT
@bojanv91

Bojan Veljanovski
Software Engineer and
Lead Technology Researcher, HASELT
Microsoft Certified Professional
Technical Speaker
 Ex - Microsoft Student Partner
 Co-Founding member, Leader & Speaker of FINKI Tech
Club
“It's not longer good enough to build
web apps around full page loads and
then progressively enhance them to
behave more dynamically .”
- Throne of JS Conference, 2012
Traditional Web App
Server

Browser

Page HTML

Web Page
Navigate

Page HTML

Web Page
Next-Gen Web
The web is moving to the client
What’s in the session?
What is Single Page Application
– and why it matters

Basic concepts for successful SPA
– and tools for building it

How to build complete end-to-end SPA
in few steps
– e.g. Let’s c0de!
What is SPA?
Rich and responsive web application
All HTML/CSS/JS are loaded onto one page
New content is pulled via AJAX
UI interactions are handled in the browser
Examples:
– GitHub, Gmail, Azure Management Portal
Characteristics of good SPAs
Based on HTML, CSS and JavaScript
Does NOT break the browser
Fast and responsive
– Should feel like native application

Reduces server overhead
How SPA works
Web UI
HTML/CSS/JS

REST Services
JSON / XML

Server

Client
Common SPA features
MVC - based
Data-binding (2-way)
Declarative programming
Routing
Encourages modularization
Frameworks & Libraries
Angular.js
Very light framework
Large community
Great documentation
Encourages good design patterns
Ideal for CRUD apps
Angular.js 101
Angular.js 102
Angular.js – Full Stack
Nancy (Back-end)
Lightweight framework for building HTTP
services
Open Source C#/.NET/Mono
Inspired by Sinatra from Ruby world
You can write Hello World Nancy app into a
single tweet (DEMO!)
MongoDB (Storage)
NoSQL
Open-source
Document-oriented storage
– JSON-style documents

Scalable
LINQ support with C# driver
Source Code of the Demo on GitHub: http://bit.ly/JqrJWm

LET’S C0DE
Outcomes from the SPA approach
Front-end becomes almost Native
Back-end becomes just Clean and Thin API
Storage becomes natural for the Web (JSON)
Use cases when to go to SPA…
Highly interactive web apps
Data intensive web apps
Mobile web apps
– With offline support (cache manifest, local
storage)

Apps meant to be used for long continuous
period
…but careful, SPA roads are bumpy
Code duplication on client and server can
occur
Secure your APIs
SPA stacks depend on many 3-rd party
libraries, beware of compatibility issues
Step learning curve
Strong JavaScript skills are required
Questions?
 Complete electronic evaluation
forms on the computers in the
hall and enter to win!
– Telerik Ultimate Collection
– CodeSmith Tools Generator Pro
Personal
– JetBrains ReSharper
– Seavus EDC training vouchers
– Pluralsight subscriptions
– and many more…
AngularJS + NancyFx + MongoDB = The best trio for ultimate SPA by Bojan Veljanovski

Mais conteúdo relacionado

Mais procurados

Choosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkitChoosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkit
Hristo Chakarov
 

Mais procurados (20)

Building a Node.JS accelerator for your headless Drupal backend - DrupalCamp ...
Building a Node.JS accelerator for your headless Drupal backend - DrupalCamp ...Building a Node.JS accelerator for your headless Drupal backend - DrupalCamp ...
Building a Node.JS accelerator for your headless Drupal backend - DrupalCamp ...
 
PHP Indonesia - Nodejs Web Development
PHP Indonesia - Nodejs Web DevelopmentPHP Indonesia - Nodejs Web Development
PHP Indonesia - Nodejs Web Development
 
Introduction to mean stack
Introduction to mean stackIntroduction to mean stack
Introduction to mean stack
 
Angular js introduction
Angular js introductionAngular js introduction
Angular js introduction
 
Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS
 
Kick start your journey as mern stack developer
Kick start your journey as mern stack developerKick start your journey as mern stack developer
Kick start your journey as mern stack developer
 
MEAN Stack - Google Developers Live 10/03/2013
MEAN Stack - Google Developers Live 10/03/2013MEAN Stack - Google Developers Live 10/03/2013
MEAN Stack - Google Developers Live 10/03/2013
 
Choosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkitChoosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkit
 
LAMP is so yesterday, MEAN is so tomorrow! :)
LAMP is so yesterday, MEAN is so tomorrow! :) LAMP is so yesterday, MEAN is so tomorrow! :)
LAMP is so yesterday, MEAN is so tomorrow! :)
 
MEAN Stack Warm-up
MEAN Stack Warm-upMEAN Stack Warm-up
MEAN Stack Warm-up
 
Javascript Frameworks Comparison
Javascript Frameworks ComparisonJavascript Frameworks Comparison
Javascript Frameworks Comparison
 
Mean Stack - An Overview
Mean Stack - An OverviewMean Stack - An Overview
Mean Stack - An Overview
 
Unobtrusive js
Unobtrusive jsUnobtrusive js
Unobtrusive js
 
On Selecting JavaScript Frameworks (Women Who Code 10/15)
On Selecting JavaScript Frameworks (Women Who Code 10/15)On Selecting JavaScript Frameworks (Women Who Code 10/15)
On Selecting JavaScript Frameworks (Women Who Code 10/15)
 
Angular 2 vs React
Angular 2 vs ReactAngular 2 vs React
Angular 2 vs React
 
Introduction to the MEAN stack
Introduction to the MEAN stackIntroduction to the MEAN stack
Introduction to the MEAN stack
 
Evolution of java script libraries
Evolution of java script librariesEvolution of java script libraries
Evolution of java script libraries
 
Mean PPT
Mean PPTMean PPT
Mean PPT
 
Mean stack
Mean stackMean stack
Mean stack
 
Getting Started with React Native (and should I use it at all?)
Getting Started with React Native (and should I use it at all?)Getting Started with React Native (and should I use it at all?)
Getting Started with React Native (and should I use it at all?)
 

Semelhante a AngularJS + NancyFx + MongoDB = The best trio for ultimate SPA by Bojan Veljanovski

Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum Slides
Abhishek Gupta
 
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code CampDoing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Chris Love
 

Semelhante a AngularJS + NancyFx + MongoDB = The best trio for ultimate SPA by Bojan Veljanovski (20)

Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | Introduction
 
Java script framework
Java script frameworkJava script framework
Java script framework
 
What is mean stack?
What is mean stack?What is mean stack?
What is mean stack?
 
Modern JavaScript Frameworks: Angular, React & Vue.js
Modern JavaScript Frameworks: Angular, React & Vue.jsModern JavaScript Frameworks: Angular, React & Vue.js
Modern JavaScript Frameworks: Angular, React & Vue.js
 
Introduction to backbone_js
Introduction to backbone_jsIntroduction to backbone_js
Introduction to backbone_js
 
Important Backend Frameworks To Remember For Businesses In 2023
Important Backend Frameworks To Remember For Businesses In 2023Important Backend Frameworks To Remember For Businesses In 2023
Important Backend Frameworks To Remember For Businesses In 2023
 
Food borne human diseases
Food borne human diseasesFood borne human diseases
Food borne human diseases
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum Slides
 
AFTAB AHMED.pptx
AFTAB AHMED.pptxAFTAB AHMED.pptx
AFTAB AHMED.pptx
 
Building Applications With the MEAN Stack
Building Applications With the MEAN StackBuilding Applications With the MEAN Stack
Building Applications With the MEAN Stack
 
webdevelopmentppt-210923044639 (1).pptx
webdevelopmentppt-210923044639 (1).pptxwebdevelopmentppt-210923044639 (1).pptx
webdevelopmentppt-210923044639 (1).pptx
 
TECHNOLOGY FOR BACK-END WEB DEVELOPMENT: SERVER-SIDE SCRIPTING
TECHNOLOGY FOR BACK-END WEB DEVELOPMENT: SERVER-SIDE SCRIPTING TECHNOLOGY FOR BACK-END WEB DEVELOPMENT: SERVER-SIDE SCRIPTING
TECHNOLOGY FOR BACK-END WEB DEVELOPMENT: SERVER-SIDE SCRIPTING
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by Google
 
Introduction to Web Frameworks
Introduction to Web FrameworksIntroduction to Web Frameworks
Introduction to Web Frameworks
 
PHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolPHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the fool
 
Top 10 Node.JS Frameworks To Gear Up Your Web App Development in 2021
Top 10 Node.JS Frameworks To Gear Up Your Web App Development in 2021Top 10 Node.JS Frameworks To Gear Up Your Web App Development in 2021
Top 10 Node.JS Frameworks To Gear Up Your Web App Development in 2021
 
Top 10 Javascript Frameworks For Easy Web Development
Top 10 Javascript Frameworks For Easy Web DevelopmentTop 10 Javascript Frameworks For Easy Web Development
Top 10 Javascript Frameworks For Easy Web Development
 
Web development ppt
Web development pptWeb development ppt
Web development ppt
 
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code CampDoing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
 
Connect js nodejs_api_shubhra
Connect js nodejs_api_shubhraConnect js nodejs_api_shubhra
Connect js nodejs_api_shubhra
 

Mais de Bojan Veljanovski

Quick look at Web Components and Project Polymer - MKNET UG
Quick look at Web Components and Project Polymer - MKNET UGQuick look at Web Components and Project Polymer - MKNET UG
Quick look at Web Components and Project Polymer - MKNET UG
Bojan Veljanovski
 

Mais de Bojan Veljanovski (7)

CodeCamp 2018 - Architecting Systems with CQRS - Four Years Experience Report...
CodeCamp 2018 - Architecting Systems with CQRS - Four Years Experience Report...CodeCamp 2018 - Architecting Systems with CQRS - Four Years Experience Report...
CodeCamp 2018 - Architecting Systems with CQRS - Four Years Experience Report...
 
NoSQL document oriented data access for .net systems with postgresql and marten
NoSQL document oriented data access for .net systems with postgresql and martenNoSQL document oriented data access for .net systems with postgresql and marten
NoSQL document oriented data access for .net systems with postgresql and marten
 
DIGIT Noe 2016 - Overview of front end development today
DIGIT Noe 2016 - Overview of front end development todayDIGIT Noe 2016 - Overview of front end development today
DIGIT Noe 2016 - Overview of front end development today
 
Bojan Veljanovski - Modular Software Architecture and Design (Code Camp 2016)
Bojan Veljanovski - Modular Software Architecture and Design (Code Camp 2016)Bojan Veljanovski - Modular Software Architecture and Design (Code Camp 2016)
Bojan Veljanovski - Modular Software Architecture and Design (Code Camp 2016)
 
Vertical Slices in .NET - Bojan Veljanovski, March 2016, MK.NET UG
Vertical Slices in .NET - Bojan Veljanovski, March 2016, MK.NET UGVertical Slices in .NET - Bojan Veljanovski, March 2016, MK.NET UG
Vertical Slices in .NET - Bojan Veljanovski, March 2016, MK.NET UG
 
Quick look at Web Components and Project Polymer - MKNET UG
Quick look at Web Components and Project Polymer - MKNET UGQuick look at Web Components and Project Polymer - MKNET UG
Quick look at Web Components and Project Polymer - MKNET UG
 
Real-world software design practices when developing ASP.NET web systems by B...
Real-world software design practices when developing ASP.NET web systems by B...Real-world software design practices when developing ASP.NET web systems by B...
Real-world software design practices when developing ASP.NET web systems by B...
 

Último

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
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...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
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...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
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...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

AngularJS + NancyFx + MongoDB = The best trio for ultimate SPA by Bojan Veljanovski

  • 1. @bojanv91 Angular JS + NancyFx + MongoDB = Ultimate Trio For Building SPA apps Bojan Veljanovski, Software Engineer & Lead Technology Researcher, HASELT
  • 2.
  • 3. @bojanv91 Bojan Veljanovski Software Engineer and Lead Technology Researcher, HASELT Microsoft Certified Professional Technical Speaker  Ex - Microsoft Student Partner  Co-Founding member, Leader & Speaker of FINKI Tech Club
  • 4. “It's not longer good enough to build web apps around full page loads and then progressively enhance them to behave more dynamically .” - Throne of JS Conference, 2012
  • 5. Traditional Web App Server Browser Page HTML Web Page Navigate Page HTML Web Page
  • 6. Next-Gen Web The web is moving to the client
  • 7. What’s in the session? What is Single Page Application – and why it matters Basic concepts for successful SPA – and tools for building it How to build complete end-to-end SPA in few steps – e.g. Let’s c0de!
  • 8. What is SPA? Rich and responsive web application All HTML/CSS/JS are loaded onto one page New content is pulled via AJAX UI interactions are handled in the browser Examples: – GitHub, Gmail, Azure Management Portal
  • 9. Characteristics of good SPAs Based on HTML, CSS and JavaScript Does NOT break the browser Fast and responsive – Should feel like native application Reduces server overhead
  • 10. How SPA works Web UI HTML/CSS/JS REST Services JSON / XML Server Client
  • 11. Common SPA features MVC - based Data-binding (2-way) Declarative programming Routing Encourages modularization
  • 13.
  • 14. Angular.js Very light framework Large community Great documentation Encourages good design patterns Ideal for CRUD apps
  • 18.
  • 19. Nancy (Back-end) Lightweight framework for building HTTP services Open Source C#/.NET/Mono Inspired by Sinatra from Ruby world You can write Hello World Nancy app into a single tweet (DEMO!)
  • 20. MongoDB (Storage) NoSQL Open-source Document-oriented storage – JSON-style documents Scalable LINQ support with C# driver
  • 21. Source Code of the Demo on GitHub: http://bit.ly/JqrJWm LET’S C0DE
  • 22. Outcomes from the SPA approach Front-end becomes almost Native Back-end becomes just Clean and Thin API Storage becomes natural for the Web (JSON)
  • 23. Use cases when to go to SPA… Highly interactive web apps Data intensive web apps Mobile web apps – With offline support (cache manifest, local storage) Apps meant to be used for long continuous period
  • 24. …but careful, SPA roads are bumpy Code duplication on client and server can occur Secure your APIs SPA stacks depend on many 3-rd party libraries, beware of compatibility issues Step learning curve Strong JavaScript skills are required
  • 25. Questions?  Complete electronic evaluation forms on the computers in the hall and enter to win! – Telerik Ultimate Collection – CodeSmith Tools Generator Pro Personal – JetBrains ReSharper – Seavus EDC training vouchers – Pluralsight subscriptions – and many more…

Notas do Editor

  1. Views, Models, Controllers, $scope the glue between them
  2. Inspired by Sinatra (Ruby DSL for building web apps)The goal is to stay away as much as possible and provide-super-duper happy path to all interactionspublic class Module : NancyModule { public Module() { Get["/greet/{name}"] = x => { return string.Concat("Hello ", x.name); }; } }