У меня есть настольное приложение, которое по сути прославляет симуляцию Монте-Карло. Симуляция написана на C ++ (<10000 строк кода), а графический интерфейс, который вызывает .exe, написан на python (не спрашивайте, у меня были (плохие) причины). Я пытаюсь преобразовать это в веб-приложение на Azure, которое, как я знаю, будет менее чем тривиальной задачей, но я надеюсь получить совет о том, как лучше всего это сделать. Насколько я вижу, у меня есть три варианта: модифицировать код C ++ и каким-то образом преобразовать его в веб-приложение, полностью переписать в .NET Framework с использованием C # или полностью переписать с помощью Django / Python. Независимо от того, что я делаю, мне придется многому научиться, и мне нужно будет полностью переписать интерфейс. </p>
Поначалу изменение кода C ++ казалось лучшим вариантом. Однако после некоторого исследования я думаю, что мои модификации будут тяжелыми, и C ++ действительно не идеально подходит для веб-приложений с самого начала. Я обеспокоен тем, что между возможными тяжелыми модификациями и финалом, который мне придется делать с C ++, это значительно перевесит мне возможность повторно использовать большое количество кода.
Следующим вариантом будет полноепереписать программу, используя .NET и C #. Я не знаю C #, но я читал, где нет ничего сложного в изучении C # после знания C ++. Я также чувствую, что «перевод» определенных фрагментов кода C ++ будет управляемым, поскольку языки очень похожи.
Последний вариант, который я вижу, это Python и Django. Очевидно, что знание Python должно помочь, но я чувствую, что мне придется делать еще больше переписывания, так как он менее похож на C ++. Я также беспокоюсь о производительности, так как я предполагаю, что python будет медленнее завершать симуляцию, чем C #.
Очевидно, что это будет довольно большое дело для меня, независимо от того, какой вариант я выберу, номинимизация сложности, безусловно, является главным приоритетом здесь. Кроме того, производительность является огромным фактором, поскольку пользователь испытывает нехватку времени, и чем больше итераций может выполнить симуляция, тем лучше будет результат.
В долгосрочной перспективе я бы хотел, чтобы это было чем-тонад этим можно поработать в будущем. Кроме того, я надеюсь продолжить писать веб-приложения после завершения этого первого проекта. Эти два соображения заставляют меня еще больше сосредоточиться на том, чтобы делать это «правильно», а не просто быстро.