Windows 11 : mes raccourcis préférés avec la touche Windows

Exploiter toute la puissance d'un système d'exploitation, c'est avant tout de savoir se servir des raccourcis de celui-ci, et Windows en est particulièrement doté !

Je vous livre quelques uns de mes raccourcis avec la touche Win(dows), mais sachez que Microsoft a doté chacune des lettres de notre alphabet avec des raccourcis et même des combinaisons avec Ctrl & co ... c'est pour dire la culture des raccourcis de cet OS !

Win + D : Afficher er masquer le bureau

Win + E : Ouvrir l'explorateur de fichiers

Win + I : Ouvrir les Paramètres Windows

Win + M : Réduire toutes les fenêtres

Win + P : Sélection du mode de présentation

Win + . OU Win + ;➡️ vous ouvre le panneau des emoticons + GIF + le raccourci indispensable pour les messageries😍

Win + flèches : positionner la fenêtre en cours sur l'écran ou les écrans

Win + espace : changer de langue du clavier

Pour les autres raccourcis, vous pourrez trouver ceux-ci et bien plus encore dans la Docs de Microsoft ➡️ Raccourcis clavier dans Windows (microsoft.com)

[20th anniversary of .NET] Best of C# : null operators

In this series, I'd like to share with you my best experiences with .NET / C# and the best evolutions the .NET team brings us over the time.

