.NET / Моно или Java лучший выбор для кросс-платформенной разработки? [закрытый]

Используйте относительный путь при указании файла на zip.

cd /home/username
zip -r 1.zip ./the_folder

Затем, когда вы разархивируете, это будет относительный путь, начиная с любой папки, в которой вы находитесь, при распаковке.

106
задан Peter Mortensen 7 February 2010 в 17:51
поделиться

13 ответов

Хорошо.... Java является на самом деле более портативным. Моно не реализован везде, и это значительно отстает от реализации Microsoft. SDK Java, кажется, остается в лучшей синхронизации через платформы (и это работает над большим количеством платформ).

я также сказал бы, что Java имеет больше доступности инструмента через все те платформы, хотя существует много инструментов, доступных для.NET на платформах Windows.

Обновление на 2014

я все еще держу это мнение в 2014. Однако я квалифицирую это путем высказывания, что я сейчас начинаю обращать некоторое внимание на Моно через длительное время не действительно заботливого, таким образом, могут быть улучшения Моно времени выполнения (или экосистема), что я не был сделан знающий. AFAIK, нет все еще никакой поддержки WPF, WCF, WF, WIF. Моно может работать на iOS, но к моему знанию, Среда выполнения Java все еще работает на намного большем количестве платформ, чем Моно. Кроме того, Моно начинает видеть некоторые очень улучшенные инструменты (Xamarin), и Microsoft, кажется, имеет намного больше межплатформенного вида отношения и готовности работать с партнерами для создания их дополнительными, а не конкурентоспособными (например, Моно будет довольно важная часть предстоящей среды ASP.NET OWIN/Helios). Я подозреваю, что в ближайшие годы различия в мобильности уменьшатся быстро, особенно после открыто получаемой.NET.

Обновление на 2018

Мое представление об этом начинает идти другим путем. Я думаю, что.NET, широко, особенно с.NET Core, начала достигать "четности мобильности" с Java. Существуют усилия в стадии реализации для обеспечения WPF к.NET Core для некоторых платформ, и само.NET Core работает на очень многих платформах теперь. Моно (принадлежавший Xamarin, который теперь принадлежит Microsoft) более зрелый и полируемый продукт чем когда-либо и запись приложений, которые работают над несколькими платформами, больше не домен глубокого gnosis хакерства.NET, но относительно простое усилие. Существуют, конечно, библиотеки и службы и приложения, которые только для Windows или могут только предназначаться для определенных платформ - но то же может быть сказано относительно Java (широко).

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

96
ответ дан Ben Collins 24 November 2019 в 03:44
поделиться

В то время как Моно имеет доля проблем , я думаю, что она имеет лучшую межплатформенную историю совместимости особенно, ЕСЛИ у Вас есть зависимость от собственного вызова платформы.

существует недостаточно слов на Переполнении стека для выделения, насколько более гладкий это должно добраться, что-то собственное звонило и выполнилось в.NET / Моно на (по крайней мере, по моему опыту, 3...) несколько платформ по сравнению с эквивалентным усилием по Java.

3
ответ дан Community 24 November 2019 в 03:44
поделиться

Также существует другой выбор языка. Я стал довольно любящим Python, который работает хорошо над Windows, Linux и Mac, и имеет богатый набор библиотек.

4
ответ дан George V. Reilly 24 November 2019 в 03:44
поделиться

Я голосовал бы за Java, являющийся более портативным, чем C#. Java определенно также имеет очень богатый набор стандартных библиотек. Существует также широкий набор библиотек открытого исходного кода 3rd party там, таких как обеспеченные Джакартским проектом ( http://jakarta.apache.org/ ).

Все обычные подозреваемые существуют для CI, Поблочного тестирования, и т.д. также. Кросс-платформенная поддержка IDE также очень хороша с подобными Eclipse, Netbeans, ИДЕЕ IntelliJ и т.д.

5
ответ дан 24 November 2019 в 03:44
поделиться

Для добавления немного больше к разговору Java является более портативным, если Вы остаетесь об одной версии позади - Java 5 все еще имеет много превосходных функций, таким образом, можно ожидать Java 6 и все еще иметь много диапазона с точки зрения языка и библиотек для разработки с. Mac является основной платформой, которая может занять время для ловли до последней версии Java.

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

6
ответ дан Kendall Helmstetter Gelner 24 November 2019 в 03:44
поделиться

Java был разработан, чтобы быть межплатформенным; C#/.Net не был. Когда в сомнении, используйте инструмент, который был разработан для Вашей цели.

РЕДАКТИРОВАНИЕ: честно.NET была разработана для работы над встроенным/ПК/серверными средами, таким образом, это - ВИД межплатформенных. Но это не было разработано для Linux.

7
ответ дан AlexeyMK 24 November 2019 в 03:44
поделиться

Я думаю, что ответ, "он зависит". Java работает примерно на чем-либо, но.NET / Моно является (по моему скромному мнению), лучшей платформой для рабочего стола. Таким образом, я предполагаю, что ответ действительно зависит, на каких платформах Вы планируете предназначение.

