Développer sous VS Code / Windows en remote sur un Linux WSL / Github Codespaces en quelques minutes

Grand fan de WSL (sous-système Linux) qui apporte à Windows la touche manquante comparé à un environnement de développement Mac : un véritable Shell Linux/Unix. WSL rend accessible bon nombre d'outils de développement uniquement disponible sous Linux (ou s'exécutant mieux et avec moins de configuration et de dépendances).

A cela s'ajoute le fait que vous pouvez avoir plusieurs sous-systèmes Linux et vous en servir comme environnement de développement dédié, et cela sans avoir besoin de lancer une VM Hyper-V coûteuse en ressources et une intégration avec Windows beaucoup moindre (accès aux fichiers directement, intégration Visual Studio, etc). Pas besoin donc de déployer tous les runtimes et langages (Python, Ruby, Go, NodeJS, etc) sur votre machine de production Windows.

Cet article vous présente le développement avec un environnement distant WSL, mais cela s'applique à bon nombre d'autres scénarios dont le service Github Codespaces.

Prérequis

  • Windows Terminal : la fine fleur du terminal sous Windows (même si Commander a encore un peu d'avance mais Terminal suffit largement dans la majorité des scénario)
  • WSL installé (Windows 10/11) : voir la documentation suivante et avec une distribution déployée
  • Extensions Visual Studio Code :
    • Remote - WSL

Installation de VS Code Server sur vos distro WSL

En une ligne : dans votre shell Terminal connecté à votre système WSL, saisissez :

code

Laissez le système installer le serveur (hôte) tout seul :

Puis laissez VS Code s'ouvrir pour vous tout seul :

En prime vous aurez droit d'avoir un walkthroughs "Get started with Remote -WSl" à vous mettre sous la dent pendant quelques minutes pour vous aider dans vos premiers pas à bien comprendre le développement remote sur votre distro Linux.

Vous pourrez aussi ouvrir directement le répertoire courant dans lequel vous avez lancer code grâce à l'explorateur :

Le terminal VS Code est déjà directement branché sur votre shell WSL :

Vous pouvez maintenant installer tous les langages et les extensions nécessaires pour faire de votre WSL votre environnement de développement.

Extensions

Les extensions de votre VS Code ne seront pas activées dans cette configuration de travail à distance sur votre instance WSL. En réalité, ils n'ont pas les droits pour accéder aux fichiers distants ni d'exécuter des scripts à distance. C'est pour cela qu'il existe des extensions de "lieu de travail" - on utilisera workspace pour la suite 🙄 - qui eux s'exécutent dans l'environnement distant et peuvent donc accéder aux fichiers, permettre de débugger, exécuter des scripts, etc. (voir schéma dans la partie suivante pour mieux comprendre l'architecture).

Il faudra les réinstaller dans l'hôte de travail à distance WSL :

Attention : soyez patient il faudra parfois un peu de temps pour que l'extension s'installe et que l'UI de VS Code réagisse pour vous dire que c'est en cours ou installé.

Optionnel : comment ça marche techniquement ?

Je ne ferais pas mieux que la documentation qui vous présente cela très bien : Supporting Remote Development and GitHub Codespaces | Visual Studio Code Extension API

Bonne lecture pour les plus techniques d'entre vous.

Conclusion

Que dire à part : à vous les joies d'un environnement de développement Linux tout en restant sur votre Windows pour utiliser le meilleur de ces deux mondes !

Vous pourrez trouver quelques informations supplémentaires spécifiques à l'utilisation d'un environnement distant WSL dans la documentation Developing in the Windows Subsystem for Linux with Visual Studio Code.

#Teams : mettre un fond personnalisé pour vos réunions et le personnaliser :)

Déjà en 2018, la fonctionnalité permettant de flouter l'arrière plan de nos vidéos était une belle innovation en soi. Depuis quelques jours, ce qui égaye notre confinement, Microsoft a délivré une nouvelle fonctionnalité : les images de fond personnalisé ! (Lien vers la roadmap Microsoft 365)

Maintenant vous avez la possibilité de pouvoir choisir plusieurs options de fond dans le client Teams :

  • Aucun
  • Flou
  • Image de fond personnalisé (galerie d'images proposée par Microsoft)

A ce stade, il n'existe aucune option pour administrer cette fonctionnalité mais Microsoft travaille dessus. En conséquence, il n'existe aucune option permettant d'ajouter vos propres images depuis le client Teams pour le moment. A voir si cela sera administrable au niveau de l'organisation ou via les stratégies de réunion. Cette fonctionnalité devrait arriver en Mai 2020 selon la roadmap.

En attendant on contourne problème ... ou comment mettre ses propres fonds !

Vous pouvez contourner ce manque avec la procédure suivante :

  1. Naviguer dans le répertoire %APPDATA%\Microsoft\Teams\Backgrounds\Uploads
  2. Ajouter une image PNG (résolution 1920 x 1280) dans ce répertoire :

3. Et voilà, votre image apparaît en fin de liste des images de fond dans Teams :

Enjoy !

Visual Studio Core for PowerShell 7

With the release of “PowerShell Core 7”, now just “PowerShell 7”, the VS Code team just released a major update of the PS extension for VS Code.

In short, what’s new :

  • ISE Compatibility module
  • Syntax Highlighting, Multi-Line Editing and Back Search in the Integrated Console
  • Performance Improvements
  • Take care of some breaking change

You can find the full announcement here : https://devblogs.microsoft.com/powershell/visual-studio-code-for-powershell-7/

How to install PowerShell Core 7 on Windows and Linux

PowerShell is a must have skill for a developer or system administrator working in the Microsoft ecosystem, but not only. With the release of the version 7 of PowerShell Core, the improvements and new features make more us more powerful to to what we need to be do for our clients.

The PowerShell team announced PowerShell 7 here. PowerShell 7 is now built on .NET Core 3 and brings back many APIs required by modules built on .NET Framework, so now they work with .NET Core runtime and PowerShell 7 ! This is a huge improvement for what we can do with PS.

Here is how you can install and update PowerShell Core 7 on Windows and Linux (preview) from officiel documentation :

Windows 10 install

1. On Windows 10, you can execute this simple command line to install PS Core 7 with a PS instance (with administrator rights) :

iex "& { $(irm https://aka.ms/install-powershell.ps1) } –UseMSI -Quiet"

image

Note : If you install a previous version of PowerShell Core (PS6 for example) and you use –Quiet option, it will fail to install PS7. In that case, remove the –Quiet option and follow the installer UI instructions.

2. To launch a PSC7 instance, either right click in a directory ‘PowerShell 7 > Open here’ or just type ‘pwsh’ :

image

image

Linux install

PowerShell 7 supports the following operating systems on x64, including:

  • Windows 7, 8.1, and 10
  • Windows Server 2008 R2, 2012, 2012 R2, 2016, and 2019
  • macOS 10.13+
  • Red Hat Enterprise Linux (RHEL) / CentOS 7+
  • Fedora 29+
  • Debian 9+
  • Ubuntu 16.04+
  • openSUSE 15+
  • Alpine Linux 3.8+

Note : latest version 19.10 is not supported :
image

1. In a bash terminal, just execute the following command line :

wget https://aka.ms/install-powershell.sh; sudo bash install-powershell.sh; rm install-powershell.sh

2. To launch a PSC7 instance in the bash just type ‘pwsh’ :

PS 7 works fine even on a low Memory/CPU computer Smile

For Linux, you can see the documentation here : https://docs.microsoft.com/fr-fr/powershell/scripting/install/installing-powershell-core-on-linux?view=powershell-7.

Teams is available on Linux and it’s easy to install !!

This cool announcement was made here : https://techcommunity.microsoft.com/t5/microsoft-teams-blog/microsoft-teams-is-now-available-on-linux/ba-p/1056267 and it made my day at this time 🙂 Several weeks later, I just wanted to share with you how easy it is to install Microsoft Teams on your Linux distro (Debian or Fedora like).

  1. Download the package according to your Linux distro by navigating on this page : https://teams.microsoft.com/downloads#allDevicesSection

2. Execute/Install the package with the package manager :

3. Enter your Office 365 credentials and boom Microsoft teams is up and ready to use !

This is only a preview version but so far everything looks to work pretty well. One of the first Microsoft client to be available on Linux, it rocks 🙂

#Office365 #Teams

How to use the amazing feature Visual Studio Live Share

Visual Studio Code is one of the most active project on Github for Microsoft developers community. VS Code spread around the developer world like black powder and brings for a lots of different skilled professionals and amateurs a best of bread code editor.

Event if the project brings a lot of new feature on a monthly based release, something there is a new feature that provide far more power to developers, and Live Share one of them.

Live Share was released back in 2018 ( https://code.visualstudio.com/blogs/2018/05/07/live-share-public-preview) to provide universal and secure collaboration between developers even working on different operating system at the same time, only one thing care : your code and whatever it is C#, Angular app, Go, etc !

Live Share is now available on Windows, Mac and Linux !!!!

Python-based IntelliSense

The addin provided on Visual Studio and Visual Studio Code can only share terminals between developers to make them able to debug live ! Isnt't it awesome ?!?

You can show the introduction video from Jon Chu :

In short, how does it work ?

The process is quite simple : 1. Install 2. Get a Microsoft account (if you don't laready have one) 3. Create and join a session 4. Code with your buddy 🙂

Installation

The installation process is fairly simple : go to the Live Share extension homepage => https://visualstudio.microsoft.com/fr/services/live-share/

Create a new session

1. Click on the 'Live Share' button in the left panel :

2. Click on 'Start collaboration session' in the Live Share panel :

3. Click on the 'Share Now' button

4. VS Code will ask you to connect to your Github or Microsoft account y opening a web window

5. Live Share will provide you a link for the collaboration session, copy it and send it to your friend / colleague by email or Teams.

6. Wait for your friend to join the session and ... code, debug, execute ! Whan a guest join a session, you'll be notified and start seeing different colored dot associated with file modified in live.

Microsoft also release a Live Share Audio plugin to enable developers to exchange by voice and Arjun Attam also make a

chat addin for Live Share that provide you with a more deep collaboration level experience.

In a context of remote work collaboration, this addin is an excellent asset for your team ! Try it !

Tool of the week : Camtasia from Techsmith

When you are doing conferences and presentations to other people, you need a great tool to capture your screens and voice. I tried a lot of softwares, most of them are free and/or open source but no one give me exactly what I was looking for : a light footprint when operating screen capture (it’s a mess when your system slow down just cause you are screencasting), powerful in terms of features and options to capture your work, with a real editor and bug free (not crashing during working and wasting your time) ! I' don’t have a big expectation but a lots of softwares just deceive me, that’s why I wasn’t able to share my presentations from the last Docker meetup.

Being an MVP is a cool thing : you can share with a lot of people, sharing your tools and knowledges. During a conversation with a buddy of mine, he recommends me the ONE tool you need for your next presentations ! From years now, Techsmith is providing Camtasia to professionals and I decided to try it ! I can just truely recommend you to give it a try here : https://www.techsmith.com/ and share your next presentations.

Share your passion with Camtasia !