Возможно ли создание программного обеспечения CAD / CAM без использования C++? Моя компания разработала свое программное обеспечение на c / C++, но это было более 10 лет назад. Сегодня существует много устаревшего кода, от которого переключение заставит нас избавиться, но мне было интересно, каковы реальные риски. У нас есть множество математических алгоритмов для расчета траектории, распознавания и моделирования элементов, а также 3D-рендеринга, и мне было интересно, сможет ли C# справиться со всем этим без большой потери производительности.
Утопия - переписывать такие алгоритмы на C# или этот язык должен иметь дело только с пользовательским интерфейсом. Мы не говорим здесь о разработке игр (Halo 3 или Call Of Duty), так какой объем обработки действительно требуется CAD / CAM?
Кто-нибудь может просветить меня по этому поводу? Большинство моих коллег - заядлые программисты на C++, и хотя я программирую на C++, я люблю .NET, но мне трудно продавать им .NET, кроме базового пользовательского интерфейса. Имеет ли смысл рассматривать переход на .NET в такой области, или это просто неразумная идея?
Спасибо





Если у вас есть много устаревшего кода, который необходимо переписать, я не вижу смысла в коммерческом переходе на другой язык. Даже если бы можно было получить выгоду от использования другого языка (что сомнительно), затраты на тестирование и отладку нового кода с лихвой превзошли бы их. У вас также есть команда разработчиков, которые являются экспертами в C++. Когда они быстро освоят новый язык, их продуктивность сильно упадет.
Переписывать устаревший код нужно только в случае реального кризиса. Такой кризис, например, возникает, когда ваш основной поставщик языка / платформы собирается продвигать еще один. Этот случай может произойти, например, если Microsoft решит отказаться от инструментария C++ в пользу инструментария .NET.
C# Может взаимодействовать с кодом C++. Вы можете начать писать новый код на C# и при необходимости вызывать существующий код C++. Это должно было быть не только для пользовательского интерфейса. Изучите методы C++ / CLI и C# Interop для получения информации о том, как использовать существующий код C++ с новым кодом C#.
Также я задал здесь аналогичный вопрос: Производительность C# для прокси-сервера (по сравнению с C++)
Приложения CAD / CAM довольно интенсивны в вычислениях, и скорость определенно будет одним из критериев выбора пакета, поэтому я бы с осторожностью переходил на более медленный язык.
Вам нужно очень хорошо подумать о причинах переключения языка. Это потому, что вам не нравится C++, или потому, что C# принесет реальную пользу. Это может замедлить работу вашего приложения. Ознакомьтесь со сравнением скорости C++ C#.
Тесты компьютерного языка: игра C++ vs C#
По моему скромному мнению, вам лучше оставить все вычисления траектории инструмента на C++, и если вы В самом деле должны переместить любой код на другой язык, переместите его на язык сценариев, который пользователь может легко редактировать без повторного компиляция.
Я использую приложения CAD / CAM каждый день на работе, и в пользовательском интерфейсе есть ряд вещей, которые действуют мне на нервы. Это были бы простые исправления, если бы я только мог добраться до источника.
Если ваша компания создает приложение CAD / CAM с пользовательским интерфейсом, написанным на языке сценариев, который я могу настроить (Lua, Python и т. д.), Я куплю копию.
Хьюго
Debian Sempron - это не самые свежие результаты тестов на сайте игры!
Еще одна вещь, которую вы должны учитывать, - это независимость от платформы - если есть вероятность, что вам / вашей компании потребуется перенести ваше программное обеспечение САПР на Linux / Unix (конечно, для бизнес-решения), это будет довольно болезненно. В настоящее время даже C++ с вызовами MFC / Win32 доставил нам много головной боли ...
Библиотека Open Design Alliance является кроссплатформенной. Недавно они представили бета-версию .NET-версии своей библиотеки. См. Мой ответ на Библиотека для рисования cad (dwg) с открытым исходным кодом на C# для более подробной информации.
Сказав, что я согласен с другими ответами здесь - если он не сломан, не исправляйте его, как код, так и кодировщики. MSFT по-прежнему использует C++, как и ODA - их кодовая база основана на C++ и обернута для .NET.
Взгляните на pythonocc. Он предоставляет вам модуль python, который обертывает ядро OpenCASCADE CAD. OpenCASCADE - единственное известное мне ядро с открытым исходным кодом, сильное в отрасли. Приятными особенностями являются поддержка STEP и IGES, а также возможность создавать сетки FEM из данных BRep.
Для разработки приложений CAD / CAM на C# .net см.: occwrapper.com Также для разработки веб-приложений CAD / CAM см .: creativecadtechnology.com/OCC/…