7
ответ дан Giovanni Galbo 24 November 2019 в 03:44
поделиться

Я задавал тот же непоздний вопрос и по моему скромному мнению.NET / Моно, кажется, более оптимальный вариант просто, потому что Моно имеет большой послужной список для межплатформенных настольных приложений (в противоположность Java) и конечно, Моно улучшается стремительно в эти дни.

9
ответ дан Swaroop C H 24 November 2019 в 03:44
поделиться

Java является лучшим выбором для Кросс-платформенной разработки.

  • Производительность. Java и.Net имеют подобный уровень производительности из-за виртуальной машины, но JVM обычно имеет лучшую производительность из-за оптимизации лет и лет.

  • Библиотека. Хотя это зависит от Вашей задачи, Java имеет очень библиотеки или третьего лица более с открытым исходным кодом, доступные там. Для Приложения для сервера, J2EE, Spring, Struts, и т.д. Для GUI, хотя.Net обеспечивает API уровня Win32, но это вызывает проблемы совместимости. Java имеет Swing, SWT, AWT, и т.д. Это работает в большинстве случаев.

  • Совместимость. Это - ключевые вопросы, которые нужно рассмотреть, когда разрабатывают межплатформенную программу. Два выйдите: во-первых, совместимость платформ. Java все еще побеждает, так как JDK хорошо сохраняется единственной и исходной компанией Sun. Моно не сохраняется MS, таким образом, у Вас нет гарантии еще совместимости обновления. 2. Обратная совместимость. Sun поддерживает хорошую репутацию на их обратной совместимости, хотя иногда это кажется слишком твердым и замедляет темп.

  • Инструменты. Java имеет хорошие межплатформенные IDE. Netbeans, Eclipse, и т.д. Большинство из них свободно. Studio VS хорош, но только в Windows, и не стоил немного. Они оба обеспечивает хорошие модульные тесты, отладки, профили, и т.д.

Следовательно я предположил бы, что Java является лучшим выбором. Как выставочный случай, существуют некоторые известные настольные приложения перекрестных платформ, разработанные Java: Vuze, Limewire, BlogBridge, CrossFTP, не говоря уже о тех IDE. Относительно.Net, у меня есть ограниченные знания о таких приложениях успеха.

15
ответ дан Gatorhall 24 November 2019 в 03:44
поделиться

Я думаю, что вопрос формулируется неправильно. C# по сравнению с Java намного менее интересен с точки зрения межплатформенного использования, чем (a) какие платформы необходимо поддерживать и (b) рассмотрение оперативных библиотек и доступных сторонних библиотек. Язык является почти наименее важной частью процесса принятия решений.

18
ответ дан Brad Wilson 24 November 2019 в 03:44
поделиться

Я на самом деле разрабатываю в.NET, запускаю все свои тесты сначала на Моно, и затем в Windows. Тем путем я знаю, что мои приложения являются кросс-платформенными. Я сделал это очень успешно и на ASP.NET и на приложениях Winforms.

я не действительно уверен, где некоторые люди добираются, Моно впечатление так ужасно от, но оно, конечно, сделало, это - задание в моих случаях и мнениях. Это верно, что у Вас будет немного задержки для последних и самых больших изобретений в мире.NET, но до сих пор.NET 2.0 в Windows и Linux очень тверда для меня.

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

.NET является определенно очень кросс-платформенной из-за Моно на основе моих событий до сих пор.

54
ответ дан GEOCHET 24 November 2019 в 03:44
поделиться

Java на самом деле является столь межплатформенным, как все говорят, что это. Существует реализация JVM для примерно любой основной ОС там (даже Mac OS X, наконец), и они все работают действительно хорошо. И существуют тонны инструментов с открытым исходным кодом там, которые являются столь же кросс-платформенными.

единственная выгода - то, что существуют определенные собственные операции, которые Вы не можете сделать в Java, не пишущий некоторый DLLs или SOS. Очень редко, чтобы они подошли на практике. Во всех тех случаях, тем не менее, я был в состоянии обойти его путем порождения собственных процессов и анализа экранных данных результаты.

26
ответ дан jodonnell 24 November 2019 в 03:44
поделиться

Я собираюсь сказать Java также. При рассмотрении его с точки зрения зрелости намного больше времени и усилия были израсходованы Sun (и другие) в том, чтобы заставлять JVM работать над платформами не-Windows.

Напротив, Моно определенно второй гражданин класса в экосистеме.NET.

В зависимости от того, кто Ваши целевые клиенты, можно ли также найти, что существует реальный pushback против использования Моно - Novell предлагает тот же вид поддержки поставщика Моно, который Вы получили бы для Java или.NET в Windows?

при основном предназначении для хостинга сервиса на Windows имело бы смысл рассматривать этот выбор, но так как Вы нацелены на Linux, прежде всего, это походит своего рода на легкую задачу мне.

8
ответ дан Peter Mortensen 24 November 2019 в 03:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: