Если вам нужна модель данных на разных языках, обычным делом является использование DSL для описания модели домена и генерации кода из нее.например, прото буферы.Таким образом, вы можете иметь собственный код C ++, Java, C # и т. Д. Для общей модели предметной области.
Одна из ловушек использования библиотеки C ++ из Java - это не похоже на библиотеку Java.Вы должны делать все виды неестественных вещей, чтобы использовать его, и в итоге вы добавляете слой, чтобы сделать его более дружественным к Java.Я думаю, что то же самое для C #
Например, одна из проблем, с которой я столкнусь, заключается в том, что я не могу отлаживать и переходить на нативный код из Java.Много ли таких элементов?
Netbeans поддерживает отладку собственного кода Java +, и вы можете перейти к нативному коду из Java и отладить оба.
Должен ли я просто переписать свой доменслой, использующий .NET и Java для каждого типа среды вместо того, чтобы сохранять его переносимым как слой C ++?
Я бы сказал да, но это я.Для вас может иметь смысл выйти в C ++.Есть плюсы и минусы в обоих направлениях.
Почему такой подход не принят промышленностью?
Разработка на Java и C # (и других языках виртуальных машин) часто рассматривается как более продуктивная и легче найти людей, которые могут ее поддержать.
Каковы практическиевыдает одно лицо, когда между слоем представления и домена находится слой JNI?
Вам необходимо отразить модель домена, поскольку вы не можете просто импортировать ее.т.е. всю модель данных, которую вы предоставляете, необходимо перевести.Это требует создания версий представленной модели на Java, а также кода перевода.(Еще одна веская причина, чтобы все это генерировалось)