Archives de
Étiquette : .Net

Logger en Debug dans une bibliothèque de classes compilée en Release

Logger en Debug dans une bibliothèque de classes compilée en Release

Aujourd’huis, je devais livrer une bibliothèque de classes qui permettait de logger des actions uniquement en DEBUG. Or, je devais livrer le code compilé Release. Quand on livre un package nuget celui ci doit être optimisé, on ne peut pas se permettre de livrer en DEBUG. La problématique : Si j’appelle directement la méthode Debug.WriteLine de la manière suivante : La méthode fonctionne en DEBUG, mais en RELEASE plus rien n’est loggé. Si on jette un coup d’œil à l’implémentation…

Lire la suite Lire la suite

Silverlight 6 : le plugin ne meurt jamais

Silverlight 6 : le plugin ne meurt jamais

Vous en rêviez, Microsoft l’a fait : Silverlight 6 va enfin sortir, neuf ans après la release de Silverlight 5. Sous la pression la croissante des développeurs, Microsoft se décide enfin de mettre à jour la célèbre technologie. Quelles sont les nouveautés ? Microsoft disrupte encore une fois le web avec Silverlight 6. Les principales nouveautés sont : Disponible sur mobile Intégration de la réalité augmentée Support de .NET Standard 2.1 Blockchain ready Et bien plus encore… Disponible sur mobile…

Lire la suite Lire la suite

C# : FormattableString

C# : FormattableString

Aujourd’hui, je viens de découvrir la class FormattableString 2 ans après que ça soit sortie. Cette classe a été ajouté avec la fonctionnalité de string interpolation en C# 6.0. String interpolation Pour rappel la string interpolation a été une petite révolution car elle nous a permit de rendre le code beaucoup plus clair. Par exemple pour formater une string je n’ai plus à écrire : Je peux écrire plus simplement : Mais en quoi est-ce lié aux FormattableString ? Si…

Lire la suite Lire la suite

EntityFramework Core et Sqlite : Upsert/Replace

EntityFramework Core et Sqlite : Upsert/Replace

Aujourd’hui je devais insérer ou mettre à jour massivement des milliers de lignes dans une base de données SQLite en utilisant Entity Framework Core. Le contexte Une approche simple pour effectuer cette opération pourrait être : de vérifier si la ligne existe en base de données de l’insérer si elle n’existe pas de la mettre à jour si elle existe Cependant, cette approche est anti-performante car, pour chaque ligne à mettre à jour, il faudrait effectuer deux requêtes. Dans mon…

Lire la suite Lire la suite

Tiny.RestClient : le client REST pour consommer vos API

Tiny.RestClient : le client REST pour consommer vos API

Je suis très heureux de vous présenter un projet sur lequel je travaille depuis un petit moment : un client REST compatible .NetStandard entièrement fluent. Le code est disponible sur Github. Et la librairie est sur nuget. Vous voulez en parler ? Passez me voir sur Gitter Le but principal de client est d’avoir un client REST optimisé et simple à utiliser. Il est compatible .Net Standard 1.3 et 2.0 ce qui signifie qu’il est utilisable sur le .Net Framework…

Lire la suite Lire la suite

CsProj SDK Style : cibler plusieurs frameworks avec un seul csproj

CsProj SDK Style : cibler plusieurs frameworks avec un seul csproj

Aujourd’hui, je voulais faire en sorte que la dll cible plusieurs versions du framework. Or avant le csproj de type “SDK style”, il fallait faire un fichier csproj par framework cible ce qui était long et fastidieux. Désormais avec le nouveau format de csproj nous avons une nouvelle propriété appelée TargetFrameworks qui permet de générer notre dll dans différents formats de dll avec un seul csproj. Si je veux que ma dll soit compilée en .Net Standard 2.0 et que…

Lire la suite Lire la suite

Démystifier .NET Standard

Démystifier .NET Standard

La sortie de .Net Standard 2.0 annonce un grand souffle d’air frais pour les développeurs .Net. Revenons ensemble sur : Qu’est-ce que .Net standard? Pourquoi ça va nous facilite la vie,  à nous, développeurs .Net ? En quoi c’est différent de PCL? Mais c’est pas pareil que .Net core? Pourquoi .Net Standard 2.0 change la donne ? Qu’est-ce que .Net Standard? Le .NET Standard est une spécification formelle des API .NET qui sont destinées à être disponibles sur toutes les…

Lire la suite Lire la suite

SDK Anniversary : Implicit animations

SDK Anniversary : Implicit animations

Les animations implicites sont selon moi une des fonctionnalités les plus intéressante de la mise à jour anniversaire. Quesako? Ça permet de mettre en place des animations de transition lors de changements de valeur des propriétés d’un Visual. Un peu d’historique Il y a deux type de d’animations dans le framework composition. Les KeyFrameAnimation et les ExpressionAnimation. Ces deux types d’animations héritent d’une classe abstraite CompositionAnimation L’ImplicitAnimation n’est pas une animation en tant que telle, c’est pourquoi elle n’hérite pas…

Lire la suite Lire la suite

SDK Anniversary : les connected animations

SDK Anniversary : les connected animations

Il a toujours été fastidieux dans les apps XAML de faire des animations de transition entre deux pages. Pour animer une image entre deux pages, il fallait modifier le système de navigation pour permettre ces animations. L’anniversary update apporte un nouveau moyen appelé les “connected animations” qui rend ces animations triviale à réaliser. Comment ça fonctionne ? La classe ConnectedAnimationService permet de passer un élément visuel entre plusieurs page XAML. Nous allons coder ensemble un exemple pour comprendre comment cela…

Lire la suite Lire la suite

Convertir des couleurs Hexa et des ColorName en SolidColorBrush

Convertir des couleurs Hexa et des ColorName en SolidColorBrush

Pour ma nouvelle applis, je recevais des couleur stocké en string. Celle ci étaient ou en format Hexadécimale ou en format ColorName. J’ai donc du créer un petit helper pour convertir les strings en SolidColorBrush. Attention si vous bindé directement la string à votre UI pas besoin de convertir XAML le fait tout seul. Pour retrouvé une couleur à partir de son nom j’ai du utiliser la réflexion sur le type Colors. Je vous le partage donc :

Pin It on Pinterest