Azure Webjobs

Tijdens de afgelopen Microsoft Techdays 2014 deed ik een sessie over Azure Cloud Services. De opname is te vinden op Channel 9. In het begin van Azure waren Cloud services de “way to go”.

Cloud Servies is een krachtig concept, maar er kleefde ook de nodige nadelen aan. Bestaande applicaties konden niet zomaar via de Lift en Shift methode naar de Cloud gebracht worden. Meestal was dit gewoon te wijten aan de applicaties zelf. Weinig applicaties zijn of waren zuiver stateless, asynchroon in de basis en in staat als meerdere instanties naast elkaar te draaien.

In de afgelopen jaren is het Azure platform rijker geworden met verschillende diensten. In plaats van iets zelf te verzinnen of te kopieren van anderen, zijn er nu bestaande tools/producten opgepakt en in samenwerking geschikt gemaakt voor Azure (Hadoop, Docker, etc).

Maar ook is IT development een stuk volwassener geworden. Developers en architecten realiseren zich steeds vaker dat Scale up niet helpt met availability, dat services/servers stuk gaan en dat een internet applicatie de potentie van een miljoenen publiek heeft.

Standaard dogma’s als SOA architecture, Servicebussen of SOAP webservices lijken ook hun kracht te verliezen, Microservices krijgen meer draagvlak en betere tooling. Daarover ga ik zeker nog vaker bloggen.

Terug naar mijn Techdays demo. Die zag er zo uit:

blog2

De solution zag er zo uit. De code is te downloaden of op te vragen. Zoals gezegd bestond het uit een WebRole en een WorkerRole. De WebRole voor het uploaden en bekijken van de plaatjes.

webjob1

De flow van de applicatie zag er zo uit.

 Slide1 

Zoals je ziet, de WebRole moest naast het uploaden ook een bericht op een queue zetten voor de WorkerRole. Aan de WorkerRole kant moet er een mechanisme zijn om de queue leeg te lezen. Zoals ik vertelde in mijn sessie, moet je dan ook het Busy waiting oplossen. Het lezen van de queue is een transactie en dat kost geld. Een belangrijk onderdeel van architectuur op Azure is Cost Based design. Dus wil je het lezen van bijvoorbeeld een queue zo efficiënt en effectief mogelijk houden met het oog op de kosten.

Op Azure zijn tegenwoordig Webjobs beschikbaar. Met deze webjobs is het mogelijk om deze te laten triggeren na het toevoegen van een nieuwe blob op storage. Dat scheelt in mijn geval een bericht op de queue en eigen check actie van de queue. Het hele wachten en kijken of er werk (nieuwe blob op storage) is, wordt nu door het platform verzorgd en geregeld. En wat ik niet hoef te doen, dat scheelt tijd en het platform kan dat efficiënter. Dus de WorkerRole wordt vervangen door een Webjob. De WebRole heeft ook een alternatief. Moest ik voor de WebRole toch nog iets aparts leren, zoals bijvoorbeeld het lezen van de configuratie settings. Met een Azure Website kan ik de technieken gebruiken die ik altijd al gebruikte. En voor de settings zie je in mijn vorige blogpost de oplossing.

Het proces plaatje ziet er dan zo uit.

 Slide2

En de website ziet er na een kleine redesign zo uit.

blog3 

En de code van de Webjob is eigenlijk alleen dit, ongeveer 55 regels.

function1

De WorkerRole besloeg ongeveer het dubbele aantal regels code, waarvan het grootste gedeelte zaken die niets met het proces te maken hebben.

Op deze manier krijg je precies zoals ik altijd zeg tijdens presentaties. We kunnen ons richten op de functionaliteit en het echte werk, de rest wordt overgenomen en geregeld door het Azure platform.

Oke, nu wil ik eigenlijk dat de Client niet op de queue hoeft te kijken, maar op een andere manier genotificeerd wordt.

NB In deze blogpost beweer ik niet dat Cloud Services niet bruikbaar zijn. Voor het hier genoemde scenario waren de uitgebreide mogelijkheden van Cloud Services niet nodig. Kijk op deze page voor een betere vergelijking tussen de mogelijkheden.

Macro in Excel not working after update

Voor het maken van fakturen gebruik ik een Excel 2013 sheet. De sheet maakt gebruik van makro’s. Na de laatste Office updates deed de Excel sheet het niet meer. Er verschenen allerlei errors.

