Visual Studio for Mac Preview

Het was natuurlijk al mogelijk om C# en DotNetCore te gebruiken op niet Windows omgevingen met behulp van Visual Studio Core. Daar hoorde MacOS natuurlijk ook bij. Na de overname van Xamarin door Microsoft is Xamarin Studio samengevoegd met de Visual Studio producten en dat heeft geresulteerd in Visual Studio for Mac.

Xamarin Studio was natuurlijk al super om Android en iOS apps te maken op een Apple device. Natuurlijk kun je dat ook doen door Xamarin Studio te gebruiken op Windows en een MacOS device te gebruiken als Build omgeving.

Voorheen kon je alleen een Native MacOS app maken met Xcode (de ontwikkelomgeving van Apple). Daarvoor moet je dan Objective C, C, C++, Swift etc leren en gebruiken. Als je normaal gesproken voor Windows programmeert of multi platform wilt programmeren, dan moet je een nieuw kunstje leren en bestaande libraries herschrijven. Met Xamarin Studio kun je gebruik maken van DotNetCore en C#, veel van je bestaande code kun je een-op-een hergebruiken. Met Visual Studio for Mac is het nu ook mogelijk om een native MacOS applicatie te maken met Xamarin en C#. Hiervoor heb je nog wel Xcode nodig om de Storyboards te kunnen definieren. Voor Android en iOS heeft Xamarin eigen tools en editors ontwikkeld, maar voor MacOS nog niet.

Als je Visual Studio for Mac start krijg je een bekend beeld van je Visual Studio for Windows.

Net als op Windows doe je File->New Project en dan krijg je de keuze aan de verschillende project templates.

Een van de templates is een MacOS applicatie.

Om de visuele controls op het scherm te zetten, dan moet je het Storyboard gebruiken en daarvoor maak je een uitstapje naar Xcode. Zodra je dan de aanpassingen opgeslagen hebt, dan zullen deze gesynced worden met de Visual Studio solution.

Als je de applicatie dan start, kun je uiteraard ook debuggen.

Zoals je gewend bent in Visual Studio / Xamarin Studio kun je meer details zien tijdens het debuggen.

Ik heb nog geen applicaties in de Mac App Store gezet, maar dat zou wel gewoon moeten. De applicatie kun je in elk geval gewoon starten op je Mac-je.

Erg leuk en goed van Microsoft/Xamarin om een vertrouwde ontwikkelomgeving naar andere platformen te halen. Visual Studio Core is natuurlijk al heel erg mooi, maar Visual Studio for Mac is net ietsje uitgebreider en completer.

Feitelijk is Microsoft weer terug waar ze begonnen zijn en is de cirkel weer rond. Microsoft is begonnen als leverancier van ontwikkeltalen en omgevingen op oa Apple computers. Dat is met Visual Studio en DotNetCore zekere weer gelukt. Nu is de markt voor platformen nog groter, dus is herbruikbaarheid van code nog belangrijker.

Visual Studio for Mac is nog een preview, maar inmiddels zien we dat ontwikkelingen elkaar erg snel opvolgen en dus zal deze preview ook met dezelfde vaart doorgroeien. De toekomst voor developers wordt alleen maar mooier.

API Management

Het is voor leveranciers van producten bijna onmogelijk om voor ieder platform mobiele applicaties te maken. Natuurlijk kun je dan als leverancier zorgen voor een goede responsieve mobiele website. Het nadeel van deze manier is dat je de capaciteiten en mogelijkheden van een mobiel device niet volledig uit nut.

Daarom zijn er ook leveranciers die hun backoffice via API’s beschikbaar stellen aan de wereld. Meestal wil je dat niet zonder pardon doen en wil je er als leverancier wellicht geld aan verdienen. Dus je wil een Developer portal maken met verschillende groepen, help pagina’s, voorbeeldcode, monitoring, issue lijst, FAQ, maar ook malafide gebruikers/applicaties blacklisten. Kortom het vergt meer dan even het beschikbaar stellen van een paar webservicesje.

Enige tijd geleden had ik ook zo’n droom. Ik wilde voor de SDN een evaluatie app maken. Bezoekers van een SDN event kunnen dan mobiel een evaluatie formulier invullen. Deze evaluatie data wordt in een data store op Azure bewaard. Uiteraard wil ik niet mijn tokens/connectionstrings/passwords etc in mijn mobiele apps opslaan. En aangezien ik niet voor elk device zelf een applicatie kan schrijven, deze gegevens delen met wildvreemde developers.

Screenshot (1)

Dus bedacht ik dat ik een aantal Webapi services beschikbaar moest stellen. Maar zoals hierboven genoemd, had ik behoefte aan eer developers portal om mijn services uit te leggen en wat ze opleveren. Dat is veel werk voor zo’n API als dit. Dit is mijn landingspagina nu; http://sdnevalapp.azurewebsites.net/.

1-7-2015 4-34-32 PM

Gelukkig is daar een oplossing voor op het Azure platform. De API management service (documentatie site).

