modern web development

36

Upload: maurice-beijer

Post on 20-Dec-2014

2.704 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Modern web development
Page 2: Modern web development

Modern web development

Maurice de Beijer

Page 3: Modern web development

Wie ben ik

• Maurice de Beijer• The Problem Solver• Microsoft Integration MVP• DevelopMentor instructor• Twitter: @mauricedb• Blog: http://msmvps.com/blogs/theproblemsolver/

• Web: http://www.HTML5Support.nl• E-mail: [email protected]

Page 4: Modern web development

Agenda• CSS3

– LESS– Web Essentials 2012

• JavaScript– Asynchronous Module Definition– TypeScript– Frameworks/Libraries

• Communicatie– MVC met een JSON resultaat– WebApi– SignalR

Page 8: Modern web development

CSS 3• Transformaties• Transities• Ronde hoeken• Transparantie• :before en :after pseudo elementen• Media queries

Page 9: Modern web development

Ondersteuning

Page 10: Modern web development

Soms is er een prefix nodig

Page 11: Modern web development

LESS• The Dynamic Stylesheet language• Wordt veel gebruikt voor

complexe CSS– Bootstrap– Semantic

Page 12: Modern web development

LESS is CSS met ...• Variabelen• Functies• Hiërarchie

Page 13: Modern web development

Web Essentials 2012• CSS3 IntelliSense• LESS• TypeScript• ZenCoding• CSS/JavaScript Minification

Page 14: Modern web development

demoCSS3 en LESS

Page 15: Modern web development

JavaScript Ontwikkeling• Asynchronous Module Definition• TypeScript• Frameworks/Libraries

Page 16: Modern web development

Asynchronous Module Definition

• ECMAScript6 module loader– De toekomst

• RequireJS– Een veelgebruikte JavaScript module

loader

Page 17: Modern web development

Global Namespace Pollution

Page 18: Modern web development

Een module

Page 19: Modern web development

Veel script referenties

Page 20: Modern web development

RequireJS

Page 21: Modern web development

demoRequireJS

Page 22: Modern web development

TypeScript

TypeScript is a language for application-scale JavaScript

development. TypeScript is a typed superset of JavaScript that compiles

to plain JavaScript. Any browser. Any host. Any OS. Open Source.

Page 23: Modern web development

TypeScript• Geeft ons ECMAScript 6 features– Classes– Interfaces–Modules

• Een super set van JavaScript

Page 24: Modern web development

TypeScript• Een type checking compiler• Kan declaratie bestanden

gebruiken– Zie DefinitelyTyped

Page 25: Modern web development

demoTypeScript

Page 26: Modern web development

Frameworks/Libraries• Backbone• Angular• Ember• Knockout• Sencha Ext JS• ...

Page 28: Modern web development

Communicatie• Verschillende opties–MVC controller met JSON–WebAPI– SignalR

Page 29: Modern web development

MVC controller met JSON• Simpel te doen is ASP.NET MVC• Soms goed genoeg voor eigen

websites– Hou rekening met caching!

Page 30: Modern web development

WebApi• Om een REST service te maken– Lijkt sterk op ASP.NET MVC

• Gebruikt content negotiation– Standaard XML en JSON

• OData ondersteuning– Filter, sortering etc

Page 31: Modern web development

Een WebAPI Controllerpublic class BooksController : ApiController{ public IQueryable<Book> GetBook() { }

public HttpResponseMessage GetBook(int id) { }

public Book PutBook(Book book) { }

public HttpResponseMessage<Book> Post(Book book) { }

public void DeleteBook(int id) { }}

Page 32: Modern web development

SignalR• Geeft ook push notificatie – Kan erg nuttig zijn in multi user

applicaties

• Gebruikt WebSockets als het kan– Valt anders terug op een ander

protocol

Page 33: Modern web development

Een SignalR hubpublic class BooksHub: Hub{ public IEnumerable<Book> GetBooks() { var books = _repo.GetBooks(); return books; }

public void UpdateBook(Book book) { var newBook = _repo.UpdateBook(book); this.Clients.bookUpdated(newBook); }}

Page 34: Modern web development

SignalR JavaScript<script src="~/Scripts/jquery.signalR-1.0.0.js"></script><script src="~/signalr/hubs"></script><script> $(function () { var hub = $.connection.booksHub; hub.client.bookUpdated = function (book) { };

function loadBooks() { hub.server.getBooks().then(function (books) { }); }

$("#updateBook").submit(function (e) { hub.server.updateBook(book); });

$.connection.hub.start(loadBooks); });</script>

Page 35: Modern web development

demoSignalR

Page 36: Modern web development

Conclusie• Het web is niet meer wat het

geweest is– Gebruikers verwachten steeds meer

• LESS maakt CSS makkelijker• TypeScript maakt JavaScript beter• WebAPI en SignalR–Maken communicatie beter