Conversion de code en cours Silverlight et C ++ ou C ++ vers C #?
-
20-08-2019 - |
Question
Je travaille sur un produit basé sur le dessin pour lequel je veux produire des versions pour iPhone, OS / X de bureau, tablettes Windows, navigateur Silveright, Windows Mobile et Windows dans cet ordre de priorité.
Pour la portabilité de l’interface graphique, la réponse classique consiste à conserver le noyau en C ++ et à utiliser les couches minces Cocoa / Objective-C ou WPF / C #.
Cependant, Silverlight complique les choix.
Je n'aurais aucun problème à migrer mon code vers C ++ / CLI et à conserver une base de code double (avec des macros pour simuler les mots clés contextuels C ++ / CLI et une recherche judiciaire pour remplacer ^ et%).
D'après ce que j'ai pu trouver jusqu'à présent , il semble peu probable que C ++ / CLI soit pris en charge dans Silverlight. Cela me laisse avec les options:
- Migration unique d'une base source v1.0 C ++ vers C # et maintenance parallèle en cours
- Portage en direct avec un outil (recommandations s'il vous plaît!) de C ++ à C # ou inversement, ce qui est suffisamment fluide pour faire partie d'un processus de construction.
- Séparation architecturale de la version Silverlight afin que la logique C ++ reste sur un serveur. Je suis un peu mal à l'aise avec les implications en termes de performances.
Quelqu'un peut-il suggérer des alternatives, fournir de bonnes nouvelles sur C ++ / CLI dans Silverlight ou recommander des outils de portage? Je suis suffisamment à l'aise dans l'un ou l'autre langage pour faire du C ++ ou du C # mon langage principal pour le backend, à condition qu'un port soit fiable.
Modifier: En examinant la gamme de produits proposés par solutions tangibles pour les logiciels , leurs notes sur les convertisseurs montrent clairement que la conversion de C # en C ++ est plus facile que l'inverse. C’est ce que j’espérais - cela soulève des idées intéressantes quant à la contrainte de contraindre mon style C ++ à être le moins commun-OO-dénominateur.
La solution
Séparation architecturale de la version Silverlight afin que la logique C ++ reste sur un serveur. Je suis un peu mal à l'aise face aux conséquences sur les performances.
Je ferais ça. La performance n’est probablement pas aussi mauvaise que vous l’imaginez.