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

dodo7263 642 Messages postés mercredi 10 septembre 2008Date d'inscription 9 février 2017 Dernière intervention - 7 janv. 2014 à 21:07 - Dernière réponse : dodo7263 642 Messages postés mercredi 10 septembre 2008Date d'inscription 9 février 2017 Dernière intervention
- 20 janv. 2014 à 11:59
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".

@++



Afficher la suite 

3 réponses

Répondre au sujet
PapyNormand 27 Messages postés samedi 7 août 2010Date d'inscription 16 janvier 2014 Dernière intervention - 15 janv. 2014 à 21:05
+1
Utile
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 ).
Cette réponse vous a-t-elle aidé ?  
dodo7263 642 Messages postés mercredi 10 septembre 2008Date d'inscription 9 février 2017 Dernière intervention - 20 janv. 2014 à 11:59
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.
Commenter la réponse de PapyNormand
dodo7263 642 Messages postés mercredi 10 septembre 2008Date d'inscription 9 février 2017 Dernière intervention - 9 janv. 2014 à 16:42
0
Utile
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...;-)

@++
Commenter la réponse de dodo7263

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.