Na enig zoeken op internet kwam ik deze oplossing tegen. Zoek het bestand MSForms.exd, normaal gesproken staat deze in de folder C:\Users\user.name\AppData\Local\Temp\Excel8.0\ en verwijder MSForms.exd. Deze wordt dan opnieuw opgebouwd bij de volgende start van Excel 2013 en alle VBA makro’s werken weer.

Het werkte en zo ook mijn faktuur sheet.

ConnectionStrings / AppSettings Azure

Tijdens mijn poging om Azure webjobs te doorgronden kwam ik het volgende tegen.

Een Webjob wordt gedeployed bij een Azure website. Bij de Webjob hoort ook een dashboard. Na het deployen van mijn Webjob ging ik naar dit dashboard. Tot mijn verbazing zag ik dat mijn Webjob gestart was, maar dat er wel Errors en Warnings waren over een setting.

siteconstring1

Zoals de error/warning verteld, moet je de Connectionstring toevoegen aan het Connectionstring gedeelte van de Azure website. Daarna is de error/warning weg.

siteconstring2

Eerst dacht ik dat ik deze Connectionstring op twee plekken moest configureren. Een keer op de portal en een keer in de app.config van de Webjob. Dat stuitte mij tegen de borst, ik hou niet van om settings op twee plekken hetzelfde te configureren. Dat blijkt ook niet te hoeven.

In je code gebruik je:
var storageAccount =
CloudStorageAccount.Parse(
ConfigurationManager.
ConnectionStrings[
“AzureWebJobsStorage”].
ConnectionString
);

Maar de Connectionstrings of App settings geef je een waarde op de Configure tab van de Azure Website.

image

En dit werkt ook voor de App.config van een Azure Webjob.

Meer informatie: http://www.asp.net/identity/overview/features-api/best-practices-for-deploying-passwords-and-other-sensitive-data-to-aspnet-and-azure

Microsoft Azure: Linux

Tijdens het afgelopen Connect(); event in New York werd ook duidelijk dat Microsoft Linux en Open Source een warm hart toedraagt. Ze hebben hun .NET framework open source gemaakt dat is een stap. Maar eerder is ook geroepen door Satya Nadella, Microsoft Love Linux.

Microsoft_LOVES_Linux

In het begin bestond Azure uit Microsoft gerelateerde producten. Sterker nog Azure was alleen een PAAS. Virtual Machine zoals bij Amazon bijvoorbeeld waren niet mogelijk. Ooit is er de VM Role geweest, maar dat is later gauw vervangen door echte IAAS.

