Archives par mot-clé : .NET

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 »

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

Soyons énumérables – Partie 2

Yield : ou comment perdre quelques neurones

Alors à la fin de la première partie, j’en ai déjà entendus qui ronchonnaient : « bon s’il faut qu’on se cogne un énumérateur à chaque fois qu’on veut un truc particulier, on est pas sorti des ronces ». C’est pas faux (côtelette power 😉 ) ! En même temps c’est notre boulot 🙂

Mais effectivement on peut vite se retrouver avec des énumérateurs compliqués un peu tordu à faire avec interception d’erreurs, libération de ressources multiples, etc., ce qui peut compliquer rapidement les choses.

C’est là que le compilateur C# va venir à notre rescousse via le mot clé yield (VB.NET supporte également une instruction Yield).

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

Soyons énumérables – Partie 1

Soyons énumérables

Ces derniers temps je me suis battu à expliquer le fonctionnement des énumérables en .Net (en C# plus précisément) à plusieurs personnes et notamment des conséquences sur des librairies comme LINQ.

Alors je n’ai pas la prétention de tout maîtriser sur le sujet, mais il y a quelques bases qui, me semble-t-il, devraient tout de même être connues.

Aussi au lieu de m’énerver un peu à force de répéter les mêmes choses, j’ai décidé de prendre un peu de temps pour faire un récapitulatif de ce que j’en sais. Et ainsi la prochaine fois je n’aurais qu’à faire un lien sur l’article, et en plus ca boostera mes stats :p

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