Подтвердить что ты не робот

Javascript VS С#

Может быть, странный и зеленый вопрос, но

Есть ли что-нибудь, что С# не может делать то, что javascript может... И учитывая JQuery?

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

EDIT: более конкретно: я имею в виду веб-программирование, и, возможно, более полезный вопрос:

Что я могу сделать на стороне клиента, что я не могу сделать серверную сторону, и наоборот?

> Есть ли еще несколько причин использовать оба языка, если вы оставите "server/clientside" вне видимости?

> некоторые разработчики избегают javascript. почему?

4b9b3361

Ответ 1

Что я могу сделать на стороне клиента, что я не могу сделать серверную сторону и наоборот?

Клиентская сторона: Javascript запускается в большинстве браузеров без плагина. Для С# требуется плагин для браузера, например Silverlight. Несмотря на то, что он работает на клиентской машине, Javascript не может читать и писать файлы там. С# в Silverlight может читать и записывать файлы в зависимости от версии Silverlight и того, что позволяет клиент. И Javascript, и С#/Silverlight могут разговаривать с удаленными серверами.

Серверная сторона: поскольку вы управляете этим устройством, вы можете делать все, что хотите, - читать файлы, записывать файлы, напрямую разговаривать с базами данных и т.д. Имейте в виду, что вам не мешает запустить сервер Javascript. Проверьте node.js.

Есть ли больше причин использовать оба языков, если вы держите "server/clientside" выходит из области видимости?

Я не оставил бы среду выполнения вне вашего анализа. Если вам абсолютно необходимо взаимодействие на стороне клиента и не может гарантировать выполнение С# на клиенте, С# нецелесообразно. Аналогично, если ваша компания запускает серверы Windows и не хочет устанавливать Javascript runtimes/compilers, вы не сможете использовать Javascript на сервере.

некоторые разработчики избегают javascript. почему?

Проблемы с Javascript в браузере абсолютно ужасны для отладки. Вы работаете на машине, которая находится вне вашего контроля - пользователь может работать с неясным или старым браузером, они могут использовать антивирусное программное обеспечение, которое заманивает ваш Javascript, их плагины браузера могут гадать с вашим Javascript. Это трудно.

Это затраты на ведение бизнеса на чужой машине. Если бы это было легко, красивый клиентский опыт означал бы меньше. Решение трудных проблем - это не для всех, но он уверен, что это хорошо.

Ответ 2

Я считаю, что ваш реальный вопрос: если С# может делать все, зачем вам вообще использовать javascript? Ответ здесь - это производительность, как воспринимаемая, так и реальная. Хитрость здесь заключается в том, что для использования С# для манипуляции DOM, обычно связанной с javascript, браузер должен отправить обратно дополнительный HTTP-запрос на сервер и сообщить код С#, что делать. Давайте поговорим об этих дополнительных запросах. Распространяйте множество пользователей, они очень быстро складываются и проигрывают в инфраструктуре вашего сервера. "Реальная" проблема производительности заключается в том, что теперь на вашем сервере (ах) требуется большая работа, а не в браузерах ваших пользователей. "Воспринимаемые" проблемы производительности заключаются в том, что даже если у вас есть серверные ресурсы, которые легко обрабатывают все дополнительные HTTP-запросы, пользователю теперь нужно потратить дополнительное время, ожидая задержки, вызванной этими поездками по окружению.

Ответ 3

Оба языка сильно зависят от API, которые были предназначены для разных доменов.

JavaScript первоначально предназначался для запуска внутри браузера, поэтому он активно использует DOM API, а также другие операции в браузере, такие как AJAX. С#, вероятно, не имеет хорошей поддержки для такого API, поскольку он никогда не предназначался для выполнения непосредственно внутри браузера, хотя Silverlight может предоставлять такие операции, поскольку он (каким-то образом) является "С# Sandbox" внутри браузера.

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

Ответ 4

Я видел проект С#, где встроен javascript и может выполнять javascript внутри кода С#. Посмотрите здесь, CodeProject, чтобы узнать, как это достигается.

Ответ 5

Технически, нет.

Вы даже можете использовать серверную часть Javascript, если хотите (или на стороне клиента С# с помощью разных механизмов).

На самом деле это всего лишь два способа выполнить ту же работу.

Ответ 6

Основное отличие состоит в том, что С# (если говорить о сети) выполняется на сервере и JS на клиенте. Вы не можете выполнить С# на клиенте. Это. Оба языка полностью заполнены Тьюрингом, поэтому не беспокойтесь:)