Я работаю над продуктом на основе чертежей, в котором я хочу производить версии для iPhone, настольных OS / X, планшетов Windows, браузера на основе Silveright, Windows Mobile и Windows в указанном порядке приоритета.
Для переносимости графического интерфейса классический ответ - сохранить ядро в C ++ и использовать тонкие слои Cocoa / Objective-C или WPF / C #.
Однако Silverlight усложняет выбор.
У меня не возникло бы никаких проблем при переносе моего кода в C ++ / CLI и поддержании двойной кодовой базы (с некоторыми макросами для подделки контекстных ключевых слов C ++ / CLI и некоторым судебным поиском и заменой ^ и%).
Из того, что я смог найти до сих пор , маловероятно, что C ++ / CLI будет поддерживаться в Silverlight. Это оставляет меня с вариантами:
- Однократная миграция исходной базы C ++ v1.0 в C # и текущее параллельное обслуживание
- Портирование в реальном времени с помощью инструмента (рекомендации, пожалуйста!) С C ++ на C # или наоборот, который достаточно плавный, чтобы быть частью процесса сборки.
- Архитектурное разделение версии Silverlight, поэтому логика C ++ остается на сервере. Мне немного не по себе из-за последствий для производительности.
Может кто-нибудь предложить альтернативы, сообщить хорошие новости о C ++ / CLI в Silverlight или порекомендовать инструменты для переноса? Я достаточно комфортно говорю на любом языке, чтобы сделать C ++ или C # моим основным языком для бэкэнда, если порт надежен.
Edit:
Рассматривая ассортимент продуктов, предлагаемых Tangible Software Solutions , их заметки о преобразователях дают понять, что преобразование C # в C ++ проще, чем другие. Это, как я и ожидал, вызывает интересные мысли об ограничении моего стиля C ++ наименьшим общепринятым OO-знаменателем.