Gezien op Techdays 2014 Dag 2 Liveblog

Na een kort nachtje zijn we weer aanwezig bij de tweede dag van de Techdays. Het programma van deze dag is veel gevarieerder. Dus het belooft een leuke dag te worden.

Ook dit keer even een disclaimer: ik type live mee met een Surface RT inclusief toetsenbord op schoot. Ik zit meestal op een te krap stoeltje of zelfs op een kartonnen krukje buiten de zaal als deze al vol is. Excuses dus voor de typos.

HTML5: A Canvas Deep Dive

Christian Peeters

Het Canvas is een element in HTML5. Je kunt er weinig op instellen, alles gebeurt in JavaScript. Denk aan tekenen van lijnen, blokken, cirkels, plaatsjes, etc…

En Het is Fire&Forget. Iets wat getekend is, kan niet meer aangepast worden (zoals verplaatsen, vergroten). Hierdoor is het wel bloedje snel want het canvas hoeft niks te onthouden. De rest moeten we zelf doen.

Het canvas kan goed met 2D omgaan. En sinds de introductie van WebGL kan ook beperkt 3D ondersteunen.

Christian gaf een aantal korte demo’s die standaard gereedschap van het canvas toonde. Leuk was de combinatie van drag/drop/gravity/friction. Maar dit was maar één balletje. Maar het bleef performen tot aan 5000 elementen. Bij 1000 balletjes bleek het scherm nog op 50FPS te zitten. En de tijd ging vooral in het uitvoeren van JavaScript te zitten.

Tip: Teken niet vaker dan de refreshrate van het scherm. Zet de window interval op een deelbare factor van de refreshrate.

Tip: teken niet als het scherm niet getoond is. Pauseer dan. Gebruik hiervoor de RequestAnimationFrame() (let op backwards compatibility).

Daarna vertelde Christian over het gebruik van Sprites. Dus uit een grote bitmap wordt een stuk uitgesneden en getoond. Denk aan een rennend mannetje. Je toont dan enkele deelgebieden van een plaatje met daarin meerdere riddertjes er in. Verbazend hoe makkelijk een springend riddertje tegen een bewegende achtergrond getoond werd.

Tip: voorkom subpixel tekenen. Dit is echt traag, zeker 10 procent. Rond dus posities af of pak slimme getallen.

Tip: voorkom teveel downloads. CSS Sprites zijn slimmer.

Tip: gebruik webworkers. Dit is threading in javascript.

Een webworker is een bestand met een onmessage functie die werk uitvoert en de uitkomst in een postmessage teruig stuurt.

Tip: Tekst/drop shadows tekenen is erg traag! Teken tekst op een subcanvas (soort van prerenderen). En teken dat canvas op het hoofdcanvas.

Tip: Teken een inerte background in een aparte canvas.

Tip: uitvragen van collision kan door transparantie uit te vragen. Zit er geen plaatje dan is er geen collision.

Tip: touch ondersteuning. Zet touch ondersteuning van canvas op None, let bij oudere browsers op nevengedrag. En de OnMouseMove kan vervangen worden door de ONPointerMove. Dit geeft veel meer informatie.

Als je het hele canvas wilt draaien/kantelen/transformeren/scewing gebruik daar css voor.

Dan video, wat kan het canvas daarbij betekenen?

Christian demonstreerde een GreenScreen effect. Erg gaaf.

Ook een webcam was erg eenvoudig te integreren op het canvas. Christian demonstreerde een vorm van motioncaption op het canvas. Heel grappig en eigenlijk heel simpel. Hij trok uit de videostream twee beeldjes van elkaar af.

3D is leuk maar WebGL is niet prettig. Gelukkig ondersteunt Microsoft Babylon. Er was ook een Three bibliotheek demo.

Christian, dankjewel voor de leuke presentatie en de koffie!

 

Xamarin: mobiele store-ready en native apps voor ios/android in c#

Roland Guijt

Xamarin maakt het mogelijk om met C# native apps te bouwen. Het is gebaseerd op Mono. En het heeft een runtime. Apple wilt geen runtime toestaan. Voor IOS hebben ze dus de app en de runtime voorgecompileerd.

De snelheid is dus net zo goed als een native app. De footprint is wel wat groter, denk aan 2,5 mb.

Capabilities/sensors zijn gevat in c# classes. En ze lijken heel veel op de oplossing van het onderliggende platform. Helaas is dit dus UI specifiek want platform specifiek. MVVM Cross heeft hier een oplossing voor.

Xamarin bouw je in de IDE van Xamarin zelf of met een VS201X plugin. Helaas betekent dit wel een duurdere licentie. Gebruik Git om code te delen tussen de omgevingen.

MSDN gebruikers krijgen een redelijke korting van de (jaarlijkse, persoonlijke) licentie.