1-7-2015 4-40-33 PM

1-5-2015 9-53-21 AM

Als je de service gemaakt hebt, dan is er een aparte portal (https://marcelmeijer.portal.azure-api.net/admin) waar je alle instellingen doet, waar je de metrics van je API ziet, de applicaties die aangemeld zijn, welke API het vaakst aangeroepen wordt etc.

1-5-2015 9-53-33 AM

Bij de settings kun je dan de webservices beschikbaar stellen. De verschillende operaties, welke http verb, welke responses er verwacht kunnen worden, welke URL, omschrijving en helpteksten.

1-5-2015 9-56-59 AM

1-5-2015 9-57-15 AM

De URL naar de bron services kan ook on-premises gehost worden. Uiteraard is het dan wel verstandig om de endpoints op deze URL te beveiligen met een Certificaten, UserName/Password combinatie of via OAuth.

Dit is de management portal voor de beheerder van de API(https://marcelmeijer.portal.azure-api.net/admin), voor de ontwikkelaars is er een aparte portal (https://marcelmeijer.portal.azure-api.net/). Deze kan tot op zekere hoogte ook gestyled en aangepast worden.

Deze Developer portal is redelijk compleet. Alle genoemde zaken zijn hier wel te vinden.

1-5-2015 9-53-44 AM

Zo is er een handig overzicht van de beschikbare API’s.

1-5-2015 9-53-59 AM

Van de beschikbare API kun je de beschikbare endpoints zien. Je ziet dan de omschrijving en de  URL om API aan te spreken. Om het endpoint te gebruiken moet je een subscription key meegeven. Het hele idee van deze portal is dan ook om gebruik te reguleren en met behulp van de subscription key is de API per applicatie/ontwikkelaar apart. Aangezien de endpoints aan de basis beveiligd zijn met Certificaten, Username/Passwords of via OAuth, heeft het geen zin om rechtstreeks naar de bron te gaan.

Op deze Developer portal kun je API methode ook uitproberen en de verschillende gedefinieerde HTTP acties uitvoeren. Je krijgt dan de trace en het resultaat te zien.

1-5-2015 9-54-38 AM

1-5-2015 9-54-56 AM

1-5-2015 9-55-30 AM

Helemaal onderaan de pagina kun je per programmeertaal voorbeeldcode krijgen. Alles om de ‘klanten’ van je API te ondersteunen en te helpen.

1-5-2015 9-55-45 AM

Zoals ik in het begin al zei, het beschikbaar stellen van een API is een maar om er een hele developer portal bij te maken is twee. Door deze Azure service kun je je richten op het echte leuke en belangrijkste van de API, de functionaliteit.

Waarom zou je het zelf doen, als je gebruik kunt maken van de expertise van andere. “You can reach further while standing on the shoulders of giants”

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?

Azure Virtual Machines still evolving!

De wizard om een Virtual Machine te maken op Azure is aangepast. Er zijn nu nog meer mogelijkheden.

Voor de grootte van een virtual machine kun je nu kiezen uit een Basic of Standard tier. Het verschil tussen beide is niet alleen een kostenaspect. De Standard tier machines hebben een Azure Load balancer en standaard voorbereid op Auto scaling. Bij een Basic tier machine kun je ook auto scaling bewerkstellingen met behulp van availabiltysets.

25-5-2014 15-48-05

Eerder werden bij het maken van een VM twee standaard endpoints toegevoegd. Als je er meer nodig had, dan kon je die na creatie van de VM toevoegen. Nu kun je ze bij het maken van de VM gelijk invullen. Dat is handig als je bijvoorbeeld een NAV VM wilt maken. Dat scheelt weer een stap in de verdere installatie.

25-5-2014 15-48-25

Je kunt nu ook allerlei extensions direct via deze wizard installeren. Naast standaard extensions zoals Puppet en Chef kun je ook je eigen scripts laten uitvoeren. Je kunt nu ook kiezen voor security extensions.

 25-5-2014 15-48-46

Het tool van Microsoft BGInfo is nu standaard onderdeel van een VM.

ext1

Ik heb het al eens eerder gezegd, dat het erg handig is om je MSDN account te koppelen aan je Azure subscription. Je kunt dan heel eenvoudig een development omgeving activeren. Of het nu gaat om een BizTalk, SharePoint of NAV development omgeving, met een paar klikken kun je aan de slag.

msdn1

msdn2

Je ziet het al in de Visual studio keuzes die er zijn, maar het is nu ook mogelijk om een Client OS omgeving te starten. Op die manier kun je Azure voor echte Dev/Test scenario’s gebruiken.

msdn3

Wil je alvast kennis maken met de volgende versie van Visual Studio. Gewoon even een standaard VM met VS14 configureren en 15 minuten later weet jij wat VS14 straks gaat bieden.

vs14

Zoals je ziet gaan de Azure ontwikkelingen erg snel en staan ze niet stil. Het platform evolueert naar een echte omgeving voor Dev/Test scenario’s.