2008-09-18 16 views
7

Estaba buscando algunos enfoques para convertir incrementalmente un gran proyecto ASP.NET VB.NET existente a C# sin dejar de poder implementarlo como una única aplicación web (actualmente implementada semanalmente).Convirtiendo un gran proyecto de ASP.NET VB.NET en C# - incrementalmente?

Mis pensamientos eran simplemente crear un nuevo proyecto C# ASP.NET y mover paulatinamente las páginas, pero nunca intenté hacer esto y fusionarlo de alguna manera con otro proyecto ASP.NET durante la implementación.

(Aclaración: Los grandes proyectos de VB.NET ASP.NET son perros absolutas en el IDE de VS ...)

¿Alguna idea?

+0

no ha etiquetado su pregunta. – chrissie1

+0

realmente? Veo 4 etiquetas a la derecha con las que lo etiqueté cuando creé la pregunta ... C#, asp.net, vb.net, conversión – Joey

+0

chrissie1: las etiquetas están a la izquierda ahora (no sé por qué el cambio) –

Respuesta

3

Me gusta el puerto me gusta ¿Lo tomo? Realmente no veo el punto y lo que ganarás por todo el esfuerzo. Tal vez escriba cualquier característica nueva o refactorice capas de lógica/servicio lentas/malas en C# pero en cuanto a las páginas web, no veo el beneficio 80/20.

+0

Correcto, estamos refabricando y bajando el código a presentadores, servicios, etc. Pero si alguna vez trabajó en VS IDE con un gran proyecto ASP.NET VB.NET antes, saber cuánto VB.NET mata al IDE. Así que estamos buscando una solución a corto plazo para superar el impedimento de VB.NET. – Joey

+0

Hola, no, nunca he trabajado con una solución vb.net, pero no veo cómo una reescritura a C# es una solución a corto plazo si el sitio es grande. – redsquare

+0

Gracias por la respuesta. De hecho, no estoy hablando de una reescritura. Puedo usar SharpDevelop para la conversión real de una página a la vez. Me preguntaba más acerca de la parte incremental en lo que se refiere a la fusión de 2 proyectos web de asp.net para implementarse como uno solo. ¡Gracias! – Joey

0

Se puede hacer. Bueno, espero que se pueda hacer ya que estoy haciendo esto poco a poco en una aplicación heredada de ASP.net. Solo podría cambiar más de 1 formulario web a la vez. Donde puede tener problemas es que parece que no tengo idiomas mezclados en la carpeta del código de la aplicación, ya que se compilan juntos.

1

Guarde las cosas viejas en VB. Todo lo nuevo en C#. La transición puede ser lenta pero no perderá tiempo. En el tiempo libre, cambia cosas en C#.

5

Comience con la lógica empresarial y vaya a las páginas. Encapsule todo lo que pueda en las bibliotecas de C# que puede agregar como referencias al sitio de VB.NET.

Una vez que haya procesado y probado todo su back-end, puede comenzar a hacer páginas individuales, aunque le sugiero que no lo despliegue hasta que haya completado toda la conversión.

+0

Gracias. Ese es prácticamente el enfoque que hemos estado tomando hasta ahora. Pero dado que hacemos lanzamientos semanales a la producción, no estoy seguro de que la parte "esperar hasta que estén listos antes de implementar" nos funcione demasiado bien. – Joey

1

Lo hice con un proyecto de la siguiente manera:

  1. Crear una biblioteca de clases C#
  2. referencia la biblioteca de clases C# desde la aplicación web VB
  3. Crear el código detrás de clases en el C# biblioteca
  4. actualización de la "hereda" propiedad en el archivo aspx/ascx hacer referencia a la clase C# (este archivo aún existe en el proyecto original, VB)

Funcionó de alguna manera bien; A veces es un poco molesto que ahora tenga que navegar por múltiples proyectos para ver una sola página/control, pero me dejó hacer lo que está queriendo hacer.

1

Simplemente puede hacer un nuevo proyecto de biblioteca de clase C# en la solución. recodifica algunas clases a la vez aquí y luego reemplaza las clases vb en el proyecto principal.

pero para ser sincero, estaría de acuerdo en que no veo el beneficio a menos que trate de aprender C# o simplemente no me gusta vb o simplemente aburrido.

4

Puede guardar su App_Code Directory con el código VB y el código C# en él. Entonces, efectivamente, puedes hacerlo muy lentamente cuando tienes el tiempo libre para convertirlo.

Actualmente tengo ambos códigos VB.Net y C# en mi directorio App_Code y en mi tiempo libre cambio a código VB.Net o en cualquier momento tengo que volver a una página con VB.Neto y lío con él lo convierto en C#.

Easy Peasy y Microsoft lo hicieron aún mejor cuando le permitieron tener tanto VB.NET como C# en la misma aplicación. Esa fue una de las mejores ideas que pudieron haber implementado en todo el proceso de creación de aplicaciones.

Si desea agregar ambos directorios de código en su un directorio agregar esto a su Web.config

<compilation> 
<codeSubDirectories> 
    <add directoryName="VB_Code"/> 
    <add directoryName="CS_Code"/> 
</codeSubDirectories> 
</compilation> 

Y a continuación, añadir una carpeta llamada VB_Code y otra carpeta CS_Code nombrado en el directorio App_Code. Luego arroje todo su código vb/C# en sus carpetas y su bien.

0

Si tiene $ 179, listo.

Por supuesto que son convertidores de software gratuito disponible también.

+0

Gracias, pero la conversión real en sí no es realmente el problema. Supongo que el título de mi pregunta no estaba tan claro. Es la parte "incremental" de la conversión que se relaciona con la fusión/implementación del proyecto web que realmente era lo que me preguntaba. – Joey

1

que he tenido éxito tirando en dlls de proyectos VB con Reflector (es gratis) y la visualización del código como C#. Las variables locales no siempre se traducen, pero puede comparar la traducción y refactorizar las cosas sobre la marcha.

1

prueba #Develop. Creo que esta es la mejor manera de convertir CUALQUIER .net compatible con cualquier lenguajes soportados .net.

Otras herramientas solo convierten el código pero esto convierte todo el proyecto.

Cuestiones relacionadas