Я и двое моих друзей вместе работаем над проектом по программированию, но все же по отдельности, я хочу добавить, что мы все очень плохо знакомы с программированием. Теперь мы все собираемся написать одно и то же приложение, но на другом языке, потому что все мы самоучки на разных языках. Я буду писать приложение на C #, друг 1 будет писать его на C ++ / CLI, а друг 3 будет писать на Java (или J #).
Теперь приложение, которое мы собираемся сделать, станет «движком карточной игры». Это будет приложение, которое сможет загружать и играть в различные типы стандартных западных 52-карточных колод, таких как покер, блэкджек и т. Д. Это собственное приложение мы будем писать отдельно, но то, что мы хотим загрузить настоящими «карточными играми». «как внешние модули, я думаю, мы бы сделали отдельные сборки для этого? Теперь одно из наших требований заключается в том, что эти модули «карточной игры» должны быть в состоянии говорить на разных языках. Я имею в виду, что я должен иметь возможность, например, использовать мой «модуль BlackJack C #» и загружать его в свой «C ++». версия «игрового движка» и наоборот.
Итак, у меня есть два вопроса
Я хочу добавить, что мы все очень плохо знакомы с программированием. Теперь мы все собираемся написать одно и то же приложение, но на другом языке, потому что все мы самоучки на разных языках.
Ответ на это утверждение прост: не надо. Даже не думай делать это. Выберите один язык и придерживайтесь его.
Итак, у меня есть два вопроса 1) Это вообще возможно сделать? Насколько я понимаю, все .NET языки могут компилироваться по одному и тому же решению? Если мы напишем «модули» как сборки, то они должны иметь доступ к некоторым методам и наоборот, или я здесь не прав?
Вы можете использовать инструменты межъязыкового общения, но это потребует изучения некоторых довольно сложных вещей.
2) Поскольку Friend 2 на самом деле не программирует на языке .NET, существует ли простой способ создать решение Java, которое будет работать с этим? Может быть, он напишет модули «карточная игра» в виде DLL, которые мы затем сможем импортировать в наши отдельные проекты? Или ему будет проще написать приложение на J #?
Опять не надо. Вы делаете вещи намного сложнее, чем они должны быть. Вы не можете использовать JNI или JNA с NET вики и легко объединять их с Java. Поскольку вы все новички в программировании, вам снова будет гораздо лучше выбирать общие стандарты и придерживаться их. Даже если вы не были новичком в программировании, вам было бы лучше с этим.
Обратите внимание, что я сделал несколько языковых программ, но не по выбору, только потому, что мне пришлось. Это были простые дела с информацией, передаваемой в виде текста с использованием стандартного ввода и вывода (сокетов). Я также использовал JNA для создания программ Java, которые могут вызывать программы, созданные на C, однако, опять же, в нем было много хитростей и ловушек, в которые я попал, и опять же не рекомендую этот маршрут, если его можно избежать. Кроме того, опять же, вы не можете таким образом связывать Java с языками .NET.
Другие варианты межпроцессного взаимодействия более высокого уровня включают использование Библиотека удаленного вызова процедур, которых много, но которые также добавят дополнительную ненужную сложность вашей программе.
Других решений пока нет …