Question simple en apparence.... [Résolu]

Signaler
Messages postés
616
Date d'inscription
mercredi 10 septembre 2008
Statut
Membre
Dernière intervention
9 février 2017
-
Messages postés
616
Date d'inscription
mercredi 10 septembre 2008
Statut
Membre
Dernière intervention
9 février 2017
-
Bonjour à tous,

Je vous ai abandonné depuis un petit moment mais me voilà de retour ;-)
Ma question est simple mais en apparence je pense.

D'un côté j'ai une plateforme avec à ma disposition un framework développé en .NET
D'un autre côté j'ai une seconde plateforme avec un framework développé en C++.

Je suis en train de développer une application (en C#) que je peux intégrer sur la première plateforme mais qui doit également être compatible sur la seconde plateforme (en C++).

Je pensais rajouter une surcouche (style "wrapper") sur mon application C# pour répondre à cette problématique.

D'ailleurs le chemin inverse peut être possible : à savoir développer mon appli sur la plateforme en C++ et qu'elle soit compatible sur la plateforme C#

Pensez vous que cela soit possible de rendre cette application compatible avec les 2 plateformes ?

En espérant avoir été clair sur la description de mon "problème".

@++



2 réponses

Messages postés
27
Date d'inscription
samedi 7 août 2010
Statut
Membre
Dernière intervention
16 janvier 2014
1
Bonjour ,
Désolé pour cette réponse tardive , mais je n'ai regardé qu'aujourd'hui les forums de Codes-Sources.
Il existe plusieurs possibilités pour recréer un code-source en un langage différent de la version originale. Petit problème , il nécessite d'utiliser l'assemblée
System.Codedom :
http://msdn.microsoft.com/en-US/library/system.codedom.aspx
et System.CodeDom.Compiler :
http://msdn.microsoft.com/en-US/library/system.codedom.compiler.aspx
qui correspondent au .Net Framework 4.5/4.5.1
Je donne le lien vers la version américaine car elle est la seule officielle . Pour la version française, remplacer en-US par fr-FR. Et vous aurez un petit message du style "Cet article a fait l'objet d'une traduction automatique"...
Ces 2 assemblées ne sont pas simples à utiliser sauf peut-être dans un cas : il est possible à partir de l'assemblée de votre application de générer le graphique de code source compatible. A partir de ce graphique , on peut regénérer un code source dans un langage différent du langage utilisé pour créer l'assemblée , mais , même si le code nécessaire pour créer le graphique et pour regénérer le code dans un nouveau langage n'est pas très gros en nombre de lignes, les 2 opérations sont longues en temps d'éxecution et se plantent parfois si le graphique est compliqué. De plus , le code généré peut-être imparfait en termes de présentation et lisibilité ( je l'ai fait pour de petits espaces de nom correspondant à des codes de 3000 lignes pour passer de VC# en VB et c'a été assez pénible ).
Par contre , cette méthode risque de ne pas marcher si vous utilisez des types ou instructions non "managés" ( non traitables par .Net Framework ).
Ce qui pourrait être intéressant est de connaître l'année de sortie pour VC# et C++ car le .Net Framework change et les langages aussi ( pratiquement à chaque nouvelle version de Visual Studio ).
Messages postés
616
Date d'inscription
mercredi 10 septembre 2008
Statut
Membre
Dernière intervention
9 février 2017
6
Bonjour,

Désolé à mon tour de la réponse tardive. Merci pour les liens. J'ai lu tout ça mais je ne pense pas que cela réponde à mes attentes.

Finalement, en faisant mon étude, j'ai décidé de développer un socle commun pour les 2 plateformes en C++ natif. En fait une librairie (.dll).
Je vais par la suite développer un wrapper (C++/CLI) pour cette dll qui me permettra de consommer mon code natif dans mon appli C# en toute transparence pour l'utilisateur final.

Du coup une autre question se pose. Etant donné que je vais être confronté au problème code non managé/ code managé, vais-je obligatoirement avoir recours au marshalling afin de convertir les types non managé en type .NET.
Messages postés
616
Date d'inscription
mercredi 10 septembre 2008
Statut
Membre
Dernière intervention
9 février 2017
6
Bonjour,

Si vous souhaitez plus de précision de ma part n'hésitez surtout pas. Je suis pas sur d'avoir été bien clair dans mon explication ci dessus...;-)

@++