2011-06-01 8 views
5

Uno de nuestros clientes quiere que su aplicación Delphi se convierta a .NET 4.0. Después de leer las respuestas a varias preguntas similares en este sitio, he decidido seguir paso a paso la conversión del código Delphi a .NET.Conversión de Delphi a .NET 4 (sin ninguna herramienta)

Como soy desarrollador .NET, primero necesito familiarizarme con Delphi. Es bastante difícil encontrar un solo sitio que proporcione una visión general completa de los conceptos de Delphi. Además, aún no he encontrado ningún sitio que proporcione información sobre los equivalentes de Delphi en .NET. Por ejemplo, ¿qué es el equivalente a "stdcall" o "export" en .NET? o ¿cuál es el equivalente de un tipo de datos Delphi particular en .NET?

¿Alguien sabe acerca de tales recursos en línea que proporcionan información acerca de los equivalentes Delphi en .NET? Además, si alguien podría proporcionar algún consejo sobre esto?

+0

esto es demasiado amplio para responder. Lea la guía de lenguaje delphi y tómela desde allí. –

+0

Consulte el wiki de documentación de Embarcadero aquí: http://docwiki.embarcadero.com/RADStudio/es/Main_Page –

+3

Me gustaría agregar que buscar un mapeo 1: 1 entre los elementos del lenguaje está equivocado.Si eso lo cortara, habría herramientas automatizadas para el trabajo. Por ejemplo, las palabras clave 'stdcall' y' export' señalan una DLL diseñada para ser utilizada desde otras aplicaciones. No existe un equivalente directo en el mundo de .NET porque no puede vincular a una biblioteca de .NET desde una aplicación nativa, necesita usar todo tipo de tecnologías de interoperabilidad. –

Respuesta

2

Realmente, la manera más rápida de hacerlo es comenzar desde rasguño. Tratar de convertir el código heredado de Deplhi a C# está plagado de problemas y, al final, tendrá una aplicación C# tipo Delphi. Los frameworks subyacentes, VCL en Delphi, y FCL en .NET, tienen diferencias arquitectónicas significativas, por lo que dado que la cantidad de tiempo para convertir será más o menos equivalente a la cantidad de tiempo para desarrollar desde cero, te estás condenando a una segunda clase aplicación si baja por la ruta de conversión.

Y podría agregar que he convertido con éxito un marco de aplicación de Deplhi a Delphi.NET, para usar en Visual Studio. Hice esto para mantener la comunicación entre procesos y la compatibilidad arquitectónica entre los dos entornos de desarrollo. Si los beneficios de esto no hubieran sido grandes, nunca habría hecho la conversión.

2

Como han señalado otros, no hay una forma directa de responder a esto a menos que decida explicar todo lo que es Delphi y cómo se compara con dotNet.

Sin embargo, puede que le interese saber que las últimas versiones de RadStudio incluyen un Delphi.NET que se integra en VS.

Ese es probablemente el camino más corto y seguro para el trabajo.

Para empezar, las dos versiones (aunque notablemente diferentes) todavía tienen suficientes similitudes con la compilación cruzada en su mayor parte, y eso sin duda sería un comienzo.

No estoy seguro acerca de la GUI, pero siempre que la aplicación use componentes principales, debe haber contrapartes dotNET. DevExpress y TMS vienen a la mente, por ejemplo.

Por último, pero no menos importante, estoy seguro de que si necesitas cualquier ayuda específica, todos estaremos encantados de ayudarle :)

Andrea

+2

No recomendaría portar a Delphi Prism principalmente porque el cliente claramente solicitó la versión C# y también portar de Delphi win32 a Delphi Prism sería casi la misma cantidad de trabajo que portar a C#. Delphi Prism u Oxygene no es Delphi, es un compilador de Object Pascal para .NET. Real Delphi.NET (Delphi 2007 .NET) se suspendió y por muy buenas razones. Por ejemplo, no hay variables de clase en Delphi Prism –

+0

Eso es parcialmente cierto, pero hay algunas cosas que considerar: 1) Si bien es cierto que los idiomas son diferentes, todavía hay un grado de compatibilidad grande. 2) Es cierto que Delphi.NET no es C# pero eso no es un problema, ya que hay una gran cantidad de convertidores que incluyen cosas como Reflector Plus, mientras que es imposible hacer coincidir Delphi y dotNET 1 a 1, es ciertamente más rápido de hacer de esta manera (en mi opinión) en lugar de cualquier otra opción. Andrea –

+0

Portar a Prism también mantendría el vínculo con el VCL, lo cual es una gran ventaja, con C# tendrá que usar un marco completamente diferente. Además con Prism puedes reutilizar (la mayoría) de tus archivos .dfm, con C# tienes que rediseñarlos, mucho más trabajo. – Johan

1

me gustaría tener algunas de las herramientas automatizadas para la migración a C# solo para volver a aliviar el dolor de portar una sintaxis diferente, y después de eso todo es trabajo manual.

Y no es un libro para desarrolladores Delphi que describe .NET y similitudes y diferencias, .NET 2.0 for Delphi Programmers Sé que esto es revés pero OMI puedo ayudar a

+0

Gracias @Antonio Bakula. Creo que [.NET 2.0 para los programadores de Delphi] (http://www.amazon.com/NET-2-0-Delphi-Programmers-Shemitz/dp/1590593863) junto con [Delphi for .NET Developer's Guide] (http: //www.amazon.com/Delphi-Developers-Guide-Xavier-Pacheco/dp/0672324431/ref=ntt_at_ep_dpi_1) sería realmente útil –

+0

-1 ¿Qué pasa con el enlace a los archivos VCL y DFM? Ahí es donde la mayor parte del trabajo es ... – Johan

+0

las herramientas automatizadas pueden hacer eso, por ejemplo Delphi2CS puede convertir archivos * .dfm a código C#. En su sitio, declararon que Delphi2CS puede convertir componentes de VCL a C#. No lo usé, así que no sé cómo funciona esto, pero investigué qué se necesita para adaptar el gran sistema Delphi 2006 a C#, en la empresa final para la que trabajé en ese momento (2007) en mi consejos cancelar la portabilidad todos juntos y continuar usando Delphi :) –

Cuestiones relacionadas