Today I'd like to talk about null operators 🙂 C# provides 3 operatrs to make it easier to with with nulls :

  1. Null conditional operator
  2. Null coalescing operator
  3. Null coalescing assignment (new in C# 8)

You can find more details about these operators in this great book => Amazon.fr - C# 10 in a Nutshell: The Definitive Reference - Albahari, Joseph - Livres

Null-conditional operator

The ?. operator is also called the Elvis operator and as originally introduced in C# 6. It allows you to call methods and access members like the . operator except that if the left operand is null, the expression is evaluate to null without throwing the killer exception 'NullReferenceException'.

string s = null;
string sUpper = sb?.ToUpper(); // sUpper is null

The only condition is that the final expression/assignment is capable of accepting a null (exit all value type) :

string s = null;
int lengthS = s?.Length; // Won't compile

Then use a Nullable :

string s = null;
int? lengthS = s?.Length; // Ok

Null-coalescing operator

The very useful ?? operator tells to return the value of the left operand if it's not null, else return the specify value (right operand - example : default value)

string s = null;
string sDefault = s ?? "My default value"; // sDefault is "My default value"

Another good use of this operator is to check an assignment and rise an exception if null (example in ASP.NET controller or anywhere else) :

_companyRepository = companyRepository ?? throw new ArgumentNullException(nameof(companyRepository));

Null-coalescing assignment (C# 8)

The ??= operator assigns a variable only if it's not null. So it's a sugar syntax to replace this :

if (s != null) s = "Hello world";

with this :

s ??= "Hello world";

Add data attributes in Razor view with HTML helper method

With HTML 5 and JS frameworks heavily using data attributes within HTML tags, Razor views could cause you a headache without this little tip for attributes.

For example Data attributes have a syntax like "data-*". If you add the hyphen within the name of an attribute in your anonymous class, Razor engine will interprets it simply as a minus sign ... and won't compile !

To add a Data attribute (or any other attribute with a hyphen within the name) within an HTML helper, you should replace the hyphen with an underscore. Hence, Razor engine will understand this and converts it to a hyphen in the HTML output.

@Html.DropDownList("Country", ViewData["Countries"] as SelectList, new { @class = "selectpicker", data_style = "btn-form-control" })

The HTML output will be:

<select id=”Country” name=”Country” class="selectpicker" data-style=”btn-form-control” />

O365 Echange ‘Your organization does not allow external forwarding’ issue

If you are receiving the following error in your email :

Delivery has failed to these recipients or groups:
Your message wasn’t delivered because the recipient’s email provider rejected it.

And then when you go into the message content you read this error:

Remote Server returned '550 5.7.520 Access denied, Your organization does not allow external forwarding. Please contact your administrator for further assistance. AS(7555)'

You might be experiencing the new security change Microsoft implemented on late 2020, which by default blocks forwarding to external recipients on a mailbox.

To resolve this issue, go to https://protection.office.com and go under Threat Management > Policy > Anti-Spam Policy > Anti-spam outbound policy > Edit Policy :

The future forward messages to any mailbox will now be process successfully by O365. Cuation : the settings can take several minutes to take effect.

Migrer vos applications vers .NET 5 avec l’assistant de migration (partie 1)

Même si toutes ne savent pas comment, les sociétés qui développent des logiciels souhaitent suivre le rythme effréné des montées de version, que ce soit des OS, des frameworks ou des bibliothèques. L’objectif est de ne pas être larguer, de pouvoir parfois gagner en performances, résoudre quelques problèmes de sécurité du framework ou encore permettre d’utiliser des technologies plus modernes (HTTP 2, etc) lors de ces passages.

Pour que les équipes de développement, l’objectif sera surtout de suivre les évolutions, d’identifier les breaking change, de refactoriser le code et également de garder la motivation de maintenir, ce qui deviendra quoiqu’on en veuille : ‘une vieille application à maintenir’.

Pour la société, l’objectif sera surtout de minimiser le coût de cette montée de version, qui si elle n’apporte pas de valeur ajoutée pour les utilisateurs (hormis de meilleurs performances et une sécurité parfois renforcé, concernant le framework en lui-même aka cela n’améliorera pas votre code dans ce domaine par magie) permet d’avoir sur le marché des ressources plus à même d’intervenir sur des technologies récentes qu’anciennes.

MAIS … la stratégie est souvent de faire un POC de mise à niveau d’un projet ‘pas trop gros’, et de se dire ‘voici une application A’, on essaye, et si ça ne coûte pas trop cher on fera l’application B, C, etc. Le biais dans lequel l’entreprise risque de tomber est qu’elle pensera que calculer le temps d’upgrade d’un premier projet, sur lequel l’équipe essuie tous les plâtres de la migration, pourra servir de référence de charges/coûts pour les suivantes. C’est du bon sens … mais c’est ce qui se passe tous les jours, dans d’autres domaines dans les sociétés …

En résumé, la migration d’un projet vers .NET Core 5 prendra beaucoup du temps et la décision sera de ne pas migrer les projets amenant une montagne de ‘vieilles applications à maintenir’ à être maintenu par des personnes dont la motivations égalera celle d’un paresseux au repos. Mais tada … Microsoft à créer l’upgrade assistant pour vous afin de vous aider au maximum à pouvoir évaluer la migration et vous assister dans cette tâche, surtout sur les parties simples et fastidieuses d’une migration de code. Mais attention, cet outil est votre assistant et le magicien c’est vous, pas lui !

Installation

L’assistant de migration est un outil dotnet (dotnet tool) qu’il suffit d’installer de cette manière :

image

Troubleshooting

Erreur “Impossible de charger l’index de service pour la source “/ “Unable to load the service index for source”

Cette erreur arrive lorsque vous avez déclaré un source Nuget dans votre configuration Nuget dont l’outil n’arrive pas à accéder (mauvaise URL, credentials outdated, etc).

image

Dans ce cas, rien de plus simple vous avez deux options :

1. Utilisez l’argument --ignore-failed-sources dans la ligne de commande

2. Supprimer la source dans votre fichier de configuration Nuget qui se trouve dans :

image

Windows Terminal : modifier le shell par défaut

A chaque fois que j’ouvre Windows Terminal, cela ouvre PowerShell pour Windows, ce qui ne correspond pas à mes habitudes d’utilisation (PowerShell Core ou Bash Linux/WSL Linux).

POur se faire, allez dans Paramètres :

image

Cela ouvre le fichier de configuration de Windows Terminal dans Code (ou Blocnote en fonction de votre configuration d’ouverture par défaut des fichiers) :

image

La ligne importante est le defaultProfile qui détermine le profile par défaut qui s’ouvre lorsque vous lancez Windows Terminal.

Si vous regardez un peu plus bas, vous trouverez la liste des profils dans la sections profiles/list.

image

Copiez le GUID du profile qui vous intéresse par défaut et copier le dans la valeur de defaultProfile.

Et tada, la fois d’après vous ouvrirez votre shell préféré au lancement de Windows Terminal.

image

#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 !

#Teams : utilisez la barre de commandes / recherche pour vous faciliter la vie ! (1/2)

Comme la plupart des produits et services Office 365, Teams propose une fonctionnalité de recherche et de commandes, souvent peu connue et mal exploitée par la majorité des utilisateurs. Pourtant la barre de recherche ou barre de commandes a été conçue avec quatre fonctions clés en tête : le multi-tâche, la prise d'action rapide, la requête de données et être extensible aux autres applications (à l'instar de Visual Studio Code et sa palette de commandes).

En une seule barre, Teams vous propose 3 axes d'actions :

  • La recherche de contenu (Chat, Documents (nom et contenu), Equipes, Canaux, Personne)
  • Personnes / Applications
  • Les commandes

Je finirai ce post en vous parlant des raccourcis dont regorge Teams.

La recherche de contenu

La recherche de contenu fournit un moyen efficace de rechercher des informations (messages, fichier, personnes) sur Microsoft Teams dans Exchange (messages), SharePoint Online (fichiers) et OneDrive Entreprise. Vous pouvez trouver la documentation technique ici pour plus d'informations.

Pour utiliser la recherche de contenu, saisissez un terme ou un ensemble de termes dans la barre supérieure de Teams et appuyez sur Entrée :

Les résultats de recherche s'affichent à gauche dans un panneau composé de 3 onglets : Messages, Personnes et Fichiers, qui vous permettent de retrouver les contenus par rapport à leur type :

Pour retrouver votre aiguille dans la meule d'informations que Teams et Office 365 est capable de stocker, Teams propose une interface de filtrage plutôt pas mal pensée :

Note importante : La recherche de contenu dans les messages et les fichiers de canaux privés ne fonctionne pas de la même manière que dans les canaux standard. Pour en savoir plus, voir recherche de contenu de canaux privés.

#Teams : Ajouter du stockage Cloud (Dropbox, Box, Google Drive, SharePoint) à votre canal Teams

Nous travaillons tous avec plusieurs services en ligne de stockage, d'éditeurs parfois différents de Microsoft, soit par héritage, soit parce que vous venez tout juste de déployer Office 365.

Une des possibilités plutôt très intéressantes de Microsoft Teams est que vous n'êtes pas dépendant de SharePoint Online pour le stockage de vos fichiers et que vous pouvez ajouter la consultation des fichiers hébergés dans les services SharePoint, Dropbox, Box, Google Drive et Citrix ShareFile (seuls services actuellement supportés).

Update 13/05/2020 : le support de Egnyte est annoncée par Microsoft avec une release courant Mai 2020.

1. Pour ajouter votre répertoires de fichiers externes, naviguez dans l'onglet Fichiers de votre canal, puis cliquez sur + Ajouter du stockage cloud :

2. Une fenêtre 'ouvre pour que vous puissiez sélectionner le service que vous souhaitez ajouter (SharePoint, Dropbox, Box, Google Drive et Citrix ShareFile) :

3. Pour cet article, je vais utiliser Dropbox et donc cliquez sur Dropbox.

4. Une fenêtre de connexion Dropbox s'ouvre pour vous demander d'autoriser le service Microsoft teams à accéder aux informations de vos dossiers Dropbox. Entrez les informations de votre compte Dropbox pour autoriser Teams à vous lister vos répertoires Dropbox :

Et voilà !

Administration du partage de stockage des fichiers cloud

Pour administrer quels sont les services qui peuvent être partager ou non dans l'interface Teams, connnectez vous à l'administration de Teams puis Paramètres à l'échelle de l'organisation > Paramètres teams > Fichiers :

Utiliser le Tableau blanc / Whiteboard pour Teams

Dans ce contexte de télétravail, il est important de bien s'outiller car de vos outils dépendent votre productivité, votyre motivation à travailler et votre capacité à rester connecté avec les autres en éprouvant le moins de limitation possible par rapport à des échanges physiques en face à face. En gros éviter la frustration et faciliter la communication avec vos collaborateurs.

Je tenais donc à vous présenter aujourd'hui : le Tableau blanc ! Que vous pouvez utiliser avec ou sans Teams, mais l'intégration avec teams est plutôt très intéressante dans la pratique.

Note : A cause du MS Whiteboard, je suis maintenant l'heureux propriétaire d'une tablet de dessin ! Et l'expérience est au rendez-vous une fois que l'on prend l'habitude de l'utiliser.

Installation et configurer Whiteboard dans Office 365

  1. Allez dans l'administration de votre tenant (il faut que vous en soyez l'administrateur) : https://admin.microsoft.com/adminportal/home
  2. Cliquez sur Paramètres > Paramètres :

