Для большинства приложений я настоятельно рекомендую Eclipse RCP + EMF (Eclipse RAP также является плюсом, так как вы можете получить приложение из одного источника и получить полнофункциональное веб-приложение Ajax "бесплатно").
Если вам нужен доступ к собственным функциям, вы всегда можете написать его на другом языке или использовать JNI, или реализовать форму IPC, или использовать веб-сервисы (SOAP), или REST-JSON, или DBus, или любой другой любимый механизм связи, который вам нравится.
Я иногда вызываю инструменты Linux из своего Java-приложения для выполнения работы (например, "ssh someserver" или "rsync") и чувствую себя комфортно. Я не считаю насущной причиной получить «чистую библиотеку SSH для Java» или «чистую библиотеку Rsync для Java», когда другие инструменты отлично справляются со своей задачей, и я могу выполнить следующую интересную задачу.
Кстати, хотя я склонен к Eclipse и JVM (Примечание: язык Java не мой любимый, я предпочитаю Scala и Groovy, но с EMF легче работать на языке Java), у меня есть некоторый опыт работы с .NET. Хотя в .NET есть и несколько хороших вещей (одна из них заключается в том, что C # превосходит язык Java, но это все, во-вторых, Microsoft предоставляет больше встроенных функций, чем Sun / Oracle дает Java [SE] API), но есть некоторые вещи, которые вы должны рассмотреть.
Во-первых, это кросс-платформенность. В то время как есть Mono, в целом .NET сложно портировать. Хотя у вас может не быть в этом необходимости, это может пригодиться. Кроме того, Eclipse RCP не только «более кроссплатформенный», но и превосходит готовые функциональные возможности, предоставляемые .NET Framework. (Я знаю, что это несправедливое сравнение, лучше сравнивать его с Visual Studio Shell)
Второй - лицензия, затем набор инструментов и стоимость (составляет три предмета). Весь инструмент Eclipse находится в свободном доступе. Они с открытым исходным кодом (вы можете исправить любую ошибку, добавить патч). Лицензия открыта, и вы можете по праву создавать коммерческие продукты на ее основе.
Третье - это функциональность. В самом RCP так много функциональности, что в сочетании с EMF, другими проектами Eclipse и остальной частью экосистемы Java (не говоря уже о языках JVM) у вас есть много вариантов для базовой функциональности.
Смотри также: http://eclipsedriven.blogspot.com