.NET

Client Sentry pour .NET 2.0

Logo Sentry

Je suis un grand fan du service Sentry qui sert à envoyer des rapports d'erreur.

A chaque fois qu'une erreur inattendue survient dans une de mes applications, un certain nombre d'informations sont collectées (le type et le message de l'exception, la pile d'appel, la version du système d'exploitation, le nom de l'utilisateur...) puis envoyées aux serveurs de Sentry.

Etiquettes:

Sentry client for .NET 2.0

Logo Sentry

I'm a big fan of the Sentry service which is used to send error reports.

Each time an unexpected error occurs in one of my applications, a certain amount of information is collected (exception type and message, call stack, operating system version, user name...) then sent to Sentry's servers.

Etiquettes:

Insertion rapide des attributs [NotNull] et [CanBeNull] avec ReSharper 2017.2

La dernière version de ReSharper propose un nouveau assistant de frappe qui m'est particulièrement utile dans ma lutte à mort ;-) avec les références nulles. Il suffit d'appuyer sur ! ou ? juste derrière le nom d'un type ou d'un argument pour insérer un attribut [NotNull] et [CanBeNull].

Si on appuie une deuxième fois, un test et un déclenchement d'exception comme celui ci :

Etiquettes:

eInvalidLayer when setting LayerTableRecord.IsFrozen to false

Found this problem this morning: if you set IsFrozen to false on the current layer, you'll get an Autodesk.AutoCAD.Runtime.Exception with the ErrorStatus at eInvalidLayer. The setter is certainly checking if the layer is current to avoid freezing it, but it should test the value to ignore when it is false.

So you have to check the layer state before changing the property to false:

Etiquettes:

Déconstruction et dictionnaires avec C# 7.0

Les dictionnaires sont une structure de données bien pratique dans certaines situations, mais j'ai toujours trouvé qu'ils nuisaient un peu à la lisibilité du code.

Dans l'exemple suivant, dans la boucle on ne sait pas exactement ce que représente la clé et la valeur. Bien évidemment le code ici est très court donc on le comprend assez facilement mais sur du code réel, ça n'est pas toujours évident.

Etiquettes:

Ma vie sans souris avec ReSharper et Visual Studio

Rider, l'IDE C# multiplateforme de JetBrains

Je suis un grand fan de ReSharper (R#) qui est une extension pour Visual Studio qui apporte d'énormes gains en productivité. JetBrains, l'éditeur de ReSharper, connu également pour son environnement de développement IntelliJ IDEA et ses déclinaisons (PhpStorm entre autre que j'utilise aussi), viens d'annoncer sur son blog dédié à .NET que son nouvel IDE sortait de la Bêta privée pour passer en Bêta public (EAP).

Etiquettes:

Exécuter en tant qu'administrateur et Marshal.GetActiveObject

Aujourd'hui, en examinant un problème sur l'application d'un client, je suis tombé sur quelque chose de bien étrange.

L'application tente de se connecter à AutoCAD en utilisant Marshal.GetActiveObject de façon à récupérer le nom du document actif comme je l'avais expliqué dans cet article. Mais il semblerait que l'application ne fonctionne pas sur certaines machines.

Etiquettes:

ZWCAD .NET API

Je dois (essayer de) migrer pour un client un complément AutoCAD utilisant l'API .NET vers ZWCAD. ZWCAD est un de ces clones d'AutoCAD qui tentent de reproduire au mieux les fonctionnalités d'AutoCAD pour un prix bien plus modique. ZWCAD dispose d'une API .NET, censée être très largement compatible avec l'API AutoCAD.

Etiquettes:

AutoCAD .NET API : exporter des entités dans un DXF

Pour un projet, je dois exporter certaines entités dans un fichier DXF. Sur la classe DBObject, il y a une méthode DxfOut qui semblerait adaptée mais elle prend en argument un objet de la classe DxfFiler qu'on ne sait pas créer (son constructeur prend en argument un pointeur). Donc il faut trouver une approche alternative.

Etiquettes:

Pages

Subscribe to RSS - .NET