Как правило, любой веб-проект с приличным размером будет использовать около пяти языков: HTML, CSS, Javascript, какой-то серверный язык «сделай все» (ASP, JSP, CGI-скрипты с Perl, PHP и т. Д.), , и некоторый вариант SQL для подключения к базе данных.
(Это, конечно же, размахивает руками вопрос о том, считаются ли HTML и CSS как языки программирования. Я - это «они есть, но только не язык Turing-complete», но это вся другая нить)
Некоторые примеры того, как все эти работы вместе:.
Если вы собираетесь маршрут передовой опыт, структура веб-страницы в HTML, а также инструкции о том, как отобразить он находится в CSS - который может быть в одном файле, но не обязательно. CSS содержит кучу классов, на которые ссылается HTML, и именно браузер должен выяснить, как их соединить.
Принимая все это на шаг, любые скрипты javascript на этой странице могут изменять любой существующий HTML/CSS (изменять содержимое объектов HTML, заменять один класс CSS для другого, изменять поведение CSS, и т. д.). Это делается с помощью так называемой Document Object Model, которая по сути является языком и независимым от платформы API для манипулирования HTML-страницами в виде объекта (в этот момент я медленно отступаю и просто предоставляю ссылка на relevant wiki article.)
Но тогда откуда все HTML/CSS/Javascript? Это то, что делает серверный язык. В простейшей форме язык на стороне Serer - это программа, которая возвращает гигантскую строку, содержащую HTML-страницу в качестве вывода. Это, очевидно, может быть намного сложнее: HTML-формы и параметры строки запроса могут использоваться как входные данные для нашей серверной программы, а затем у вас есть вся AJAX, где javascript получает возможность отправлять данные непосредственно на язык сервера. Вы также можете получить фантазию, когда язык сервера может настроить HTML, CSS и Javascript, которые выплевываются - по сути, у вас есть программа на одном языке, пишущая программу на другом языке.
Службы на стороне сервера для SQL работают одинаково. Существует множество способов сделать его более сложным и безопасным, но самым простым способом является то, что ваш серверный язык динамически строит строку с помощью команды SQL, передавая ее в базу данных через какой-то коннектор и возвращаясь обратно набор результатов. (Это случай, когда у вас действительно есть функция, сводящаяся к someValue = database.executeThisSQLCommand (SQLString).)
Таким образом, чтобы обернуть это, разные языки в этом случае либо свяжутся, фактически записывая программы друг в друга , или путем передачи данных в очень простых, легко разобранных форматах, которые каждый может понять. (Строки, в основном.)
Могу ли я спросить, что такое «Родные COM-компоненты»? – Dan
Является ли хорошей практикой вызывать скрипты python из кода C# в большом проекте? – amrit
@amrit: Это полностью зависит. Разумеется, технологии микширования в проекте всегда имеют определенную стоимость, но эту стоимость можно легко перевесить за счет (повторной) реализации существующей функциональности. Поэтому вполне разумно интегрировать существующие библиотеки Python в базу данных C#. –