Blog de Miguel Llopis

XNA y Visual Basic: ¿Un amor imposible?

Aprovecho el movimiento generado gracias al lanzamiento de la primera CTP de XNA 3.0 y también el reciente evento online de "C# vs VB.Net" en el que surgió esta pregunta durante el Q&A para comentar porqué Visual Basic no está soportado en XNA Game Studio (y, al menos que yo sepa, no hay indicios que me hagan pensar que eso vaya a cambiar para las próximas versiones, aunque espero equivocarme por el bien de mis amigos de Visual Basic...).

Este es el modelo de capas de ejecución de una aplicación funcionando en XNA:

Como podemos ver, el framework de XNA funciona sobre el framework de .Net, bien sea de la versión completa del mismo, o del Compact Framework. No se trata del mismo Compact Framework que empleamos en sistemas operativos Windows Mobile, sino de una versión específica que existe para XBOX y, desde hace unos días, también para Zune.

Aquí es donde viene el problema... ¿Qué sucede con Visual Basic? Aquellas personas que hayan trabajado aunque sea mínimamente (como es mi caso) con Visual Basic .Net, serán conocedores del "asuntillo" relacionado con el célebre ensamblado Microsoft.VisualBasic.dll, de inclusión obligada en proyectos desarrollados con este lenguaje del framework. Bueno, obligada lo que se dice obligada... NO, pero estas son algunas de las consecuencias de no usarlo

Ahora bien, el problema surge cuando dicha DLL no está soportada en la versión del Compact Framework de la que hablábamos con anterioridad, por ello, el rendimiento de aplicaciones desarrolladas con VB.Net en XNA funcionando sobre XBOX o Zune sería "no todo lo bueno que uno desea" ;-)

Por ello, todas las versiones disponibles hasta ahora de XNA están únicamente soportadas para Visual C#. No obstante, no todo iban a ser malas noticias para el gran Guille y sus fieles (entre los cuales me incluyo, pese a pertenecer a la secta del C#, o C plus plus plus plus como comentaba Marino en el evento del martes).

¿Por qué digo que no todo iban a ser malas noticias? Pues bien, lo digo porque a los desarrolladores deseosos de crear sus proyectos XNA usando Visual Basic, nadie les corta las manos a la hora de crear un proyecto Visual Basic y añadir los ensamblados de XNA oportunos... jejeje.

Es más, existen incluso proyectos creados por la comunidad para la creación de plantillas instalables sobre Visual Studio. Efectivamente, no es broma, aquí está la prueba gráfica de que este tipo de plantilla existe:

Y aquí el enlace a dicho proyecto y a las instrucciones sobre cómo instalar y registrar dicha plantilla de Visual Studio.

No sólo eso, sino que también hay desarrolladores que han ido más allá y creado sus propios tutoriales sobre desarrollo avanzado de juegos en XNA con lenguaje Visual Basic, como es el caso del gran Alan Phipps, cuya web os dejo aquí mismo.

Así que para todos aquellos desarrolladores de Visual Basic deseosos de crear sus juegos con XNA, podéis hacerlo aunque no de forma "oficial"... Eso sí, vuestros juegos únicamente funcionarán sobre plataforma PC, de momento... :-)

Happy Coding!

Posted: 8/5/2008 22:48 por Miguel LLopis | con 6 comment(s) |
Comparte este post:

Comentarios

Marino Posadas ha opinado:

Gracias, Miguel, por tus comentarios. Lo que dices  es totalmente cierto, y para los que pudieran no conocerlo, recalco esa extraordinaria posibilidad que nos da .NET de incluir casi cualquier tipo de lenguaje en nuestras aplicaciones. En un programa C#, puedes meter un bloque "unsafe" donde se use C/C++ compilarlo, probarlo, y añadirlo a tu programa Visual Basic .NET con una referencia.

Esa técnica da acceso a los programadores VB.NET (o de otros lenguajes .NET) a docenas de miles de rutinas bien conocidas y comprobadas que están disponibles en la red. Y aprovecho la ocasión para complementar eso diciendo que (como mencioné en la charla), lenguajes casi esclusivamente pensados para el cálculo matemático avanzado, como F#, TAMBIEN son directamente utilizables desde proyectos de VB.NET o C#, ganando así una  potencia sin precedentes.

Para dar una idea de esto, solamente comentaré que -ahora mismo- el propio autor del lenguaje (Don Syme) está (junto a un colaborador suyo, Jon Harrop) escribiendo una obra única en su género: "F# para científicos", donde aborda las posibilidades que este lenguaje tiene en la aplicación de calculos matemáticos y físicos complejos. Hacía mucho que no veía una cosa así, y desde luego es la primera vez que esto sucede en .NET

Saludos

Marino

# May 11, 2008 1:23 PM

UHU DotNetClub ha opinado:

Nueva versión de XNA game studio 2.0. Nuestro compañero Miguel LLopis nos cuenta, que no se podra utilizar

# May 12, 2008 7:15 PM

Jesús Bosch ha opinado:

muy interesante, no conocía el motivo de porqué no se pueden implemenar juegos XNA con vb.net

# July 25, 2009 3:35 PM

Melvin ha opinado:

Devras que no he hecho la idea de porque no es uso de Visual basic.net a XNA, la verdad he estado preguntandome porque no nos han incluido Una version express de Windows mobile 7 para Visual Basic., la ultima vez escuche en el foro de VB.net que C# y VB.net se iva a unir, pregunto si esto sucede Tendremos Que emigrar a C# los que usamos VB.net ? ya que es por eso que la controvercia de esto, en mis caso estoy deseoso que VB.net Sea uno de los lenguajes preferidos al igual que los demas ya que  somos muchos, puesto que creo que no muchos se adaptaran a este cambio,

# August 1, 2010 2:18 AM

123456789 ha opinado:

123456789

# April 3, 2011 11:27 PM