spangulumbraco

28
spangulumbraco Single Page Applications with Angular and Umbraco Rene Pjengaard Tech Lead at Skybrud.dk @pjengaard Filip Bruun Bech-Larsen Frontend Manager at IMPACT @filipbech

Upload: filip-bruun-bech-larsen

Post on 19-Jan-2017

152 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Spangulumbraco

spangulumbracoSingle Page Applications with Angular and Umbraco

Rene PjengaardTech Lead at Skybrud.dk@pjengaard

Filip Bruun Bech-LarsenFrontend Manager at IMPACT@filipbech

Page 2: Spangulumbraco

So what is a SPA anyway

• Web-app that handles routing between states based on urls

Page 3: Spangulumbraco

Why would anybody want that?

• User experience

• Animating page-transitions

• Performance

• Preloading

• Less parsing

• Only send diffs

• Caching

Page 4: Spangulumbraco

How is it done• Simple

• Everything up front

• Advanced

• Everything is dynamic

Page 5: Spangulumbraco

In Angular 1.x today • UI.router

• state()

Page 6: Spangulumbraco
Page 7: Spangulumbraco
Page 8: Spangulumbraco
Page 9: Spangulumbraco
Page 10: Spangulumbraco

What can Umbraco give us?

• API´s to handle navigation, content and settings

• Cache invalidation

• Initial template

• Grid as data

Page 11: Spangulumbraco
Page 12: Spangulumbraco
Page 13: Spangulumbraco

Invalid cache when…• you deploy new JS files

• content changes from Umbraco editors

Page 14: Spangulumbraco

How?• Watchers

• FileWatcher

• ContentWatcher

Page 15: Spangulumbraco
Page 16: Spangulumbraco
Page 17: Spangulumbraco
Page 18: Spangulumbraco

One template to rule them all

Page 19: Spangulumbraco

Grid as data• Skybrud.Umbraco.GridData by @abjerner

• Create SpaGridJsonConverter

• Create GridValueConverter for each grid datatype

• Register SpaGridJsonConverter in IApplicationStartup

• Decorate your grid-property on your models

Page 20: Spangulumbraco
Page 21: Spangulumbraco

GridContent

Page 22: Spangulumbraco
Page 23: Spangulumbraco

Animations

Page 24: Spangulumbraco
Page 25: Spangulumbraco

What are the gotchas• Initial content => SEO / indexing

• Cache-invalidation

• Memory management in JS

• JS dependency

• document.write

• no on-load. Manually handle analytics

Page 26: Spangulumbraco

Links

https://github.com/skybrud/sky-gridhttps://github.com/skybrud/sky-spa

https://github.com/skybrud/sky-spa-api-example-code

http://made.dk/http://essfood.com/

http://www.roskilde-gymnasium.dk/

Page 27: Spangulumbraco

Thats itquestions?

Rene PjengaardTech Lead at Skybrud.dk@pjengaard

Filip Bruun Bech-LarsenFrontend Manager at IMPACT@filipbech

Page 28: Spangulumbraco