Archives de
Étiquette : C#

Azure Blob Storage : upload par block

Azure Blob Storage : upload par block

Le service Azure Blob Storage est un service très efficace pour stoker des fichiers. Il peut être utilisé comme un CDN (content delivery network).Dans le cas où vous stocker les fichiers larges celui-ci permet de les uploader par block.Dans cet article nous verrons comment uploader un fichier en plusieurs block. Upload L’upload de fichier par block se fait en 3 étapes : Calcul du md5 du fichier Envoi des blocks de données Envoi de la liste de blocks pour compléter…

Lire la suite Lire la suite

ASP.NET Core : Gérer les erreurs

ASP.NET Core : Gérer les erreurs

Afficher une page d’erreur personnalisé en ASP.NET Core est très simple, mais il y a quelques pièges à éviter. Pour afficher une page d’erreur (erreur 500) il suffit d’écrire la ligne de code suivante : Pour afficher les autres types d’erreurs (page 404, etc…) il suffit d’appeler la méthode suivante : Malheureusement, ce n’est pas aussi simple !Si votre site Web ASP.NET Core héberge des WebAPI elles aussi seront affecté par ces modifications Exclure les API des pages d’erreurs personnalisées…

Lire la suite Lire la suite

Razor Pages : conventions d’autorisation

Razor Pages : conventions d’autorisation

Les Razors pages sont une nouveauté de ASP.NET Core 2.2. Elles permettent de se concentrer sur notre code de façon “page-focused” afin de nous rendre plus productif et plus rapide. Dans cet article nous verrons comment mettre en place une “convention d’autorisation” qui permettra d’appliquer une ou plusieurs policies à l’ensemble de pages de notre site web. Convention d’autorisation : à quoi ça sert ? Il est fastidieux mais aussi dangereux (car on peut en oublier) de mettre l’attribut [Authorize]…

Lire la suite Lire la suite

EF Core : récupérer une entité par sa cléf primaire via une expression générée dynamiquement

EF Core : récupérer une entité par sa cléf primaire via une expression générée dynamiquement

EntityFramework Core est un outil très extensible, mais parfois on peut se retrouver bloquer à écrire une “expression” alors qu’en SQL ce serait simple. 😀 Dans mon cas je devais écrire une méthode générique permettant de récupérer une entité par clef primaire. Or, dans ce projet, le nom des clefs primaire de mes entités ne sont pas normé. Ce qui complique la tâche, en effet sans interface commune à toutes mes entités je ne peux pas écrire ma requête LINQ…

Lire la suite Lire la suite

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

Qu’est-ce que WebAssembly ?

Qu’est-ce que WebAssembly ?

Dans cet article je vais essayer de répondre aux questions les plus courante sur WebAssembly. Si vous préférez le format vidéo, un podcast est disponible ici. Qu’est-ce que WebAssembly ? WebAssembly est un standard de binaire (byte code) compréhensible par les navigateurs modernes. Les plus pointilleux ne parleront pas de byte code mais d’AST (Abtract Syntaxt Tree) mais ça c’est un autre débat. WebAssembly c’est donc un nouveau langage ? Non, c’est un format binaire comme l’assembleur. Il a été…

Lire la suite Lire la suite

Xamarin Forms : Comprendre le Dependency Service

Xamarin Forms : Comprendre le Dependency Service

Le DependencyService est un résolveur de dépendances qui permet aux applications d’appeler des fonctionnalités spécifiques à chaque plateforme à partir du code partagé. Cette fonctionnalité permet donc aux applications Xamarin.Forms de faire tout ce qu’une application native peut faire. En pratique, une interface est définie et le DependencyService instancie l’implémentation correcte de cette interface à partir des différents projets de plateforme. Comment l’utilise-t-on ? Déclarer une interface qui sera commune à toutes les plateformes. Implémenter l’interface sur chaque plateforme Enregistrer l’implémentation…

Lire la suite Lire la suite

Quoi de neuf chez Xamarin ?

Quoi de neuf chez Xamarin ?

De nombreuses annonces ont été faites par Miguel de Icaza lors du MVP summit. Si, comme moi vous n’y étiez pas, Miguel a partagé les slides de présentation ici. Xamarin Android : plus besoin de FindById Avant, lorsque vous déclariez un bouton en XML, pour récupérer son instance en C# il fallait : Avec la nouvelle version de Xamarin plus besoin de faire ça. La variable myButton est automatiquement créée : Xamarin iOS : les binding c’est automatique! Création automatique …

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