Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Stratégie de migration vers .net 5

0000003007     -      31/01/2021

Mercator est actuellement compilé pour .net Framework 4.6. En novembre 2020, Microsoft a publié une release majeure de l'environnement .net avec la version .net 5.0. Cette version n'est pas l'évolution du framework actuellement utilisé par Mercator, mais une mise à jour de .net Core 3.0. Dès lors, la migration de Mercator vers .net 5.0 demande quelques adaptations. Notre stratégie de migration vise à obtenir une compatibilité avec .net5 + Platform Extensions. Il n' y a pas de projet de rendre Mercator multi-plateformes. Son utilisation se fera donc toujours dans l'environnement Windows.

Les développeurs doivent suivre cette évolution, puisqu'elle pourrait avoir des conséquences au niveau de différentes programmations effectuées autour de Mercator. Il est dès lors nécessaire :

  • d'adapter le code des customizers et autres programmations en tenant compte des classes retirées ou modifiées dans le code-source de Mercator (voir liste ci-dessous);
  • d'utiliser le .net Portability Analyzer pour identifier les classes qui ne seront pas utilisables en .net5 + Platform Extensions, et adapter le code en conséquence.

Nous reprenons ci-dessous les modifications apportées à Mercator. Cette liste va évoluer constamment et doit être prise en compte pour adapter en conséquence tout développement autour de Mercator.

31/01/2021

Process.Start : UseShellExecute = true n'est plus la valeur défaut.

Le code a été adapté. Par d'impact causé par Mercator. Si du code personnalisé utilise Process.Start, il faut probablement fixer UseShellExecute à true.

 Utilisez la méthode Api.Api.ProcessStartWithShellExecute à la place de Process.Start.ou ajouter ceci lors de l'initialisation du ProcessStartInfo :
ProcessStartInfo si = new ProcessStartInfo(fileName, arguments) { UseShellExecute = true };

20/01/2021

Encoding 1252 n'existe pas par défaut en .net core

Dans MercatorApi.Api : les méthodes Chr, Asc, xSha1, xSha256 et Md5 ont été adaptées. Aucun impact dans le code.

18/01/2021

Remplacer ContextMenu par ContextMenuStrip

ContextMenu n'est pas repris dans le nouvel environnement. Il faut utiliser à la place ContextMenuStrip qui propose les mêmes fonctionnalités.

 Impact possible dans le code (mineur)

Si du code sur mesure adresse directement Form.ContextMenu ou Control.ContextMenu pour, par exemple, disabler un point de menu, il faut tenir compte du fait qu'à présent ces propriétés sont null. Mercator instancie dès à présent Form.ContextMenuStrip et Control.ContextMenuStrip. Les éléments dans ces menus contextuels ne sont plus des MenuItem mais des ToolStripMenuItem. Sur un tel menu contextuel, l'événement Popup doit être remplacé par Opened. Un séparateur de menu n'est plus créé via new MenuItem("-") mais via new ToolStripSeparator().


Remplacer client SOAP par System.Net pour webservice https://peppol.helger.com/wsdvs?wsdl

Cette fonctionnalité est utilisée par Mercator pour la validation préliminaire des eInvoices envoyées via CodaBox. Il s'agit une fonctionnalité purement interne à Mercator. Aucun impact sur le code personnalisé.


Remplacer System.Device.Location.GeoCoordinate par _BaseClasses.GeoCoordinate

 Impact possible dans le code (mineur)

Ce code se trouve au niveau des cartes géographiques que Mercator peut afficher et plus précisément en ce qui concerne les markers. Si l'ancienne classe est utilisée, il suffit de la remplacer par la nouvelle.


Retrait des fonctionnalités SEQR car elles utilisaient un webservice SOAP

Aucun impact car SEQR n'existe plus. L'option SEQR n'est plus prise en compte par Mercator.


Remplacer client SOAP par System.Net pour webservice checkVatPort

La communication avec checkVatPort (VIES - contrôle d'un numéro de TVA), ne se fait plus via SOAP. Si un code personnalisé utilisait par ailleurs ce webservice SOAP, il est recommandé d'utiliser notre fonction MercatorController.xFunctions.xNumTvaVies qui utilise la nouvelle connexion au webservice.


Création du fichier SNK en local sans passer par webservice SOAP

Fonctionnalité purement interne à Mercator.


Migrer webservice Mercator SOAP vers restApi pour jobs, update unikey, test licence, log customizers & triggers, certificat shield Azure, Peppol info, register IsabelGo

Fonctionnalités purement internes à Mercator.


Retrait du PluralizationService dans MercatorEditor

Fonctionnalité purement interne à Mercator.


Retrait de SqlDataSourceEnumerator dans MercatorReporting

Fonctionnalité non utilisée.