Microsoft gaat cross platform
Het tijdperk dat Microsoft een “Windows-only” bedrijf was ligt achter ons. In de afgelopen periode heeft Microsoft een groot aantal ontwikkelingen laten zien die dat bevestigen. De releases van Windows 10, Visual Studio 2015 en Team Foundation Server 2015 maken duidelijk dat het Microsoft menens is: “Write Once, Run Anywhere”. In dit artikel geven we een samenvatting van de recente ontwikkelingen die gefocussed zijn op cross-platform development met de Microsoft suite.
Mobile development
Mobile is al een tijd niet meer weg te denken uit de hedendaagse development wereld. Traditioneel moest er voor elk mobiel platform (iOS, Android & Windows Phone) een aparte app ontwikkeld worden, met elk een eigen codebase. Dit betekent drie keer ontwikkelen en (erger nog), drie keer onderhouden. De afgelopen jaren zijn er een aantal producten verschenen die dit manco ondervangen, elk met een eigen filosofie en doel:
- Xamarin: dit is een framework dat het mogelijk maakt om je app één keer te schrijven (in C#) en vervolgens op alle platformen te draaien. Xamarin verzorgt daarbij de binding naar de platform-specifieke API’s. Microsoft heeft een partnerschap met Xamarin gesloten, waardoor de integratie tussen Xamarin en Visual Studio sterk verbeterd is. Met “Xamarin for Visual Studio” wordt het mogelijk om native apps te ontwikkelen in Visual Studio, en te debuggen op iOS, Android en Windows Phone! De “Starter Edition” van Xamarin wordt met Visual Studio 2015 meegeleverd.
- Apache Cordova: met Cordova (open source) worden apps ontwikkeld in HTML, CSS en JavaScript (of Typescript) en daardoor kunnen deze apps op alle platformen werken. Met de “Visual Studio Tools for Apache Cordova” in Visual Studio 2015 kunnen de volledige debugging mogelijkheden van Visual Studio benut worden voor apps gebaseerd op Apache Cordova: JavaScript IntelliSens, de DOM Explorer, breakpoints, watches, locals, Just My Code, etcetera.
- Unity: dit is een platform dat toegespitst is op de ontwikkeling van 2D en 3D games. Met Unity worden deze games ontwikkeld in C# en kunnen deze draaien op iOS, Android, Windows Phone, en vele andere platformen. Met de “Visual Studio Tools for Unity” wordt Unity met Visual Studio geintegreerd, waardoor de volledige debugging mogelijkheden van Visual Studio beschikbaar komen. Recent heeft Microsoft de makers van de “Visual Studio Tools for Unity”, SyntaxTree, overgenomen. Het ligt dan ook in de verwachting dat de integratie verder verbeterd wordt.
Universal Windows Apps
Met de release van Windows 10 heeft Microsoft de verschillende besturingssystemen die het had voor verschillende devices samengevoegd tot één. Of het nou een telefoon, een tablet, een laptop, een Raspberry PI of zelfs de nieuwe HoloLens is; Windows 10 draait op elk van deze devices. Dit betekent dat een app die voor Windows 10 ontwikkeld is, óók op elk van deze devices kan draaien! Dit ondersteund het idee van een universele experience, onafhankelijk van welk device gebruikt wordt. Een gebruiker kan het device kiezen wat op dat moment het best geschikt is voor de taak die hij wil uitvoeren. Bijvoorbeeld, hij gebruikt zijn mobiele telefoon om even snel een notitie te maken, en werkt deze vervolgens verder uit op zijn Surface.
Het platform dat dit ondersteund is het “Universal Windows Platform” gedoopt, en apps die daarvoor ontwikkeld worden noemen we “Universal (Windows) Apps”. Met Windows 10 en Visual Studio 2015 wordt het eenvoudiger om deze Universal Apps te ontwikkelen door gebruik te maken van slechts één API set, één app package en één Store voor alle Windows 10 devices. Het “Universal Windows Platform” maakt het eenvoudig om meerdere schermgroottes en meerdere invoermethoden (muis, toetsenboerd, pen, aanraking of een game controller) te ondersteunen.
iOS & Android apps op Windows
Veel ontwikkelaars van apps hebben (veel) geïnvesteerd in apps voor Android en/of iOS. De stap om dan ook een app voor Windows te gaan ontwikkelen is voor veel van hen te groot, waardoor het aanbod van apps op het Windows platform tot nu toe achter is gebleven bij dat van iOS en Android. Microsoft heeft zich dit gerealiseerd, en komt met een oplossing: Project Astoria & Project Islandwood. Deze twee enigszins tot de verbeelding sprekende projecten maken het mogelijk om met een minimale inspanning apps die op de traditionele wijze voor respectievelijk Android en iOS ontwikkeld zijn naar het Windows platform te brengen. Hierbij worden platform-specifieke zaken automatisch omgezet zodat deze werken op het Windows platform. Denk bijvoorbeeld aan een integratie met Google maps die automatisch wordt omgezet naar Bing maps. Vervolgens kunnen deze apps gedistribueerd worden via de Windows Store. Project Astoria (voor Android apps) en Project Islandwood (voor iOS apps) zijn nog volop in ontwikkeling en op dit moment nog niet publiekelijk beschikbaar. Op Build 2015 zijn de eerste demo’s getoond, en deze zien er veelbelovend uit!
.Net en ASP.NET 5
Niet alleen voor mobiel applicaties, maar ook voor webapplicaties is Microsoft de cross-platform weg ingeslagen. Zowel kern van het .Net framework (.NET Core) als Microsofts web-framework ASP.NET worden opnieuw ontwikkeld en zullen daarbij ook geschikt worden voor Linux & Mac OS X. Hierbij wordt het framework geoptimaliseerd voor moderne cloud applicaties.
VSTS & TFS Build vNext: “Build for your platform, speaking your language”
Om het ontwikkelen van cross-platform applicaties ook vanuit de Microsofts Application Lifecycle Suite te ondersteunen was het nodig om ook de build engine zoals deze in Visual Studio Team Services en Team Foundation Server geintegreerd is aan te pakken. Tot nu toe was deze gebaseerd op XAML workflows, die uitgevoerd werden door een build agent gebaseerd op Windows Server. Met de release van TFS 2015 komt daar verandering in. Het build systeem is sterk vereenvoudigd. In plaats van een gecompliceerde XAML workflow wordt het build proces nu volledig web-based opgebouwd als een eenvoudige opeenvolging van taken. Er is out-of-the-box al een groot aantal taken beschikbaar, zoals het builden van een Visual Studio solution, maar ook het builden van een iOS app met Xcode of zelfs een Java applicatie met Maven behoort tot de mogelijkheden. Natuurlijk kunnen ook eigen, custom taken toegevoegd worden. Het daadwerkelijk uitvoeren van de build wordt verzorgd door de nieuwe cross-platform build agent, welke geïnstalleerd kan worden op Windows, Linux & Mac OS X.
Visual Studio Code
Met “Visual Studio Code”, de nieuwste telg in de Visual Studio familie, maakt Microsoft een lichtgewicht cross-platform (Windows, Linux & Mac OS X) code editor beschikbaar. Visual Studio Code is geoptimaliseerd voor het ontwikkelen van web applicaties, met native ondersteuning voor het debuggen van o.a. ASP.NET 5 en Node.js applicaties. Daarnaast zijn features als syntax coloring & highlighting en bracket matching geïmplementeerd voor meer dan 30 talen, zoals JavaScript, PHP, HTML, CSS, Markdown, JSON, etcetera. Daarnaast is ondersteuning voor versiebeheer door middel van Git ingebouwd. En last, but not least: Visual Studio Code is gratis beschikbaar.
Conclusie
Microsoft gaat cross-platform, en het is menens. De producten en features die de laatste tijd zijn uitgebracht laten dat duidelijk zien. Hiermee wordt vol ingezet op “Write Once, Run Anywhere”. Voor ontwikkelaars betekent dit dat zij applicaties met relatief weinig inspanning voor een breed publiek beschikbaar kunnen maken, onafhankelijk van welk platform er gebruikt wordt! Hiermee vervaagt de grens die er sinds jaar en dag bestaat tussen de verschillende platformen. Daarmee komt ook de visie van Delta-N een stap dichterbij: “Connected Anytime, Anywhere, Any way”.