Java с EMF и RCP против C # - PullRequest
       15

Java с EMF и RCP против C #

4 голосов
/ 31 августа 2010

Мы думаем о переходе технологии для наших будущих проектов с C ++ на Java или C #.Естественно, сейчас идет большая дискуссия о том, что выбрать.Проблема в том, что никто из нас не имеет отраслевого опыта работы с EMF или RCP, что было бы неплохо, если бы оно соответствовало нашим потребностям.

, поэтому я хотел спросить вас, что вы предпочитаете.наша программа:

  • тяжелый графический интерфейс (множество диалогов, свойств)

  • довольно большие модели (сериализованный xml сейчас занимает около 15 МБ)

  • приложение должно быть интегрировано в наш framework-application-center

  • формат данных (xml и двоичный) должен совпадать с нашим текущимформат

  • необходимо графическое редактирование (создание, перемещение, соединение фигур + редактирование их свойств)

  • множество похожих, но крошечных объектов в данныхмодель

и актуальные вопросы:

  • есть ли эквивалент в ЭДС в C #?

  • есть ли эквивалент в RCP в C #?(например, команды для редактирования модели данных, интерфейс GUI, ...)

  • Является ли редактирование графического интерфейса в RCP таким же хорошим и гибким, как с окнами или WPF?

  • насколько жестким / гибким является ЭДС?

  • у нас есть много взаимозависимостей между моделями данных (некоторые контролируют другие или допускают различные варианты для них) - как бы высмоделируйте эти?

  • какой из вариантов вы бы выбрали?

большое спасибо за любые советы или мнения

manni

Ответы [ 3 ]

4 голосов
/ 31 августа 2010

Как разработчик Java, я не могу много рассказать о C #, но могу дать вам общее представление о стороне Java: есть несколько хороших вариантов для RCP (наиболее выдающийся, конечно, Eclipse, но есть и другие, такие как NetBeans),Кривая обучения довольно крутая, но как только вы запустите «привет мир», это станет намного проще.GUI-программирование не проблема (у вас есть несколько вариантов, и существует множество бесплатных и коммерческих виджетов), и у вас есть несколько способов работы с XML.Обычно для почти всего существует (часто бесплатная) библиотека.Так что, если вы хотите иметь выбор, Java для вас.

С другой стороны, язык C # технически впереди.Java7 может уменьшить разрыв, но не сократит его, это точно.

Если вы хотите использовать преимущества JVM (открытая, широко распространенная, независимая от платформы, множество библиотек ...) иПреимущества современного языка, тогда вы должны взглянуть на Scala (вы можете смешивать Scala и Java-код без проблем).Scala является очень инновационным, смешивая OO и функциональные возможности, но все еще очень «доступен» для программистов, которые привыкли к синтаксису стиля C ++ / Java.

2 голосов
/ 22 декабря 2010

Для большинства приложений я настоятельно рекомендую 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

2 голосов
/ 31 августа 2010

Я совсем не знаком с EMF и RCP, но из того, что я быстро понял, в .Net есть «эквиваленты».Однако я сильно предвзят, поэтому не верьте мне на слово.

В Visual Studio есть инструменты для генерации классов данных из xml / xsd и наоборот (xsd.exe), графических интегрированных инструментов моделирования.и т. д.

И есть WPF, который я настоятельно рекомендую для любого проекта (не только графически насыщенного);с объектной моделью легко работать, она имеет декларативный дизайн GUI (XAML) и делает инструменты, подобные диаграммным (как вы описали), намного проще в создании по сравнению со старыми технологиями .Net, такими как WinForms.Особенно обратите внимание на MVVM (Model-View-ViewModel) для наиболее распространенного шаблона при работе с WPF / Silverlight.

...