2013-05-22 3 views
0

Я работаю над созданием SDK, который позволит пользователям использовать его и писать код на C# или Java.Разработка SDK в нескольких языках программирования

Чтобы достичь этого наиболее оптимально, мне нужно написать SDK на обоих языках? Это было бы много повторений кода, хотя бы на двух разных языках, и накладные расходы на обслуживание были бы очень высокими.

Существуют ли эффективные способы решения этой проблемы? Что произойдет, если когда-нибудь мы подумаем о добавлении третьей поддержки языка программирования для SDK?

Обратите внимание, что я не против использования API вместо SDK. Идея проста - это в основном интерфейс или набор, которые позволят пользователям делать простые вызовы для выполнения определенных сложных действий, причем вся сложность абстрагируется в API или SDK.

+0

Возможно, есть перекрестный компилятор. Напишите его на одном языке и скомпилируйте с другим, но я сомневаюсь. –

+0

Это действительно зависит от того, что вы позволяете разработчикам делать против вашего SDK. Другими словами, было ли разделение между SDK и компонентами, к которым обращается SDK? –

+0

Davin - воздействие или использование (или вызовы) API (SDK) будет ограничено функциональностью очень высокого уровня, и все детали будут обрабатываться в SDK. Учитывая это, как вы предлагаете нам оптимизировать структуру кодирования? – naspras

ответ

0

Чтобы избежать дублирования кода, существуют различные варианты.

  • вы можете создать базовую библиотеку в портативном C++. Затем C++ может взаимодействовать как в Java (например, с JNI), так и в C# (например, с C++/CLI). Это означает, что вы можете создать обертку для обоих целевых языков с помощью C++. Эта опция сложнее, если вы хотите настроить таргетинг на более разные операционные системы.
  • вы можете создать программное обеспечение как услугу (например, SOAP или простой сервис json). Вы можете сделать это на предпочитаемом вами языке, а затем создавать клиентские приложения в Java и C#.

Это зависит от вашего проекта, от людей, которые его реализуют, и от ваших будущих целей - лучшее решение.

+0

Мне нравится ваша вторая идея. Я новичок в услугах, и, следовательно, этот вопрос. Не могли бы вы рассказать мне, на каком языке может быть служба, чтобы клиентские приложения могли быть написаны на Java и C# (и может быть третьим позже?) – naspras

+1

Дело в том, что сервер может быть на любом языке, а клиенты могут быть на одном или другом языке. Поэтому, если вы решите использовать сервисы, выберите нужные вам инструменты на предпочтительном языке программирования. Для C# это, вероятно, WCF, для Java, которые могут быть J2EE-сервисами. – pvoosten

+0

Отлично. Спасибо. – naspras

0

Вы можете кодировать SDK в C++ и создавать Java/C классы # обертки, чтобы позволить пользователям взаимодействовать с SDK

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

Просто идея.

Если вы заинтересованы в создании чтения DLL, шаблон адаптера, JNI для Java, не уверен, о C# у меня не было, что много опыта

Смежные вопросы