Sinds de nieuwe HTML portal (http://manage.windowsazure.com) behoort IAAS oftewel Virtual Machine echt tot Microsoft Cloud landschap. Ook bijna vanaf dag 1 zaten daar Linux images bij. Dat leverde gefronste ogen op, maar dat is alleen maar uitgegroeid. Op de huidige preview Portal (http://portal.azure.com) is de lijst met Linux images erg groot. Het lijkt mij onwaarschijnlijk dat dit het einde is. Wellicht komen er leveranciers die vanuit de Marketplace images gaan aanbieden. Hoe groter de vraag, hoe meer aanbod er gaat komen..

11-23-2014-15-36-59

Tijdens mijn dagelijkse snuffelrondje (Microsoft Azure verandert zo snel) kwam ik tegen dat ik ook een Minecraft server in de lucht kon brengen. Enige dat je nodig hebt, is een naam en 15 minuten. Daarna heb jij je eigen Minecraft server. How cool! Deze draait op een Linux image by the way.

minecraftazure

Welke reden heb jij om geen gebruik te maken van Microsoft Azure?

Visual Studio 2015 Preview: C# 6

Op 12 en 13 november was er het Connect(); event van Microsoft in New York. De keynote was live te volgen en de gezamenlijke Nederlandse communities (WAZUG, DotNed, VB Central en natuurlijk de SDN) hadden een avond georganiseerd om samen de keynote te bekijken. Als je er niet bij was of de keynote gemist hebt, dan kun je dat op je gemak nakijken op Channel 9. Het waren niet de minste sprekers: Scott Guthrie, S. Somasegar, Brian Harry en Scott Hanselman.

Tijdens dit event liet Microsoft zien dat de woorden van de CEO Satya Nadella, Mobile First, Cloud First, niet zomaar een loze opmerking was. Dit statement gaat door heel Microsoft heen en zit verweven in alles wat zij doen en laten. Dat kwam duidelijk naar voren in de keynote.

Er waren een aantal aankondigingen, een daarvan is dat Microsoft het .NET platform als Open Source beschikbaar stelt op GitHUB. Dat betekent dat iedereen een Pull request kan doen en zo eigenhandig bugs etc. kan oplossen. Deze aanpassingen kun je dan weer terug sturen en Microsoft zal ze (na testen etc.) overnemen. How cool is dat! De eerste pull request kwam binnen het uur dat de spullenboel open stond.

Een andere aankondiging was een preview van Visual Studio 2015. Deze preview bevat ook previews van ASP vNext en C# 6. Hoewel er geen nieuwe taal elementen aan C# zijn toegevoegd, is de taal en tooling wel geoptimaliseerd. Alle aanpassingen die gemaakt zijn, hebben tot doel om het de developer eenvoudiger te maken.

In deze blogpost een paar van de veranderingen.

Code moet niet alleen eenvoudiger maar ook cleaner gemaakt kunnen worden. Zoals bijvoorbeeld een relatief simpele methode als hieronder. De function body is eigenlijk overbodig.

11-22-2014-15-57-00

En het kan korter door gebruik te maken van een Lambda arrow (=>). Deze kende we al, maar nu kan het ook voor deze gebruikt worden. Er komt straks nog een mogelijkheid aan.

11-22-2014-15-57-001

Clean code en duidelijk begrijpbaar en leesbaar.

Nog zo’n mooie toevoeging. De volgende code constructie herkent iedereen wel.

11-22-2014-16-00-57

Met de nieuwe Elvis operator kan dat een stuk korter. De ?. (met een beetje fantasie zie je een kuif met ogen) operator hoef je niet meer te checken of het object NULL is.

11-22-2014-16-01-07

Uiteraard werkt dit ook met methodes is de Class: x?.Calc(1,2); Vind ik iets gevaarlijker, want de Calc methode wordt niet uitgevoerd als x NULL is. Als je niet goed over je tests of structuur let, dan kan dit tot onverwachte situaties leiden.

Nog een veelvoorkomende constructie. We maken strings voor meldingen op en we doen dat natuurlijk netjes met de string.Format methode. Super simpel en redelijk leesbaar, nadeel je moet wel goed tellen en de welke waarde waar komt is niet in een oogopslag duidelijk.

11-22-2014-16-03-39

Dus dat moest anders. Simpel \{<variable>} en de code is gelijk een stuk gedocumenteerd. Natuurlijk kun je ook de formatting regels van string.Format meenemen, volledige vrijheid over de uiteindelijke tekst.

11-22-2014-16-03-391

Bovenstaande is een field van een class/object. Doordat ik hem public heb gemaakt, kun je hem manipuleren. Dat is natuurlijk niet helemaal netjes en eigenlijk zou je properties moeten gebruiken. Nadeel van properties op dit moment is, dat deze zowel een getter als een setter moeten hebben. In C# 6 is die verplichting er niet meer, een property kan alleen een getter hebben.

En als je dan gebruik maakt van de lambda arrow, dan gebeurd dat automatisch voor je. Dat het geen field is, dat zie je door de Code lens referentie teller. Maar ook als je de waarde van de property wilt aanpassen, dan krijg je een compiler waarschuwing.

11-22-2014-16-04-47

11-22-2014-16-01-54

Zo zijn er nog meer aanpassingen en wijzigingen, daarover later meer

Windows 10 Technical Preview

Sinds deze week is Windows 10 beschikbaar als Technical Preview. Deze versie is volgens de waarschuwingen slechts bedoeld voor technische of ervaren betatesters. Het advies is ook om deze versie niet te installeren op je productie computer.

Dus heb ik de versie gedownload en op mijn Surface Pro 3 geïnstalleerd. Ik koos ervoor om niet een upgrade van mijn bestaande Windows 8.1 installatie te doen. Het resultaat na de installatie waren een heleboel missende drivers 😉 Gelukkig kon ik op een andere laptop de drivers downloaden.

10820141237211082014123742

Er zal nog wel een echte beta komen, die door iedereen te installeren is. Deze versie geeft volgens mij ook nog maar een klein inkijkje in alle veranderingen.

Wat is er dan veranderd? Als je nog steeds op Windows 7 zit en weleens met een schuin oog gekeken hebt naar Windows 8, dan is het je opgevallen dat het vertrouwende startmenu er niet is. Niet helemaal waar, want het is feitelijk een heel scherm geworden. Als je voor het eerst achter een Windows 8.1 computer zit, dan moet je vooral erg wennen. Het lijkt net of niets meer op dezelfde plek zit.

Windows 8 was vooral bedoeld voor tablet achtige omgevingen of voor laptops/desktops met een touch scherm. Windows 7 was erg goed te bedienen met een muis en een toetsenbord. Feitelijk kon je heel Windows gebruiken met enkel een toetsenbord. Met Windows 8 (en ook met de introductie van de Surface RT) kwam daar een nieuwe dimensie bij namelijk Touch.

Als je een Metro of Windows 8 app uit de Store gebruikte, dan moest je van rechts swipen op je touch scherm om bij de settings te komen. Er kwam dan de zogeheten Charmsbar naar voren met daarin de settings van de actieve app. Met de muis moest je naar die ene pixel in de rechterbovenhoek van het scherm en dan verscheen de Charmsbar ook. Of je gebruikte de toetscombinatie Windows-key + I of Windows-key + C(harms).

Wat is het probleem? Deze manieren zaten en zitten nog direct in je spiergeheugen en voelde na het komen van de vorige versies van Windows niet als een gewoonte.

Met Windows 10 probeert Microsoft dat probleem te tackelen. Waar Windows 8 gemaakt is vanuit het gezichtspunt van touch/tablet, is Windows 10 weer gebouwd vanuit de desktop gebruiker zonder touch.

En deze eerste versie voelt goed hoor. Maar ook op een Tablet.

Snelle rondleiding dan. De belangrijkste aanpassing voor velen. Het startmenu is terug. Maar deze is wel danig onderhanden genomen. De live tiles en het pinnen van apps zoals op het start scherm zijn hierin gecombineerd.

Screenshot5

Ook de searchbox is weer terug. In Windows 8.1 moest je Windows-key + Q(uery) doen. Met deze search optie kun je weer eenvoudig zoeken naar de apps. Als je op de ‘All Apps’ klinkt, dan krijg je de structuur van Windows 7 terug. Je ziet dan folders van de geïnstalleerde applicaties die niet uit de Windows Store komen.

Op de onderste balk zie je ook een vergrootglas. Deze is zoals je uit vorige versie van Windows kent om een desktop search uit te voeren. Er wordt dan niet perse gekeken in de geïnstalleerde apps, maar naar bestanden op je computer. Nieuw is dat het resultaat vermengd is met zoekresultaten van het internet.

Het startmenu is ook in hoogte en breedte verstelbaar, kan erg interessant zijn op een 4K Monitor.

Wil je toch weer terug naar de Windows 8.1 manier? Dat kan ook hoor. Volgens de filmpjes zou deze switch op Surfaces straks automatisch gebeuren als je het toetsenbord verwijderd of wegklapt. Dan is het namelijk een tablet is een touch georiënteerde omgeving logischer.

Op de taskbar kun je een rechtermuisklik doen en naar de properties gaan. Op het derde tabje ‘Start Menu’ kun je deze setting aanpassen. Het wordt pas actief als je opnieuw inlogt.

Screenshot9Screenshot10

Daarna krijg je bij een druk op de Windows toets of de hardware toets het Windows 8 start scherm.

Screenshot13

Ander design dingetje alle schermen hebben nu een shaduw. Op het onderstaande plaatje zie je dat niet helemaal. Het is wel grappig.

Screenshot11

Wat niet opvalt, maar als je het vergelijkt met Windows 8 wel, alle schermen hebben geen rand. De bovenste schermafdruk is van Windows 8 en de onderste van Windows 10. Het maakt de hele indruk wel iets prettiger.

1082014134513

1082014134543

Uiteraard zoals je hierboven ziet, zijn ook de icoontjes etc onderhanden genomen. En is er zoveel mogelijk nutteloze ruimte weggehaald.

In Windows 8 was een Store app / Metro app / Windows 8 app altijd full screen. Nu niet meer, een dergelijke app is nu in eerste instantie schermvullend. Maar je kunt hem aanpassen aan je eigen wensen.

Screenshot6

Screenshot7

In principe hoef je nu ook niet meer naar de Charmsbar. In de titelbalk zit een knop met drie puntjes (…). Met dit menu kun je bij de settings etc komen. Dat is ook logisch, want een app is nu niet meer full screen.

Het resizen van een Store app is nog wel beperkt in hoogte. Er is (nog?) een minimale hoogte voor een Windows Store app, de breedte is minder hard beperkt.

In alle versies van Windows is ALT-TAB de manier om door de geopende applicaties te bladeren. Daar is Windows toets –TAB bijgekomen en dan zag je de open applicaties op een meer grafische manier. In Windows 8 werkte dat ook, maar de Windows Store apps deden dan niet mee. Nu wel

Screenshot3

Ander nieuwtje is dan de zwarte balk met ‘Add a Desktop’. In Windows 10 zijn nu meerdere desktops mogelijk. Dan kun je op een fysiek scherm toch je spullen scheiden van elkaar.

Screenshot1

In Windows 7/8 desktop bestond de toetscombinatie Windows key+pijltje rechts/links. De actieve applicatie zal dan naar de linker of rechterkant van je scherm springen. Handig als je twee Word documenten naast elkaar had en gelijktijdig wilde bekijken. Maar er waren maar een paar standen; links, rechts, full screen, normal.

In Windows 8 metro waren er nog minder mogelijkheden en geen toetscombinaties. Eerst konden er op een scherm maar twee Windows Store apps naast elkaar, in 8.1 is dat gewijzigd in 3.

In Windows 10 is het scherm verdeeld in 4 kwadranten met de Windows toets en de pijltjes toetsen. En dat geldt dus ook voor de Windows Store apps, hoewel deze nog een minimale hoogte in beslag nemen.

Screenshot4

Als laatste het onderdeel van Windows dat sinds de eerste versie niet meer is aangepast; de command prompt. De hele omgeving was modern, maar deze niet. Maar nu is de Command prompt toch echt aangepakt.

Je kunt nu knippen/plakken met de bekende toetscombinaties. Je kunt delen van de tekst selecteren. Je kun de prompt transparant maken. Vele handigheden die er eigenlijk al veel langer hadden moeten zijn.

108201413553210820141356041082014140121

Hoewel het om een Technical Preview gaat, voelt het allemaal wel stabiel aan. De vele aanpassingen zien er erg goed uit. Je ziet ook dat er nog vele aanpassingen moeten komen. ALT-F4 werkt bijvoorbeeld niet meer goed voor Windows Store apps. Ook op mijn Tablet/Laptop Surface voelt het heel natuurlijk aan.

Let wel, alles in deze post is gebaseerd op een preview en kan dus wijzigen in de toekomst.

Ben benieuwd naar de volgende update van de preview. Tijdens de Build conference in April komen er vast nog meer details.

IoT (2) Intel Galileo

Op de afgelopen //Build conferentie werd gesproken over een Windows op een Intel moederbordje. Intel heeft daarvoor een chip ontwikkeld en Microsoft heeft daar hun Windows op geinstalleerd. Het bordje is een Intel Galileo bordje. Dat bordje is gewoon een Arduino bordje en dus kunnen ook de Arduino componenten (waarvan er al erg veel zijn) kunnen hierop aangesloten worden.

De Arduino ontwikkelomgeving ziet er zoals onderstaande uit. De code is C / C++. Het onderstaande voorbeel laat het onboard ledje knipperen.

30-8-2014 19-20-31

Ik wilde er natuurlijk Windows op installeren. Daarvoor moest ik eerste een firmware update uitvoeren. De Arduino ontwikkelomgeving is redelijk simpel hoor. Het copy/paste van een directory met alles erin. Daar zit dan ook de Firmware update in.

19-8-2014 22-23-47 

Om over de Windows voor het Galileo bordje te komen, moet je via Microsoft Connect toegang krijgen tot de Windows Embedded Pre-release programma. Via deze pagina’s op GitHub kun je dan de juiste stappen uitvoeren om Windows te installeren.

Onderstaande is het proces van installeren op een SD card.

19-8-2014 21-15-34

WP_20140830_005 - Copy

Als dat allemaal gedaan is, dan ku n je het SD cardje op het G alileo bordje plaatsen. De Galileo watcher app zal hem (mits je het bordje via USB/Ethernet hebt aangesloten) zien.

30-8-2014 13-26-08

Er zit standaard een kleine Webserver op. Dus als je Web browser here doet uit het menu kom je daarop terrecht.

30-8-2014 13-25-48

Je kunt ook een netwerk share openen en dan zie je de bestanden.

30-8-2014 13-26-58

De directory van de webserver. Zoals je zag heb ik de teksten aangepast.

30-8-2014 13-30-57

De directory waarop de delpoyments worden gedaan.

30-8-2014 13-27-17

Oke, nu hebben we Windows draaien op het ding. Maar nu willen we natuurlijk ook iets bouwen. Voor .NET Gadgeteer was het eenvoudig. Hier gaat het iets anders. Er is voor Visual Studio 2013 een project template voor C++.

30-8-2014 13-35-50

Voor deze demo gebruik ik niet de onboard led, maar heb ik een ledje op het bordje gedrukt. Via code zal ik deze dan laten knipperen.

30-8-2014 13-39-06

Niet heel lastig lijkt het. En als je hem runt en debugt, dan zie je dat natuurlijk in je Visual Studio.

30-8-2014 13-39-16      

En het ledje knippert mee. Het rode ledje op de twee foto is feller.

WP_20140830_006WP_20140830_007

Maar het kan natuurlijk ook moeilijker. Zo heb ik net als voor de .NET Gadgeteer een 16×2 display gekocht. Daarop kan ik teksten zetten.

30-8-2014 13-29-40  

Maar dan moet je hem wel aansluiten en dat gaat bij Arduino iets minder elegant dan bij .NET Gadgeteer. Je hebt dan een breadboard en met kabeltjes verbindje contacten.

 WP_20140830_003    

Maar het resultaat van de code is wel zichtbaar. Op het schermpje verschijnt een oplopende waarde (i++).

Gaaf he. Nu nog wat verder experimenteren met die spullen. Je moet daar hele mooie dingen mee kunnen maken. Wel even mijn C++ een beetje oppoetsen.

IoT (1) .NET Gadgeteer

Internet of Things staat de laatste tijd nogal in de belangstelling. Niet zo gek, want de wereld wordt steeds meer connected. Alles er en iedereen staan op elke plek van deze aardbol met elkaar in contact. Als je in vroegere tijden op vakantie was, dan bracht je de achterblijvers via postkaarten op de hoogte. Je was dan ook echt even weg. Heel lang waren er in het buitenland geen Nederlandse kranten te vinden.

Maar dat is tegenwoordig anders. Iedereen heeft wel een mobiel en een tablet. Bijna overal hebben we wel internet en brengen we elkaar op de hoogte via Twitter, FaceBook, mail of andere media.

Niet alleen mensen staan steeds meer in contact met elkaar, ook devices etc staan met elkaar in contact. De meeste auto’s kennen al iets als knop waarmee je de garage kunt signaleren als je een probleem hebt. Je telefoon staat steeds in contact met satelieten om aan te geven waar hij is. Deze toepassingen zullen alleen maar uitbreiden. We hebben bijna allemaal al sensoren in huis om automatisch de verwarming hoger of lager te zetten. We kunnen al via domotica koppelingen van afstand de lampen in huis aanzetten. Onze koelkasten zullen sensoren krijgen en zullen tekorten in de voorraad melden aan een leverancier. Smartwatches zullen naast je hartritme ook je gezondheid in de gaten kunnen houden. Wie weet gaat hij dan zelf de dokter wel bellen als er een wijziging plaats vind in je metingen. Er zullen nog veel meer toepassingen komen.

Al die dingen moeten geprogrammeerd worden. Voorheen waren dat veel electronische schakelingen en low level programmeertalen. Maar tegenwoordig willen we meer eenvoudiger zaken programmeren. Het liefst met talen of omgevingen die we al gebruiken. Dan kan het uiteindelijk ook goedkoper worden.

Er is iets als .NET Gadgeteer. Hiermee kun je met behulp van allerhande modules en een moederbordje een idee uitproberen en maken. Om dit te programmeren kun je dan gebruik maken van .NET Microsoft Framework en gebruik maken van Visual Studio 2010.

WP_20140830_011

De designer is erg WYSIWYG. Je sleept de componenten op het canvas en klikt op het connect en je ziet hoe je het component aan het moederbord moet koppelen.

30-8-2014 17-31-39

In de code kun je dan via intellisense de nodige functies van een component programmeren. Als je erg thuis bent in C#, dan voel je hier helemaal prettig bij. Je kunt het dan deployen en starten op het moederbordje.

30-8-2014 17-32-30 

Je kunt de code debuggen en je oplossing uitproberen.

 WP_20140830_010

Het .NET Micro Framework is al heel oud. De opvolger is Windows Embedded. Daarvoor heb je andere hardware nodig. Op deze hardware moet dan iets als Windows draaien.

In een volgende blogpost vertel ik over het Intel Galileo moederbord waarop Windows draait.

Bing while coding

Iedere developer kent dat wel, tijdens het developen ben je op het internet op zoek naar tips en truuks. Er zijn nogal wat plekken om aan je informatie te komen op het internet. Hulp, tips en codevoorbeelden kunnen gevonden worden op verschillen forums, MSDN, CodeProjectStackOverflow en vele andere. Het is ondoenlijk om ze allemaal te kennen of in een lijstje af te lopen. Dus gebruiken we allemaal onze favoriete zoekmachine om een hulp te vinden. Daarvoor moeten we dan de comfortabele omgeving van Visual Studio verlaten. Je start een browser en zoekt. Sinds kort is er een handige extension voor Visual Studio beschikbaar. Je kunt dan in je development omgeving blijven.

30-8-2014 14-27-33

Moet je dan iets speciaals doen om het tijdens het coderen te gebruiken? Nope, het werkt automatisch. Je begint met typen van je code en de intellisense kicks in (druk op ALT+space als het niet automatisch gaat). De resultaten van de intellisense zijn uitgebreid met Bing search resultaten.

28-8-2014 06-57-38

Hoe handig is dat! Dus naast de standaard documentatie zie je ook de code voorbeelden uit de community.

Als dit je dan nog niet genoeg informatie oplevert of gewoon een zoekactie wilt starten, dan is in de menubalk een zoekbox toegevoegd. Type hier je vraag in en in je Visual Studio verschijnen de resultaten op een handige en overzichtelijke manier.

28-8-2014 06-58-43 28-8-2014 06-58-5328-8-2014 06-59-03

Nu zal het vaak zo zijn, dan niet iedereen volledig toegang heeft tot het internet. Demo en codevoorbeelden kunnen ook op een lokale locatie geplaatst worden en toch dienen als bron van het Bing Visual Studio tool.

30-8-2014 15-36-07

Hoe handig is dat! Op deze manier hoef je als ontwikkelaar niet steeds te contextswitchen. Je kunt dan in de flow blijven.

Happy coding!

Surface Pro 3

Vandaag is mijn Surface Pro 3 (i7 met 256 Gb disk 8Gb memory) dan eindelijk gekomen. Lang naar uitgekeken en ik ben erg benieuwd naar de verschillen.

WP_20140828_001WP_20140828_003

De verschillen zijn groot. Ten eerste is het scherm 12 inch, dat is 2 meer dan de vorige versies. Ook de verhouding (2:3) van het scherm is anders en de resolutie (2160×1440) is daarmee ook gelijk meer geworden. De pen is anders, er zit een batterij in. De Surface Pro 3 kan in meer standen kantelen dan de vorige twee versies. De eerste had 1 stand, de tweede had er 2 en deze heeft er multi. Ik ben erg benieuwd hoe dat in de praktijk gaat werken. Jammer is wel dat de voeding van de Pro/RT 2 en de 3 niet uitwisselbaar zijn. De connector in de Surface is behoorlijk veranderd, de andere connector werkte in de praktijk niet altijd even fijn.

Als je de Surface Pro 2 en de Surface Pro 3 boven op elkaar legt dan vallen de verschillen wel op. Op de foto is de onderste mijn Samsung Ultrabook van 13 inch. Zoals je ziet kan het een vervanging van de Samsung zijn.

IMG_0005

De verschillen in dikte is ook wel zichtbaar. De onderste vertekent door het design.

IMG_0002

De verschillen tussen de Pro 2 en de Pro 3 zijn wel zichtbaar.

IMG_0003

Het verschil in gewicht ook. Let op onderstaande is niet uitgevoerd op een geijkte weegschaal en dit ook meer als illustratie.

Surface Pro 2

IMG_0006

Surface Pro 3

IMG_0007

Samsung Ultrabook

IMG_0008

Komende weken zal mijn Surface Pro 3 eens echt als dagelijkse machine gebruiken. Kijken hoe deze zich staande houdt ten opzichte van de Samsung (wat mijn dagelijkse machine is) en de Surface Pro 2.

Ik hou julie op de hoogte. Binnenkort komt ook de dockingstation. Dan heb ik er weer een werkplek bij 😉