jueves, 19 de julio de 2012

Cómo convertir una solución o proyecto de C# a VB.NET automáticamente

Muchas páginas permiten pasar pedazos de código de VB.Net a C# y viceversa, pero cuando uno tiene un proyecto o solución grande, utilizar éstas páginas para convertir de lenguaje suele ser tedioso y lento. Por eso para pasar una solución completa tuve que ponerme a buscar una mejor opción....
Luego de buscar bastante por internet encontré una mejor forma de hacerlo.
Para poder hacerlo hay que bajar un interesante programa de internet que se llama SharpDevelop (al momento de escribir este artículo en su version 4.2).

SharpDevelop es un interesane IDE de desarrollo en tecnología .NET el cual es gratuito y open-source, dispone de varios lenguajes para desarrollar (C#, VB.NET, C++, F#, Python, Ruby y algunas cosas más)... Es verdaderamente muy liviano y anda muy rápido, aunque lo utilicé poco le encontre un solo defecto importante: no permite, al estar haciendo debug modificar el código y seguir debuguiando (a no ser que reinicie el debug), esto se debe a que (según leí en sus foros) el compilador .NET de Microsoft no tiene abierta la posibilidad de hacer esto (se me ocurre que así Microsoft se asegura que nadie pueda hacer un IDE mejor, o que le pueda competir al Visual Studio)...

Bueno, el tema es que este IDE, entre otras funcionalidades tiene la de convertir Proyectos enteros de un lenguaje a otro de los que tiene para desarrollar. :-)

Por ejemplo para pasar de C# a .NET mi proyecto hago lo siguiente, abro mi solución con SharpDevelop y en la solapa projects selecciono el proyecto a convertir y con botón derecho->Convert->From C# to VB.NET lo convierto y me deja una copia convertida del proyecto con el mismo nombre pero agregando .Converted... GENIAL!!!

Deja algún que otro pequeño error o advertencia, pero no muchas y fáciles de solucionar. Lo único que tardé un poco en darme cuenta fue que deja los Resources en
Global.<nombre proyecto>.Properties.Resources.<recurso>

cuando debería dejarlos en
Global.<nombre proyecto>.Resources.<recurso>

O sea sin el properties... 
También que a algunos controles se "olvida" de ponerles el WithEvents cuando tienen eventos...
En algunas páginas deja los "Option Strict On" "Option Explicit On" sin estar exactamente al principio, lo cual genera algunos errores.
... Fuera de eso y alguna que otra advertencia ¡Compilo y anda!

5 comentarios:

  1. Por favor!!! cambia el color de la letra y el fondo!!
    Fondo negro se hace imposible de leer, se ve que no has estudiado diseño, solo programacion...

    Sldos

    ResponderEliminar
  2. como soluciono el error que me tira??? tenia el proyecto en c# donde usaba lista, y al convertirlo a VB.Net me da el siguiente error:

    Error 6 El nombre de un campo o una propiedad que se va a inicializar en un inicializador de objeto debe comenzar con '.'. el Código en c# es el siguiente:

    while (dr.Read())
    {
    cli.Add(new Negocio.NEGCliente()
    {
    nroCli = int.Parse((dr["ID_CLIENTE"]).ToString()),
    razonSocial = dr["RAZON_SOCIAL"].ToString(),
    tel = long.Parse((dr["TELEFONO"]).ToString()),
    barrio = int.Parse((dr["ID_BARRIO"]).ToString()),
    barrioNombre = dr["NOMBRE"].ToString()

    });
    }

    agradeceria tu ayuda. Gracias

    ResponderEliminar
  3. Ok... lo descargo, lo instalo, lo abro, cargo la solución c#, Y AHORA COMO LO CONVIERTO A VB.NET???

    ResponderEliminar
  4. Hola, muchas gracias por tu comentario y me lo hace perfecto.
    El problema que no lo puedo guardar. Sabes como guardarlo?

    ResponderEliminar