English
Français

Blog of Denis VOITURON

for a better .NET world

TechDay Conf 2020

Ce samedi, j’ai eu la chance de participer à la première édition de TechDay Conf, c’est une conférence virtuelle. Elle inclut des sessions techniques de quelques dizaines de minutes. Cette conférence est dédiée exclusivement au développement d’applications, à la transformation du cloud et au nouveau framework web comme Blazor.

Mes deux sessions du jour concernent :

  1. Evitez Entity Framework. Faites du Mappage Relationnel Objets.
  2. Visual Studio 2019 – Codez comme un ninja.

Certificat SSL pour une App Services Azure

Dans un article précédent, je vous présentais comment créer un certificat SSL gratuit via Lets’Encrypt.

Le principal (ou le seul) problème à Let’s Encrypt est que le certificat à une durée de vie de maximum 3 mois. Ce qui signifie que vous devez le renouveller et l’installer manuellement ou automatiquement très régulièrement.

Pour éviter cela il est nécessaire d’acheter un certificat SSL dont la date d’expiration peut aller jusqu’à plusieurs années.

Secure web site

Plusieurs étapes sont nécessaire pour créer et installer un certificat SSL dans Azure.


Comment mocker DateTime dans les tests unitaires

Aujourd’hui, un développeur est venu me demander comment tester son code qui contient une référence à DateTime.Now. Effectivement, il arrive que votre application traite ses données différemment, en fonction de la date du jour. Par exemple, comment vérifier le code suivant, qui dépend du trimestre courant ?

int trimester = (DateTime.Today.Month - 1) / 3 + 1;
if (trimester <= 2)
    ...
else 
    ...

Application Insights pour vos WebAPI

Application Insights est une fonctionnalité d’Azure Monitor. C’est un service extensible d’Application Performance Management (APM). Utilisez-le pour surveiller votre application. Il détectera automatiquement les anomalies de performance. Il inclut de puissants outils d’analyse pour vous aider à diagnostiquer les problèmes et à comprendre ce que les utilisateurs font réellement avec votre application.

1. Activer Application Insights.

Pour utiliser ce service, c’estr très simple.

  1. Il suffit d’ajouter ce service Application Insights à votre hébergement Azure. Si vous avez déjà un App Service (pour votre site web, par exemple), vous disposez déjà du service. Récupérez la clé Instrumentation Key, depuis l’écran Overview du service Application Insights.

  2. Dans votre projet ASP.NET Core, ajoutez le package NuGet ApplicationInsights.

  3. Rérérencez ce nouveau service dans votre classe Startup: services.AddApplicationInsightsTelemetry();

  4. Créez ou modifiez votre fichier appsettings.json en y spécifiant l’Instrumentation Key:

{
  "ApplicationInsights": {
    "InstrumentationKey": "2212b9e0-4715-1765-1746-12cbe02edd67"
  }    
}

Démarrez votre projet et naviguez dans les API ou les écrans. Après quelques secondes, vous verrez apparaître les traces dans le portail Azure.

Application Insights Demo


Blazor Code Behind (class partielle)

MISE A JOUR: Le 15 octobre 2019, Microsoft a annoncé le support des classes partielles. Cet article est la mise à jour de la version du 6 octobre dernier.

Si, comme moi, vous commencez à développer des projets avec Blazor, vous préférez peut-être séparer votre code HTML de votre code CSharp.

En effet, tous les exemples présentés par Microsoft, utilisent ce format, où le code est injecté depuis la page Web via l’attribut @code.

<!-- File "Counter.razor" -->
@page "/counter"

<h1>Counter</h1>
<p>Current count: @currentCount</p>
<button @onclick="IncrementCount">Click me</button>

@code {
    int currentCount = 0;

    void IncrementCount()
    {
        currentCount++;
    }
}

Personnellement, je préfère décomposer le visuel dans un fichier .razor du code CSharp dans un fichier .razor.cs. Ce dernier contient une classe partielle au nom du composant.


GIT authentication

Pour vous connecter à Azure DevOps, il existe plusieurs manière de s’authentifier. L’une des manière les plus simple sous Windows, est d’utiliser GIT Credential Manager. Ce GIT Credential Manager crée et enregistre un Personal Access Token en ouvrant une fenêtre de connexion vers Azure DevOps.

Il arrive parfois que le Token soit invalide. Il faut alors demander d’en génerer un nouveau.

\> git fetch
remote: TF401019: The Git repository with name or identifier MyProject does not exist or you do not have permissions for the operation you are attempting.
fatal: repository 'https://dev.azure.com/.../MyProject/_git/MyProject/' not found

Blazor Code Behind

MISE A JOUR: Le 15 octobre 2019, Microsoft a annoncé le support des classes partielles. Une nouvelle version de cet article ce trouve ici.

Si, comme moi, vous commencez à développer des projets avec Blazor, vous préférez peut-être séparer votre code HTML de votre code CSharp.

En effet, tous les exemples présentés par Microsoft, utilisent ce format, où le code est injecté depuis la page Web via l’attribut @code.

<!-- File "Counter.razor" -->
@page "/counter"

<h1>Counter</h1>
<p>Current count: @currentCount</p>
<button @onclick="IncrementCount">Click me</button>

@code {
    int currentCount = 0;

    void IncrementCount()
    {
        currentCount++;
    }
}

Personnellement, je préfère décomposer le visuel dans un fichier .razor du code CSharp dans un fichier .razor.cs. C’est tout à fait réalisable et sans difficultés, en créant :

  1. Un fichier Counter.razor qui fait référence à la classe via @inherits.
  2. Une classe CounterBase qui hérite de ComponentBase.

Evénement ReBUILD 2019

Ce jeudi 3 octobre, avait lieu l’événement communautaire ReBUILD à Nantes.

Adrien Clerbois et moi-même, avons eu la chance de présenter deux sessions autour des technologies DevOps.

En voici les slides.


Azure DevOps - Compiler avec .NETCore 3

Voilà quelques jours que Microsoft a publié la version finale de .NETCore 3.0.

Developper avec .NET Core 3.0

Pour utiliser cette version, configurez votre csproj pour définir la TargetFramework et les paramètres de publication : un seul fichier pour Win10-x64.

<PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <RuntimeIdentifier>win10-x64</RuntimeIdentifier>
    <PublishSingleFile>true</PublishSingleFile>
    <PublishTrimmed>true</PublishTrimmed>
</PropertyGroup>

Vous pouvez publier votre projet en un seul gros exécutable, via la commande Publish de Visual Studio (click-droit sur le projet).


AspNetCore WebAPI - Authentification Google

De plus en plus de projets disposent de rubriques sécurisées par des identités Google, Twitter ou Microsoft. Par exemple, pour Google, vous devez créer un identifiant et préciser l’URL de retour. Puis vous devez activer le service Google Authentication et sécuriser vos méthodes via [Authorize]. Le premier appel d’une méthode sécurisée vous redirige automatiquement vers la page de Google.


Langues

EnglishEnglish
FrenchFrançais

Suivez-moi

Articles récents