La idea del .NET no se trata de un lenguaje.. C# es el insignia, sin emargo .NET no es C#
¿Podrías explicar esto? Es que no entiendo muy bien y me interesa bastante. Igual me pongo a buscar ya mismito
Saludos!!!Ok.
Para entender esto, a diferencia fundamental entre Java y .Net hay que separa el lenguaje de las VM
Java tiene una maquina virtual, La maquina Virtual de JAVA. El asunto con esta maquina virtual es que espera ejecutar archivos class que provienes de clases en archivos .java
Esto significa que la maquina virtual de java esta ligada al lenguaje java. Solo corre programas compilados del lenguaje Java.
El framework .NET es la maquina virtual de este entorno, pero el framework no esta ligado a ningun lenguaje.
framework se comporta como un sistema operativo en si mismo.. Como el Basis para los que han instalado software de SAP.
entonces el en este entendido el framework .net siendo "un tipo de sistema operativo" permite recibir y ejecutar codigo arbitrario que pueda entender.
como un procesador de IA86 ejecuta cualquier codigo IA86, framework ejecutara cualquier codigo .NET el que sea no importa de que fuente provenga.
Quienes son las fuentes.
Los lenguajes de compilacion son la fuente. Tradicionalmente un lenguaje de programacion genera codigo para un OS y Procesador especifico y hay compiladores para cada plataforma. Basicamente ahora hay un compilador para una nueva plataforma la .NET
Entonces Visual Basic.NET hace referencia a que Visual Basic en lugar de generar codigo x86 va a generar codigo para la plataforma .NET
Python.NET, Pascal.NET (Delphi.NET), ada.net, perl.net, Asp.net, Etc,Etc, Etc.NET
Si todos esos lenguajes compilan para una plataforma virtual llamada .NET significa que el framework .net puede correr el codigo generado, como un procesador de intel correria un exe comun y corriente de Windows
Entonces la similitud es que el framework traduce su plataforma .net a codigo nativo del procesador local como lo hace JAVA, pero el framework acepta cualquier programa compilado en .NET no solo JAVA
Y la ventaja para el programador cual es?
Digamos que soy un programador de python es lo unico y es lo unico que se programar.
Quiero exportar mi programa a una Sparc corriendo solaris imaginemos que en esta plataforma no existe python
consigo un compilador de python.net y mi conocimiento sobre python es lo unico que debo saber para generar un ejecutable que va a correr en esa sparc o en un Windows o una mac. No tendria que aprender nada del procesador local yo solo programaria tal como se y listo mi programa corre donde sea que haya un framework .net
Otro ejemplo
Yo solo se Visual Basic y quiero programar para Linux un programita con ventanitas y todo muy mono asi como en Windows.
Pero resulta que en Linux no tengo un compilador de VB, pues con el VB tradicional generaria codigo x86 para windows
Visual Basic.NET va a generar un codigo para framework.net que luego podre correr en Linux como si mi programa fuera nativo de esa plataforma o en MacOS, o en la Sparc
Mi conocimiento de Visual Basic sera suficiente para que yo escriba aplicaciones para arquitecturas tal vez ni conosca
Les recomiendo que si tienen dudas, vean el video de miguel de icaza el video toma mas de una hora de platica y en todo el video se explica esto de forma audio visual, imaginence si tuviera que reescribir todo para poder explicarlo con letras...
lo que escribo es el resumen de toda esa interesante platica.
En resumen
La maquina virtual de JAVA esta ligada a programas hechos con JAVA
La maquina virtual .NET no esta ligada a ningun lenguaje aunque la mayoria lo relacione con C# y es que como el C# se parece a JAVA y la maquina virtual .NET funciona similar a JAVA lo han usdo como lenguaje insignia pero no quiere decir que sea el unico lenguaje para programar en .NET
Todos los lenguajes son bienvenidos en .NET incluso JAVA
Una de las cosas mas poderosas del .NET es:
Imaginate que haces una clase en JAVA, a lo que seria JAVA.NET y desde C.net o desde Delphi.net creas un objeto que hereda de la clase hecha en JAVA. La potencia maxima del .NET es que los programas escritos en diferentes lenguajes de pronto pueden compartir codigo.
Imaginate un Python haciendo uso de una rutina JAVA o de Pascal. Cosas a ese nivel.
Podria formar un equipo de programadores y que cada programador fuera experto en su propio lenguaje. Al final el codigo de todos podria mesclarse para formar un programa que proviene de diferentes lenguajes.