Déployer sur Azure depuis Visual Studio pour Mac

Hey salut !

Une question qu’un collègue m’a posée récemment est de savoir s’il est possible de déployer une application sur Azure directement depuis Visual Studio pour Mac ?

La réponse est bien évidemment oui ! Toutefois, je constate que cela n’est peut-être pas évident pour tout le monde. C’est pourquoi, j’ai décidé d’expliquer la démarche dans cet article.

Attends, attends, il existe une version de Visual Studio pour… Mac ?

Oui ! Et tu peux l’obtenir depuis le site suivant : https://www.visualstudio.com/vs/mac/

Tu y trouveras 3 éditions (tout comme pour Visual Studio pour Windows) :

  • Community: qui est gratuite
  • Professional et Enterprise: qui nécessite une licence.

Si tu as une licence MSDN, tu peux obtenir, dépendamment du niveau de ta licence, la version Professional ou la version Enterprise.

Visual Studio pour Mac ou Visual Studio Code ?

Les deux ont leurs publics respectifs. Personnellement, j’utilise les deux :

  • VS Code pour le développement Python, NodeJS et pour mes scripts PowerShell
  • VS pour Mac pour le développement .NET Core

À ce niveau, il s’agit surtout d’une question de goûts. Personnellement, ce que j’aime dans VS pour Mac c’est le sentiment d’utiliser un Visual Studio semblable à celui que j’utilise sous Windows.

Scott Hanselman décrit les scénarios d’utilisation des deux IDE dans son article : https://www.hanselman.com/blog/ChoiceAmongstCrossplatformNETIDEsVSCodeVisualStudioForMacJetBrainsRider.aspx

Déployer une application web dans un App Service sur Azure directement depuis Visual Studio for Mac

Pour illustrer la démarche, nous allons créer une application ASP.NET Core MVC vanille que nous allons déployer, depuis Visual Studio pour Mac, dans un App Service sur Azure.

Commence par lancer Visual Studio pour Mac. Crée un nouveau projet de type « ASP.NET Core Web App (MVC) » et donnes-lui un nom. Pour ma part, je l’ai nommée « FlyMeToTheCloud ».

create project 1 of 2

create project 2 of 2

Côté code, le seul changement que j’ai apporté est de remplacer le contenu du ViewData[“Message”] par « From Visual Studio for Mac to Azure App Service ».

Nous allons à présent déployer l’application dans un Azure App Service.

Pour cela, fais un clic droit sur le nom du projet et, dans le menu qui apparaît, cliques sur « Publish » puis sur « Publish to Azure… ».

publish to azure

Connecte-toi à ta souscription Azure :

connect to azure

La liste des comptes auxquels tu t’es connecté te seront présentés. Sélectionne le compte que tu souhaites utiliser puis ferme cette fenêtre via le bouton de fermeture (le rond rouge en haut à gauche de la fenêtre de dialogue). Tu verras apparaitre la liste des ressources créées dans toutes les souscriptions associées au compte choisi.

Tu peux sélectionner un App Service existant ou en créer un nouveau. Nous allons en créer un nouveau (via le bouton « New »).

resources list

Il faut entrer un nom pour l’App Service, sélectionner la souscription dans laquelle se fera le déploiement, sélectionner le groupe de ressources et le plan de service.

new app service

En cliquant sur le bouton « Create » pour lancer le déploiement, Visual Studio pour Mac t’indiqueras que bien que le déploiement soit en cours, tu peux continuer ton travail dans Visual Studio. Maintenant que tu le sais, tu peux indiquer à Visual Studio que tu ne souhaites plus voir ce message.

you can continue working in vs while publishing

Tu seras aussi tenu informé de l’état d’avancement du déploiement:

publish in progress

publish completed

Une fois le déploiement terminé, ton navigateur sera lancé et l’application déployée apparaitra sous tes yeux ébahis! 🙂

the running web app

Voilà! Ce n’était pas plus compliqué que ça…

En conclusion…

L’interaction avec Azure étant basée sur des appels à des services REST te permets de le faire depuis n’importe où, que ce soit depuis Visual Studio pour Windows, pour Mac, VS Code, depuis la ligne de commande (via PowerShell ou Azure CLI), depuis le portail d’Azure (donc sur le Web) ou encore depuis l’application Mobile Azure et ce, sous Windows, Linux ou macOS.

Aussi, via les différents SDK d’Azure offerts pour divers langages et diverses plateformes (.NET, NodeJS, Python, Go, Java, …), tu peux intégrer ces interactions au sein même de tes applications.

Ça en offre de la flexibilité !

À la prochaine !

Comments are closed.