Каков хороший способ поддерживать общий код между C# и Objective-C?

В настоящее время я занимаюсь созданием прототипа нескольких небольших приложений, предназначенных для выпуска на Mac и Windows. Естественно, это означает, что какао с Objective-C на Mac и.NET с C# на Windows. К сожалению, поскольку эти два языка совершенно разные, работа с 4 приложениями больше похожа на работу с 8, так как мне приходится все делать дважды.

В некоторой степени это неизбежно, но я изучаю способы поделиться некоторыми общими кодами / функциями, которые имеют дело с независимыми от платформы вещами (вычисления, формулы и т. Д.).

Я рассмотрел C/C++, но, поскольку он должен быть скомпилирован в DLL для использования в C#, он не стоит того.

Сейчас я смотрю на использование скриптового языка, такого как Lua, который демонстрирует некоторое обещание, но не без его доли сложностей. Есть ли другие способы, которые могут быть лучше?

3 ответа

Решение

Одним из способов является использование Mono, кроссплатформенной среды разработки с открытым исходным кодом.

http://www.mono-project.com/

Технически, вы можете написать "управляемые сборки C++" для использования в приложениях.NET, и вы можете смешивать C++ непосредственно с приложениями Objective-C, но синтаксис, необходимый для ссылки на объекты.NET (myclass^), отличается настолько, что вы все равно в конечном итоге не делиться очень много.

Вы можете использовать C/C++ как DLL, для C#. Использовать C Dll из C# очень просто, используя.NET совместимость и маршалинг. На самом деле, это было мое предпочтительное решение при разработке для iPhone и WinPhone....

Подробнее о вызове C Dll из C#, прочитайте MSDN и этот простой пример: http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.dllimportattribute.aspx

Другие вопросы по тегам