2014-01-20 5 views
0

Я и двое моих друзей вместе работают над проектом программирования, но все же отдельно, я хочу добавить, что мы все очень новы для программирования. Теперь мы все будем писать одно и то же приложение, но на другом языке, потому что все мы учимся на разных языках. Я буду писать приложение в C#, а friend 1 будет писать его в C++/CLI, а friend 3 будет писать его на Java (или J #).Совместное использование методов класса между .NET-языками

Теперь приложение, которое мы собираемся сделать, будет «игровым движком». Это приложение, которое сможет загружать и воспроизводить различные типы стандартных западных 52-карточных палубных игр, таких как покер или блэкджек и т. Д. Это фактическое приложение мы будем писать отдельно, но мы хотим загрузить фактические «карточные игры» «Как внешние модули, я предполагаю, что мы сделаем отдельные сборки для этого? Теперь один из наших требований заключается в том, что эти модули «карточной игры» должны иметь возможность перекрестного языка, и я имею в виду, что я должен использовать, например, мой «модуль BlackJack C#» и загружать его в свой «C++ версии "игрового движка и наоборот.

Так у меня есть два вопроса

  1. Это даже можно сделать? Насколько я понимаю, все языки .NET могут компилироваться под одним и тем же решением? Если мы будем писать «модули» в виде сборок, тогда они должны иметь доступ к некоторым методам и наоборот, или я здесь не прав?
  2. Поскольку friend 2 на самом деле не программируется на языке .NET, есть ли простой способ сделать решение Java, которое будет работать с этим? Мог ли он, возможно, написать модули «карточной игры» как библиотеки DLL, которые мы затем можем импортировать в наши отдельные проекты? Или ему просто будет проще написать приложение в J #?
+1

Посмотрите на банку червей, которую мы открыли. Хлоп! –

+1

J #? Какие? (а также почему?) Разве он уже давно не мертв? –

ответ

4

Я хочу добавить, что мы все очень новы для программирования. Теперь мы все будем писать одно и то же приложение, но на другом языке, потому что все мы учимся на разных языках.

Ответ на это утверждение прост: не надо. Даже не думайте об этом. Выберите один язык и придерживайтесь его.

У меня есть два вопроса: 1) Возможно ли это сделать? Насколько я понимаю, все языки .NET могут компилироваться под одним и тем же решением? Если мы будем писать «модули» в виде сборок, тогда они должны иметь доступ к некоторым методам и наоборот, или я здесь не прав?

Вы можете использовать инструменты межъязыковой связи, но это потребует изучения некоторых довольно продвинутых вещей.

2) Поскольку друг 2 на самом деле не программируется на языке .NET, есть ли простой способ сделать решение Java, которое будет работать с этим? Мог ли он, возможно, написать модули «карточной игры» как библиотеки DLL, которые мы затем можем импортировать в наши отдельные проекты? Или ему просто будет проще написать приложение в J #?

Опять же, не надо. Вы делаете вещи намного сложнее, чем должны быть. Вы не можете использовать JNI или JNA с NET wikis и легко соединить их с Java. Поскольку вы все новичок в программировании, снова вам будет намного лучше выбирать общие стандарты и придерживаться их. Даже если бы вы не были новичком в программировании, вам было бы лучше с этим.

Обратите внимание, что я сделал некоторые межязыковые программы, но не по выбору, только потому, что мне пришлось.Это были простые дела с информацией, передаваемой в виде текста с использованием стандартного ввода и вывода (сокетов). Я также использовал JNA для создания Java-программ, которые могут вызывать программы, созданные на C, однако снова это было множество многих трюков и ловушек, несколько из которых я попал, и снова не рекомендую этот маршрут, если его можно избежать. Кроме того, и вы не можете поддерживать связь Java с языками .NET таким образом.

Другие варианты взаимодействия между процессами более высокого уровня включают использование Remote Procedure Call Library, из которых их много, но которые также добавят дополнительную ненужную сложность вашей программе.

+3

Это должно быть просто комментарий, поскольку он не пытается ответить на вопрос. – Servy

+3

@Servy: Я не троллинг для очков и сделал это вики-сообществом, что означает, что голосование и проголосовавшие голоса не пойдут на меня, а также облегчат для других вносить вклад и редактировать. Поэтому, пожалуйста, отредактируйте и улучшите его, если хотите. –

+1

CW не может предоставлять комментарии в качестве ответов. Вот для чего нужны комментарии. CW существует для ответов, которые предназначены для составления информации из разных источников, к которой это не относится, и нет никаких указаний на то, что это должно быть. Это ваше личное мнение, а не совокупность знаний нескольких людей. Это должен быть комментарий, а не ответ. – Servy

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