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

Post on 20-Jun-2015

4.938 views 4 download

Tags:

description

The complete demo project from my CodeCamp's 2013 session "AngularJS + NancyFx + MongoDB = The best trio for ultimate SPA" can be found on github: http://bit.ly/JqrJWm

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

Angular JS + NancyFx + MongoDB = Ultimate Trio For Building SPA apps

Bojan Veljanovski,Software Engineer &

Lead Technology Researcher,

HASELT

@bojanv91

Bojan VeljanovskiSoftware Engineer and

Lead Technology Researcher, HASELTMicrosoft Certified ProfessionalTechnical Speaker

Ex - Microsoft Student Partner Co-Founding member, Leader & Speaker of FINKI Tech

Club

@bojanv91

“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

Web Page

Web PagePage HTML

Server Browser

Navigate

Page HTML

Next-Gen WebThe 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 applicationAll HTML/CSS/JS are loaded onto one pageNew content is pulled via AJAXUI interactions are handled in the browserExamples: – GitHub, Gmail, Azure Management Portal

Characteristics of good SPAs

Based on HTML, CSS and JavaScriptDoes NOT break the browserFast and responsive– Should feel like native application

Reduces server overhead

How SPA works

Server Client

Web UIHTML/CSS/JS

REST Services

JSON / XML

Page Load (index.html)

Common SPA features

MVC - basedData-binding (2-way)Declarative programmingRouting Encourages modularization

Frameworks & Libraries

Angular.js

Very light frameworkLarge communityGreat documentation Encourages good design patternsIdeal 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/MonoInspired by Sinatra from Ruby worldYou can write Hello World Nancy app into a

single tweet (DEMO!)

NoSQLOpen-sourceDocument-oriented storage– JSON-style documents

Scalable LINQ support with C# driver

MongoDB (Storage)

LET’S C0DE

Source Code of the Demo on GitHub: http://bit.ly/JqrJWm

Outcomes from the SPA approach

Front-end becomes almost NativeBack-end becomes just Clean and Thin APIStorage becomes natural for the Web (JSON)

Use cases when to go to SPA…

Highly interactive web appsData intensive web appsMobile 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 issuesStep learning curveStrong 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…