Почему .NET и Java на стороне сервера? - PullRequest
2 голосов
/ 02 ноября 2009

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

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

Ответы [ 9 ]

9 голосов
/ 02 ноября 2009

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

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

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

Они фактически выбраны по совершенно противоположным причинам:

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

Java и .NET имеют свои преимущества для серверной стороны.

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

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

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

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

2 голосов
/ 03 ноября 2009

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

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

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

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

2 голосов
/ 02 ноября 2009

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

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

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

1 голос
/ 01 декабря 2009

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

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

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

1 голос
/ 02 ноября 2009

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

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

0 голосов
/ 02 ноября 2009

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

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

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

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

0 голосов
/ 02 ноября 2009

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

...