Generalmente, qualsiasi progetto web di dimensioni decenti utilizzerà circa cinque lingue: HTML, CSS, Javascript, un tipo di linguaggio sul "fare le cose" lato server (ASP, JSP, script CGI con Perl, PHP, ecc.) e alcune varianti di SQL per la connettività del database.
(Questa è, naturalmente, la mano che saluta la discussione sul fatto che HTML e CSS contino o meno come linguaggi di programmazione - io sono il campo "sono, ma solo non turing-completi", ma quello è un intero altro thread)
Alcuni esempi di come tutti coloro che lavorano insieme:.
Se stai andando il percorso best practice, la struttura di una pagina web è in formato HTML, e le istruzioni per come visualizzare è in CSS - che potrebbe essere nello stesso file, ma non deve essere. Il CSS contiene un mucchio di classi, a cui si riferisce l'HTML, e tocca al browser capire come fare clic su di esse.
Facendo un ulteriore passo avanti, qualsiasi script javascript su quella pagina può alterare qualsiasi HTML/CSS presente (cambia il contenuto delle entità HTML, scambia una classe CSS con un'altra, cambia il comportamento del CSS, e così via.) Lo fa tramite qualcosa chiamato Document Object Model, che è essenzialmente un'API indipendente dalla lingua e dalla piattaforma per manipolare le pagine HTML in modo object-like (a quel punto mi arrenderò lentamente e fornirò solo un link al relevant wiki article.)
Ma allora, da dove viene tutto l'HTML/CSS/Javascript? Questo è ciò che fa il linguaggio lato server. Nella forma più semplice, il linguaggio lato serer è un programma che restituisce una stringa gigante che contiene una pagina HTML come output. Questo, ovviamente, può diventare molto più complesso: i moduli HTML e i parametri della stringa di query possono essere utilizzati come input per il nostro programma lato server, e quindi si ha l'intera cosa AJAX in cui il javascript arriva a inviare i dati direttamente alla lingua del server. Puoi anche essere fantasioso dove la lingua del server può personalizzare l'HTML, il CSS e il Javascript che vengono sputati - in sostanza, hai un programma in una lingua che scrive un programma in un'altra lingua.
La connessione tra linguaggio SQL e lato server funziona in modo analogo. Ci sono molti modi per renderlo sia più complesso che più sicuro, ma il modo più semplice è per la lingua del tuo server di creare dinamicamente una stringa con un comando SQL, passarla al database tramite una sorta di connettore e tornare indietro un set di risultati. (Questo è un caso in cui si ha veramente una funzione che si riduce a someValue = database.executeThisSQLCommand (SQLString).)
Quindi, per concludere, lingue diverse in questo caso comunicano effettivamente scrivendo programmi l'uno nell'altro o distribuendo i dati in modo molto semplice e facile da analizzare i formati che tutti possono comprendere. (Archi, principalmente.)
Posso chiedere quali sono i componenti COM nativi? – Dan
È buona norma chiamare gli script Python dal codice C# nel progetto di grandi dimensioni? – amrit
@amrit: questo dipende totalmente. Naturalmente, il mescolare le tecnologie in un progetto ha sempre un certo costo, ma questo costo può essere facilmente compensato dal costo di (ri) implementazione delle funzionalità esistenti. Quindi potrebbe essere perfettamente ragionevole integrare le librerie Python esistenti in un codice C#. –