Все зависит от того насколько платформозависимый код и насколько часто используются плюшки в виде красивых форм, модных async/await, ересь LINQ и разнообразных извращений с .net reflection.
Если надо работать с winapi есть такая вещь как JNA.
Если приложение требует красивых форм и всяких фишек WinForm/XAML etc то это уже будет проблемно.
Портировал в основном только консольный софт с древним C# 1.1/2.0 на Java 6, очень повезло там не было никакого linq и вышеописанного, но все равно это как написание софтины с нуля, единственное что у тебя есть под рукой так это готовый пример с кусками кода и уже оформленной логикой работы.
Без Advanced Java каждого участника команды лучше не сильно рассчитывать что портирование пройдет гладко ведь помимо синтаксиса С# ведет свою отдельную от Java религию.
По возможности лучше конечно попытаться остаться на оригинальной версии продукта на c# если команда уже работает с ним. Да и зачем такая потребность именно в 2013й?
Цитата:
В самом проекте используется функционал взаимодействия с БД, файлами параметров и сетевое взаимодействие с клиентами, т.е. клиенты могут спокойно пережить смену платформы сервера.
|
Если слои доступа к данным в приложении разделены верно то отдельное портирование кода БД не должно занять много времени. Стоит только освоить работу JDBC.
Работа с файлами параметров в C# отличается кардинально от Java (XML vs Plaintext). Скорее всего прийдеться писать собственную реализацию работы с настройками. Да Java тоже умеет работать с реестром - c этим проблем не должно возникнуть.
Сетевое взаимодействие - переписать все на сокеты либо заюзать Netty. Тоже надо будет осваивать идеологию Java NIO.