Respondí hace un rato, pero se ve que el mensaje se perdió :( Bueno, va de nuevo.
.NET es básicamente un intérprete de pseudocódigo con una jerarquía de clases disponibles para usar.
El intérprete se llama Common Language Runtime (CLR), y su trabajo es convertir el pseudocódigo -independiente de la plataforma- en código nativo para que pueda ser ejecutado. Vendría a ser el equivalente de la Máquina Virtual Java (JVM), o del FOXRUN del viejo Fox y Fox Pro, o del RUNCOBOL del RM/COBOL.
El pseudocódigo se llama Lenguaje Intermedio (IL = Intermediate Language). Vendría a ser como el "bytecode" de Java, o sea, como los archivos .class que se obtienen al compilar un fuente .java, o como los .FXP de FoxPro al compilar un .PRG, o como los .COB de RMCOBOL al compilar un .CBL, pero la diferencia es que el Lenguaje Intermedio ha sido diseñado para ser bastante independiente del lenguaje fuente (de hecho, no hay algo así como un lenguaje fuente oficial), posibilitando que de muchos lenguajes de programación se pueda generar Lenguaje Intermedio. El Lenguaje Intermedio es independiente de la plataforma, por lo que funcionará en cualquier sistema para el que esté disponible la plataforma .NET (claro que no son tan numerosos como los de Java, pues no creo que a Microsoft se le vaya a cruzar por la cabeza hacer un .NET para Linux, por ejemplo).
En cuanto a la jerarquía de clases, sería como el equivalente a la Java Class Library (JCL = librería de clases de Java), pero es más parecida a la VCL... De hecho, es MUUUUY parecida a la VCL, lo cual no extraña mucho si consideramos que los arquitectos de la misma trabajaron en su momento para Borland y tuvieron a cargo el diseño de la VCL.
El foco de .NET es la comunicación a través de Servicios Web basados en XML, y SOAP. Para aplicaciones comunes no se justifica que sean .NET por cuestiones de rendimiento, claro que el acuerdo de licencia de .NET impide que se publique algún informe contundente al respecto.
¿Cuál es el sentido de todo esto de .NET? ¿Realmente puede competir con Java cuando Java es multiplataforma de verdad? Como sea, está claro que Microsoft con esto ha creado una gran ola y se ha situado en la cresta de la misma, pero ¿es una verdadera ola o es pura espuma? Da igual. De cualquier modo, .NET de a poco está entrando en todos lados, pero si quieres saber algo, hoy por hoy no te pierdes realmente de nada si no lo tienes. ¿Quieres servidores y clientes de Servicios Web? ¿XML? ¿SOAP? Con Delphi ya existían componentes gratuitos y con fuentes para esas cosas desde mucho antes de la aparición de Delphi 6, que a su vez apareció 6 meses antes que las respectivas herramientas de Microsoft... De todos modos, no voy a despreciar la librería de clases de .NET, que seguramente en cuanto a componentes de comunicación debe proveer cosas de manejo más transparente que los Indy, por ejemplo, como por caso trae la librería de Java, que es de manejo más simple, pero igual, ¿realmente nos estamos perdiendo de algo si no tenemos .NET?
Ernesto De Spirito
http://www.latiumsoftware.com/es/index.php