3. Dans l'écran de Paramètres, cliquez sur l'onglet Services :

4. Cliquez sur Whiteboard :

5. Cliquez sur Activez Whiteboard pour tous les membres de votre organisation et cliquez en bas de page sur Enregistrer les modifications :

Utilisation de Whiteboard depuis l'app web

Vous pouvez utiliser directement Whiteboard depuis le portail Office 365 (https://portal.office.com) et lancer l'app depuis la page :

  1. Vous pouvez créer un nouveau tableau blanc en cliquant sur 'Create new Whiteboard' :

2. Une fois sur le tableau, vous pouvez utiliser les outils de dessin (4 couleurs + 1 gomme d'effacement) pour composer vos oeuvres d'art explicatives.

3. Tout l'intérêt est évidemment de pouvoir partager ce tableau pour interagir avec des collaborateurs ! Pour cela, cliquez sur 'Share'/'Partager' pour faire cela :

4. Pour exporter vos chefs d'oeuvre graphques en dehors de Whiteboard, cliquez sur Settings/Paramètres puis Exporter l'image en SVG/Export image to SVG

Utilisation de Whiteboard dans Teams

Une fois que vous avez activé Whiteboard dans votre tenant, vous serez en capacité de pouvoir activer le tableau blanc directement depuis l'interface Teams en cliquant sur l'icône du partage :

Et la magie de Whitebard est là pour vous aider à faire croquis, dessins et autres compositions artistiques pour une collaboration en temps réel !