Archives de catégorie : C#/.NET

[xUnit] Après une mise à jour des packages, les tests ne sont plus détectés par Visual Studio

J’ai récemment ressorti de la naphtaline un vieux projet (librairie en .Net 4.0), avec une vieille version de xUnit.

Comme je devais améliorer la lib, en profite pour la passer en 4.5, et je met à jour tous les packages Nuget.

Je lance les tests unitaires pour vérifier que rien n’a changé et là … aucun tests n’apparaît dans l’Explorateur des tests de Visual Studio 2015 !!!!

Bon j’ai cherché pendant un bon moment, sans trouver de réponse satisfaisante, et j’ai trouvé la solution en recréant mon projet de test de 0, et là tout fonctionne. Alors j’ai fait quelques tests et j’ai trouvé:

La solution miracle: Modifier le projet de tests pour qu’il utilise le Framework .Net 4.6 🙂

A bientôt

Yanos

Nouveautés de C# 7.0

Avec la sortie de Visual Studio 20017, nous avons eu également le droit à une nouvelle
version du C#, le C# 7.0, avec son lot de nouveautés.

Alors ne vous attendez pas à une révolution, mais plutôt à un ensemble d’ajouts pour
améliorer l’écriture et l’exécution du code.

Faison un rapide tour de tout ça.

Continuer la lecture de Nouveautés de C# 7.0

La fonction BrowserLink ne fonctionne pas avec les applications ASP.NET Core

La fonction BrowserLink ne fonctionne pas avec les applications ASP.NET Core

Si vous êtes un fidèle de Visual Studio pour faire du développement d’application ASP.NET, vous utilisez certainement l’une des fonctionnalités très intéressante « BrowserLink » qui couplée aux « Web Essentials » rend le développement Web extrêmement pratique.

Si maintenant vous vous lancez dans le développement « ASP.NET Core » le futur du développement Web de Microsoft, vous pouvez constater avec regret que cette fonctionnalité n’a pas l’air d’être disponible.

Pas de panique Yanos est là 🙂

Continuer la lecture de La fonction BrowserLink ne fonctionne pas avec les applications ASP.NET Core

Firebird et .NET/C#

Firebird et .NET/C#

Pour les besoins d’un petit projet j’ai recherché une solution de base de données légère, trouvant que « SQL Express » était surdimensionné pour le besoin. Et c’est là que m’est revenu un nom du fin fond de mes souvenir de développeur Delphi: Firebird.

Continuer la lecture de Firebird et .NET/C#

P/Invoke : utiliser une DLL native 32bits ou 64bits en fonction de la plateforme en mode « ANY CPU »

P/Invoke : utiliser une DLL native 32bits ou 64bits en fonction de la plateforme en mode « ANY CPU »

Lorsqu’on utilise P/Invoke avec une DLL native (via l’attribut DllImport), nous devons forcer la compilation de notre application dans la plateforme de la DLL (32 ou 64 bits). Toutefois on peut avoir la DLL dans les deux plateformes (par exemple Lua 5.3) et vouloir compiler notre application en « Any CPU » et que la DLL soit chargée dans sa bonne version. Ce qui n’est pas possible directement avec DllImport().

Continuer la lecture de P/Invoke : utiliser une DLL native 32bits ou 64bits en fonction de la plateforme en mode « ANY CPU »

Entity Framework: Erreur « Impossible de déterminer un tri valide pour les opérations dépendantes. »

Entity Framework: Erreur « Impossible de déterminer un tri valide pour les opérations dépendantes. »

Bon ce n’est franchement pas ma journée. Après cette première blague en voici une seconde dans la foulée.

Toujours lors d’une mise à jour d’une base EF, cette fois je récupère l’erreur « Impossible de déterminer un tri valide pour les opérations dépendantes. Des dépendances peuvent exister en raison de contraintes de clé étrangère, d’exigences en matière de modèle ou de valeurs générées par le magasin. ».

Là également ce n’est pas la première fois que je tombe dessus, mais apparemment mon cerveau a décidé de mettre en veille toutes mes capacités mémorielles 🙁

Continuer la lecture de Entity Framework: Erreur « Impossible de déterminer un tri valide pour les opérations dépendantes. »

Entity Framework : Erreur « The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value »

Entity Framework : Erreur « The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value »

Bon on est dimanche, et certainement pour cela que mon cerveau est en mode boulet (d’ailleurs j’inaugure une nouvelle catégorie tellement je suis dépité).

Sur un projet perso lors d’un « Update-Database » de mon contexte EF, je me prends l’erreur « The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value ».

Je perds 15 minutes a vérifier ma base de données avant d’en retrouver la raison. Et ce n’est pas comme si cette erreur ne m’était jamais arrivée !

Continuer la lecture de Entity Framework : Erreur « The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value »

C# : Service windows en mode console pour le débogage et l’administration

C# : Service windows en mode console pour le débogage et l’administration

Lorsque l’on développe des services Windows en .Net nous sommes très vite confronté au problème du débogage.

De plus nous devons régulièrement démarrer, arrêter le service, voir l’installer et le désinstaller. Toutes ces actions nécessitent d’utiliser différentes lignes de commandes (installutil, net start, etc.).

Je vous propose dans cet article de transformer votre Service Windows en mode console pour vous permettre de déboguer un peu plus facilement, ainsi que gérer tous les mécanismes de manipulation du service au travers des paramètres de lignes de commandes, et ainsi simplifier sa gestion.

Continuer la lecture de C# : Service windows en mode console pour le débogage et l’administration

Transtypage de valeurs avec la sérialisation XDocument

Transtypage de valeurs avec la sérialisation XDocument

Depuis sa version 4.0, le Framework .Net nous fourni une nouvelle librairie pour gérer les documents XML: System.Linq.XDocument.

Cette librairie et plutôt conçue pour fonctionner avec LINQ (comme son espace de nom nous l’indique).

Elle permet de créer plus rapidement des documents, de parcourir avec des requêtes LINQ. En revanche on perd le standard DOM ainsi que le XPath.

L’une des particularité de XDocument est que l’on peut lui transmettre des objets comme contenu et il s’occupe de les convertir en valeur de noeud ou d’attribut. L’inverse est également vrai, on peut obtenir une valeur depuis un noeud ou un attribut directement en transtypant. Ces mécanismes nous permettent de sérialiser/désérialiser rapidement un fichier XML quand on ne peut pas utiliser les mécanismes de sérialisation XML du .Net.

Continuer la lecture de Transtypage de valeurs avec la sérialisation XDocument

Soyons énumérables – Partie 3

LINQ et les énumérables à la chaîne

LINQ est un language de requêtage intégré au language C# ou VB.Net, le propos de cet article n’est pas d’expliquer LINQ en lui-même mais son comportement avec les énumérables. Pour plus d’informations sur LINQ je vous renvoie à la documentation officielle.

Continuer la lecture de Soyons énumérables – Partie 3