javascript tar hevn
DESCRIPTION
Presentasjon holdt på MVP Live 2012. Kode finnes her: https://github.com/fossmo/todolistTRANSCRIPT
![Page 2: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/2.jpg)
De som har begravet Javascript må tenke om igjen.
![Page 3: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/3.jpg)
AGENDA
Hvorfor lære Javascript?
Rammeverk
Nodejs og Windows Azure
![Page 4: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/4.jpg)
Hvorfor lære Javascript?
JavaScript is a prototype-based scripting
language that is dynamic,
weakly typed and has first-class functions. It is a
multi-paradigm language,
supporting object-oriented, imperative, and
functional programming styles.
Wikipedia.com
![Page 5: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/5.jpg)
![Page 6: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/6.jpg)
Hvorfor lære Javascript?
![Page 7: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/7.jpg)
![Page 8: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/8.jpg)
Nytt
webprogrammerings
rammeverk
![Page 9: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/9.jpg)
![Page 10: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/10.jpg)
JA
VA
SC
RIP
TK
LIE
NT
SE
RV
ER
DA
TA
BA
SE
![Page 11: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/11.jpg)
![Page 12: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/12.jpg)
![Page 13: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/13.jpg)
OVERBEVIST?
![Page 14: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/14.jpg)
RAMMEVERK
![Page 15: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/15.jpg)
“One page”
Prosessering
Spine.js
MVC/MVVM
JSONJSON
![Page 16: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/16.jpg)
MVVM:
Model datastruktur
ViewModel presentasjon
View viser data
Alle
nettlesere
Declarative binding
Bruker “data-bind”
for å binde til
modellen
Bindinger:
visible, text, html, css
, style, attr, template
click, event, submit,
enable, disable, valu
e, checked, options,
selectionOptions, uni
queName
Holder orden på endringer
i viewmodellen oppdater
GUI.
Endringer “trackes” med:
ko.observable(<type>)
Ko.observableArray(<array>)
Utvidbar
Observable
(Silverlight)Knockoutjs.com
Gjør deg effektiv!
![Page 17: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/17.jpg)
TODO
![Page 18: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/18.jpg)
![Page 19: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/19.jpg)
function Task(description, minutes) {
var self = this;
self.description = ko.observable(description);
self.minutes = ko.observable(minutes);
};
TODO
Opprett modellen
![Page 20: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/20.jpg)
function TasksViewModel() {
var self = this;
self.tasks = ko.observableArray([
new Task("Forstå hvordan knockoutjs fungerer.", "25"),
new Task("Spise lunsj", "60")
]);
self.totalMinutes = ko.computed(function(){
var total = 0;
$.each(self.tasks(), function(){ total +=
parseInt(this.minutes()) })
return total;
});
self.removeTask = function(task) { self.tasks.remove(task) };
};
TODOTODO
Opprett modellen
![Page 21: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/21.jpg)
<div data-bind="foreach: tasks" class="tasks">
<div data-bind="text: description" class="text"></div>
<div data-bind="text: minutes" class="number"></div>
<div class="tools">
<a href="#" data-bind="click: $parent.removeTask"></a>
</div>
TODOTODO
Opprett HTML
![Page 22: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/22.jpg)
<script type=“text/javascript”>
ko.applyBindings(tasksViewModel);
</script>
TODOTODO
Legg til binding
![Page 23: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/23.jpg)
DEMO
![Page 24: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/24.jpg)
En “gammel” og gjennomprøvd teknologi er ofte det beste!
NODE.JS har tatt den “gamle” teknologine til et nytt miljø
![Page 25: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/25.jpg)
Nodejs og Azure node.js
Why bother with node at all? (…) It uses a
very fast JavaScript engine called V8, but
more importantly its I/O is asynchronous
and event-driven which contrasts with
typical synchronous code.
Scott Hanselman,
Microsoft Principal Program Manager
![Page 26: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/26.jpg)
I/O asyncronous
Community
Microsoft(Node.js Developer
Center)
IISNode
Windows Azure
Express.js
NPM(search.npmjs.org)
Nodejs.org
![Page 27: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/27.jpg)
IISNODE
Process
managment
Side-om-side med
andre
applikasjoner
Skalering over
flere kjerner
Oppdatere
automatisk når
skript filer endres
process.env.PORT
Integrert med IIS
sitt konfigurasjons
system
Tomasz Janczuk
Microsoft
![Page 28: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/28.jpg)
DEMO
![Page 29: Javascript tar hevn](https://reader035.vdocuments.net/reader035/viewer/2022062308/5599787c1a28ab18528b4729/html5/thumbnails/29.jpg)
Oppsummering
Javascript
gjennom alle lag!
Windows 8
TV
Knockout.js
Azure
Effektiv
Cloud9IISNode