In effetti il Framework .NET è un po' una contraddizione. Gli assemblies vengono compilati in linguaggio intermedio, come hai ben detto, con l'intenzione di essere indipendenti dal linguaggio usato (quindi molto riusabili come codice) e sono in effetti eseguiti da alcuni componenti del framework, rendendo i linguaggi .NET quasi interpretati. Questa astrazione è simile come concetto a una macchina virtuale o a un semplice interprete: tuttavia viene imposto come vincolo ciò che questi ultimi non hanno per definzione, ossia la necessità di un dato sistema operativo.
Il problema, quindi, esiste ed è molto ostico il più delle volte. Non puoi eseguire un programma .NET su una macchina sprovvista del framework .NET. Non è il massimo della portabilità, ma su Linux è disponibile Mono (ed il rispettivo IDE MonoDevelop), che emula il CLR del framework, permettendo l'esecuzione di suddetti programmi.
P.S.: se ti interessa la disponibilità di linguaggi .NET, ci sono: C#, VB.NET, J#, F#, Delphi.NET, Visual C++.NET, IronPhyton, IronRuby.
Ultima modifica effettuata da Il Totem il 27/04/2010 alle 16:59 |