Вопрос

Java и .NET — это два языка, предназначенные для устранения зависимости от платформы.Это достигается путем добавления виртуальной машины/фреймворка между кодом и ОС.

Итак, какой смысл использовать его на стороне сервера, поскольку все веб-сайты доступны через браузер и не зависят от платформы?Есть ли какая-то особая причина для их использования?

Это было полезно?

Решение

.NET предназначен только для платформы Windows.Java — единственный из двух языков, который не зависит от платформы.

Эти языки широко представлены на сервере по многим причинам:

  1. Множество библиотек, которые решают подзадачи проблемы
  2. Обе платформы созданы с учетом безопасности.
  3. Это управляемые языки, и гораздо сложнее осуществить типичные атаки на программное обеспечение.
  4. Они считаются зрелыми технологиями, ими неоднократно злоупотребляли и они выдержали испытание.
  5. У них есть поддержка со стороны промышленности.
  6. Оба объектно-ориентированные
    1. Это означает, что существует возможность разработки веб-сайта с использованием повторно используемых компонентов или компонентов сторонних производителей.
  7. Оба языка допускают «песочницу» неуправляемых компонентов (Java:JNI.NET:Box) [позволяет включать устаревшие компоненты]

Другие советы

На самом деле они выбраны по почти совершенно противоположным причинам:

  • Независимость платформы Java означает, что вы не привязаны к одной платформе и, таким образом, более гибки в выборе наиболее экономичной или самой надежной платформы.И вы можете продолжать работу своих приложений, даже если вам придется сменить серверную платформу, поскольку старая больше не поддерживается.
  • .NET выбран потому, что, если вы собираетесь привязать себя к операционной системе, Microsoft является крупнейшим игроком и, следовательно, наименее рискованным вариантом - или просто потому, что компании попали в ловушку «магазина только Microsoft» через шлюзовые препараты, такие как Exchange.И как только вы окажетесь там, .NET — это то, что Microsoft хочет, чтобы вы использовали, поддерживает и интегрирует со всеми своими текущими инструментами.

И Java, и .NET имеют свои преимущества на стороне сервера.

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

Таким образом, вы можете использовать F# для функций интеллектуального анализа данных, C# для работы с базой данных, неуправляемый C++ (проходящий через тонкий управляемый уровень C++) для быстрых сетевых подключений или системных вызовов, а также существует множество других языков..NET в настоящее время менее независим от платформы, но независим от языка.

Java можно использовать в нескольких разных ОС, что является преимуществом, если вы продаете решение, поскольку вам не важно, какую ОС использует клиент.

Теперь JVM становится менее зависимой от языка, поскольку от нее отказались Clojure и Scala, поэтому Java стал более интересен для разработки приложений.

Они виртуализируют базовую систему, поэтому их можно запускать на различных типах серверных операционных систем.

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

Если вы спрашиваете, потому что не понимаете, почему можно принять накладные расходы уровня абстракции, имейте в виду, что и Java, и .NET JIT сводятся к собственному коду.

Итак, какой смысл использовать его на стороне сервера, поскольку все веб-сайты доступны через браузер и не зависят от платформы?

Что ж, веб-приложения не просто отображают HTML для развлечения, они делать вещи на стороне сервера, что может включать общение с базами данных, отправку сообщений MOM и т. д.

Есть ли какая-то особая причина для их использования?

Это частичный ответ, но я хотел хотя бы осветить здесь случай Java.Я мог бы начать с утверждения, что Java — это безопасный, надежный, объектно-ориентированный, со сборкой мусора, высокопроизводительный, многопоточный, интерпретируемый, нейтральный по архитектуре, кроссплатформенный, совместимый с модными словами язык программирования...но это не ответит на ваш вопрос.На самом деле, главное преимущество Java на стороне сервера заключается в том, что, по моему мнению, вы получаете выгоду от стандартизированных корпоративных API (также известных как J2EE), которые позволяют вам делать «корпоративные вещи» (JDBC, JTA, JMS и т. д.) стандартным способом с аппаратным обеспечением, работая независимость от поставщика системы и программного обеспечения (что является большим плюсом при заключении контракта).Другими словами, Java идеально подходит для гетерогенных сред, что почти всегда характерно для крупных организаций, и не ограничивает вас.

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

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

На заре Интернета в основном использовался Perl, и отдельные смельчаки, которым не нравился Perl или которые хотели большей производительности, использовали C++.Затем Sun разработала JDBC и сервлеты для Java, а затем и другие части J2EE, и Java стала более производительной альтернативой Perl и проще, чем C++.С J2EE появилось множество продуктов серверов приложений от крупных компаний, и теперь у вас есть большое сообщество веб-серверов приложений и веб-серверов Java.

Затем, после поражения в войне J++/Java с Sun, появилась Microsoft и создала аналогичную инфраструктуру веб-приложений с помощью .NET.С .NET у вас меньше выбора, со всеми вытекающими отсюда преимуществами и недостатками.

Итак, я думаю, что ответ — это сочетание достойной производительности, безопасности и корпоративных функций, а также серьезной корпоративной поддержки.C++ слишком сложен и опасен для большинства людей.У Perl, PHP, Python и Ruby есть свои поклонники, но нет корпоративной поддержки.Я не думаю, что тот факт, что Java/.NET находится на виртуальных машинах, важен для серверной части.Java изначально использовала виртуальную машину для клиента.Компании Sun пришлось приложить немало усилий, чтобы создать быструю виртуальную машину для серверов.Я думаю, что Microsoft использовала виртуальную машину, чтобы конкурировать с Sun и упростить поддержку нескольких языков.Будет интересно посмотреть, станет ли популярным язык Go от Google, который может превзойти Java и C# по безопасности и мощности, но без виртуальной машины.

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

Я понимаю ваш вопрос так:зачем выбирать Java или .NET, если есть более удобные способы настройки сервера, поскольку клиенты используют HTTP для доступа к серверу?

Вы правы в том, что серверная ОС или платформа обычно не имеют значения для клиента.

Однако клиентская часть также может содержать апплеты или код, которым затем необходимо взаимодействовать со своим аналогом на сервере.Тогда JSP или .NET станут более интересными, поскольку вам не придется управлять разными клиентскими ОС.Тогда сайт станет легко расширяемым.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top