Gebruik voor Android de projecten rond de versie Icecream sandwitch. Dan bereik je 80 procent van de markt en je heb de meeste features voor je code. Je kunt ook direct ook veel nuget packages toepassen (denk aan Azure mobile services).

Debuggen? Gebruik bij voorkeur een fysiek device en debug daarop. Emulators zijn er wel maar die zijn traag en niet stabiel. Wellicht heb jij geluk met de X86 emulator. Test anders eens de ARM emulator. Let er bij de emulator op dat je, als je google specifieke zaken gebruikt (zoals Google maps) je de juiste emulator kiest (dus geen kale android versie).

De view binnen Android is gebaseerd op HTML (tegenover xaml dus). Dit is redelijk leesbaar, los van de leercurve. Android kent activities (dit zijn zegmaar de code behind bestanden). Let op de aparte koppeling van schermcomponenten van de code-behind. Schermelementen moet in eigen code gezocht worden op ID en in members geplaatst worden. Gelukkig zijn ID’s als resources beschikbaar.

En intents zijn acties uit te voeren door het os. en die moet ik opstellen en als activiteit activeren. Android kan dan fatsoenlijk binnen de context van de aanvraag de intent uitvoeren (android beslist bv. welke app de kaart mag tonen, etc.)

Sensors moet je aanvragen: …GetBestProvider. Ook hier beslist Android wel provider beschikbaar en het beste is. Lokaties kunnen op GPS gebaseerd zijn, maar ook op zendstation of IP adres.

Voor Apple moet je een Mac tot je beschikking hebben. Roland gaf een demonstratie met een Apple ‘in the cloud’.

MvvmCross kan viewmodel binden tegen verschillende views, op verschillende os’en. Must have dus.

 

Internet of Things

Anko Duizer

IoT is een hype. Kijk ook naar Internet of People en Internet of Everything. MSFT probeert hier op in te spelen om dit vooral makkelijker te maken.

IoT komt op alle vlakken voor. Zichtbaar zijn de wearables maar het zit ook in auto’s (smart cars), ziekenhuizen. Maar interessant is de latente data. Dus sensors leveren data, heel veel data. Maak daar eens informatie van.

En je kunt sturen op die data en de devices kunnen dus acteren op stuurcommando’s.

In de meeste architecturen komt een gateway voor: sensoren dragen data af aan een tussenpartij of gebruiken de gateway omdat ze zelf geen internet ondersteunen (denk aan bluetooth of nfc).

Maar de backend kan heel goed Azure zijn. Met daarop oa. Azure websites of mobile services.

Het product reijkjavik kan een standaard oplossing worden, los van zelf gebouwde oplossingen.

Dat raakt dit dan: Rx, HD Insight, azure storage, media services. Storm (complex event processing) is ook een interessant onderdeel in de hele keten.

Orleans is een framework bovenop Azure om echt te schalen. Iedere gebruiker wordt in een Actor omgezet. Dit is bij Halo4 al in gebruik.

Waarom in de cloud? Omdat je ontzettend veel connectie moet onderhouden en ontzettend veel data krijgt, inclusief piekmomenten. De cloud is ideaal hiervoor.

Er zijn ontzettend veel devices. Anko toont Windows Phone, Raspberry Pi en Arduino.

Maar ook interessant zijn de devices kleiner dan de gum van je potlood. Als die twee jaar meegaan op een batterij, en aan het internet kunnen hangen, dan heb je een leuke oplossing. Maar denk ook aan prijs, protocol en geheugengrootte. Headless spul met één of een enkele sensor is de grootste markt. Intel Galileo is een goed voorbeeld.

Het .Net Micro framework is een zeer interessante oplossing. Kijk eens naar Netduino want daar staat .Net vooraf al op.

Maar MSFT is onderscheidend met Azure, de backend. En wat zijn de uitdagingen? Denk aan connectivity, security en scale.

Reykjavik onsteunt met communicatie verschillende industrieprotocollen. En onder dat protocol communiceert over een bepaald medium/transportmiddel. De gateway draait in Azure bovenop Servicebus. En ieder device krijgt zijn eigen inbox/outbox (queues). Via topics kun je berichtenstromen samenvoegen en daarna wil je data scheiden van alerts.

Terug kun je ook berichten filteren om specifieke berichten op de outbox queues te zetten.

En je kunt adapters aansluiten op de telemetry. En je kunt een Command host voor commands en notificaties opzetten.

De gehele gateway is op schaalbaarheid gericht. De huidige grens zit op 1 miljoen berichten per seconde.

Nitrogen is open source. Draait op Node.js. Draait op de servicebus. http://nitrogen.io

Later ben ik nog naar de sessie van Maarten Struys geweest, ook over IoT. Deze sessie was ook van prima kwaliteit en de twee sessies sluiten prima op elkaar aan.

Strekking is dat de marktpotentie erg groot is van deze technologie. IoT betekent veel data. Veel data betekent veel informatie. Veel informatie betekent kansen om geld te verdienen.

Maar iedereen heeft een andere definitie voor “Internet of Things”. En hoe zit het met de gevoeligheid van de gegevens?

 

Prism for the windows runtime

Mike Taulty

Deze sessie gaat specifiek over deze versie van prism, er zijn namelijk meerdere versies, er is ook een WPF versie.

Prism is een MVVM implementatie. Het is een project van het Microsoft patterns/practices team. Het geeft sturing en ondersteuning om kwaliteit applicaties te bouwen. Het is gelaagd opgebouwd. Denk aan navigatie, opslag, schermrotatie, etc.

Prism geeft documentatie, class libraries en source code, quick start tutorials en een referentie implementatie. En er zijn ook project/item templates. De documentatie is gewoon een (pdf) boek, 250 pagina’s en lees deze in delen. Maar lees het! En het is al voor Windows 8.1 klaar.

Package Prism.StoreApps haal je op via Nuget.

Daarna begon Mike met de demo’s… Het is lastig deze in tekst te vangen. Maar dit was erg onderhoudend en ik ga hier zeker op verder voor mijn eigen applicaties.

Ook de referentie app werd getoond. Dit lijkt erg goed bruikbaar voor de gemiddelde applicatie. Oppakken dus.

Samengevat, deze sessie was erg leerzaam en bruikbaar.

http://prismwindowsruntime.codeplex.com

Update:

Het is nog even wachten op de video’s maar ik heb de volgende presentatiesheets al kunnen achterhalen!

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4630 Game and Simulator Physics for Developers, Gamers and Petrol Heads

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4748

 

Build Redux
http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4661

 

Introduction to Orleans

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4662

 

Using Orleans for building scalable cloud applications

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4558

 

Building a HTML5/Javascript App from start to finish

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4556

 

Use your HTML 5 skills to build Apps for Office (and SharePoint)

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4494

 

Leuk die nieuwe dingen, maar hoe krijg je goedkeuring van het management?

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4510

 

Het ontstaan van ‘Sovjet-IT’, de controle verliezen door niets te doen

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4613

 

Angular JS: A fresh Breeze in the SPA

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4614

 

Building Cross platform mobile applications using Xamarin

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4688

 

Nservicebus on azure

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4541

 

Designing XAML Apps using Blend for Visual Studio 2013

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4533

 

What’s new in XAML and Tooling for Windows 8.1?

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4589

 

The Fundamentals Guide to HDP & HDInsight

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4590

 

The Rocky Cloud Road
http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4591

 

Real-time Event Processing using LINQ for Traces (tx)

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4737

 

Office 365 Identity & Mail Migration

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4628

 

Building Windows Store and Windows Phone XAML apps

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4627

 

Diagnosing performance issues in XAML based Windows Phone and Window Store Apps with VS 2013

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4666

 

The Identity Challenge for Developers

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4669

 

Troubleshooting Production Issues With IntelliTrace

 

http://www.microsoft.com/netherlands/techdays/SpeakerDetail.aspx?speakerId=1450

 

                Sites and Apps, hoe maak ik ze accessible
http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4615

 

Van idee tot werkende web applicatie

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4522

 

Windows Azure to the rescue!

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4638

 

ReactiveUI: een MVVM framework gebouwd met Rx

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4689

 

Windows Azure Web Jobs – the new way to run your workloads in the Cloud
http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4690

 

Continuous Delivery Zen on Windows Azure

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4609

 

Automated cross browser testing of web applications using Visual Studio CodeUI

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4718

 

De digitale wedstrijd

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4719

 

One tool to rule them all (cross os)

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4524

 

Build your own IAAS with the Windows Azure Pack

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4560

 

Defensive Programming 101 v5 – Common security mistakes in web applications

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4561

 

Introduction to SignalR

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4562

 

Windows Azure Mobile Services from the ground up

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4732

 

Niet onderhoudbare software in 10 makkelijke stappen

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4603

 

Building Windows 8 Line of Business Apps

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4602

 

Using MVVM So You Can Write Better Code and Less Code

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4740 Modernizing Existing .NET Client Line of Business Applications
http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4617

 

Xamarin: Mobiele, store-ready en native apps voor iOS/Android in C#

 

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4618

 

Lego MindStorms Programmeren met Visual Studio
http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4525

 

Moving virtual machines from Hyper-V to Azure – and Back Again

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4504

 

An insider’s guide to Microsoft Only VDI with Windows 8.1 and Server 2012 R2

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4518 CTO’s Perspective on Tomorrow’s Workspace

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4645

 

Hergebruik van JavaScript kennis bij het bouwen van Windows Store apps
http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4646

 

TypeScript en Windows Store apps

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4703

 

Van één app honderd apps maken?

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4736

 

Overzicht van de Office 365 mogelijkheden

 

http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=4612

 

Creating sustainable solutions with SharePoint 2013

 

 

Advertenties