2011-01-16 26 views
11

Soy Delphiholic desde hace bastante tiempo y últimamente estaba pensando en aprender algo de C# también, sin embargo estoy un poco "temeroso de lo desconocido", he hecho algunas aplicaciones simples como una prueba de manejo para C# y tengo que admitir que me ha gustado, SIN EMBARGO, realmente no me gusta el IDE ... una vez dicho esto, esta es la pregunta que agradecería si otros que siguieron este camino respondieran:Desarrollador de Delphi cambiando a C#

Como desarrollador de Delphi, ¿cuáles son los "principales cambios básicos" del lenguaje Delphi (por básico me refiero a funciones básicas de utilidad, transmisiones, etc.), estoy acostumbrado a agregar "Sistema, Clases, Windows" a no usa "use System.XXX.YYY.ZZZ", estoy tratando de hacer una igualdad parcial en mi mente desde Delphi hasta C# hasta que pueda ver de dónde viene Delphi de la mano con C# y así sucesivamente ...

espero que la pregunta es bastante claro, si no, no dude en jurar y voy a tratar de aclarar tan bien como yo :-)

Respuesta

22

Utilizo mucho para el desarrollo de software.

La velocidad de desarrollo de las aplicaciones de servidor (aplicaciones web, servicios web, servicios de Windows) es mucho más alta en .NET.

La velocidad de desarrollo de las aplicaciones de negocio (interfaz de usuario pura de Windows) es mucho mayor en Delphi.

El desarrollo de aplicaciones sexys es un problema en ambos entornos.

Algunas cosas que debe saber:

  • aprendizaje del marco .NET tomará mucho tiempo: es enorme, pero contiene una gran cantidad de artilugios (algunas joyas están muy bien escondidos).
  • No se pierda al seguir todas las nuevas tendencias a la vez: genéricos, lambda, LINQ, cada uno es bueno, pero captarlos todos a la vez es solo para unos pocos
  • Para aplicaciones web, omita WebForms, pero aprender ASP.NET MVVC (sí, los chicos de Ruby tenían razón después de todo); aprende HTML 5 y JavaScript también.
  • Para aplicaciones de Windows atractivas, aprenda WPF, pero prepárese para una curva de aprendizaje empinada (el diseñador y el marco son radicalmente diferentes)
  • No obtenga una interfaz de usuario demasiado sexy: le costará una cantidad desproporcionada de tiempo mientras los usuarios esperan la funcionalidad
  • Como el mercado ha estado atacando a Delphi desde la versión 1, the market is bashing SilverLight too
  • Saltar WinForms; si necesita algo como WinForms, entonces Delphi es mucho más productivo (más aún si tiene una base de código Delphi VCL existente).
  • WPF es tan fácil de usar como VCL o WinForms (léase: ninguno de los 3 es compatible con subprocesos)
  • No realice reescrituras de sus cosas Delphi en .NET (o para el caso de cualquier otro 1: 1 reescribo desde la plataforma A a la plataforma B): es una pérdida de tiempo.
  • Enlazar y sincronizar son un problema en todos los entornos de desarrollo. El problema no es tanto en lo general (el Concurrent Collections en .NET 4 framework ayuda, como lo hace en el Delphi OmniThreadLibrary), pero para obtener los detalles finales y los casos de excepción correctos es el verdadero dolor.
  • La recolección de basura no significa que no se pierda la memoria: significa que no se filtrará cuando termine la aplicación, pero mientras se ejecuta las fugas son mucho más difíciles de detectar (chico, desearía tener la memoria FastMM monitor para .NET)

--jeroen

+0

+1 Me gusta tu respuesta mucho, gracias, muy sencillo, con respecto a las pérdidas de memoria, generalmente me ocupo de todas las instancias que creo (estoy hablando de desarrollo en Delphi), me gustaría intentar hacer una reescritura 1: 1 porque como dijiste es una pérdida total de tiempo, sin embargo, lo que haría sería usar una base de datos existente con su lógica y acceder a ella con una aplicación C#, encuentro que las páginas ASP son algo lentas, ¿soy yo solo? – ComputerSaysNo

+0

Las páginas ASP clásicas son lentas porque el motor de secuencias de comandos debe interpretar cada página cada vez. Las páginas ASP.NET generalmente son rápidas, ya que las instancias compiladas se guardan en caché. Pueden ser lentos por dos motivos: páginas que no están en la memoria caché (primera compilación, caché expiryre-initialization del proceso de trabajo de ASP.NET, etc.), o un nivel lógico lento (que también es lento en una aplicación WPF) . –

+0

@gbrandt: gracias por la edición; parece que mi palabra-ceguera no era tan mala como a veces lo es :-) –

12

Los "principales" cambios básicos son que de .NET la biblioteca está orientada a objetos. Por ejemplo, en lugar de funciones de cadena globales que se distribuyen entre System, SysUtils, StringUtils, etc., todas son solo métodos estáticos en la clase String. En lugar de las funciones globales de manipulación de rutas, son métodos estáticos en la clase Path o en la clase File. En lugar de TextFile/AssignFile/Rewrite, crea un StreamReader (o simplemente llame al File.ReadAllLines estático o ReadAllText si el archivo es pequeño). La mayoría de las cosas son bastante reconocibles con un poco de hurgar. Faltan algunas cosas; por ejemplo, no existe un método IncludeTrailingPathDelimiter en .NET (aunque generalmente no lo necesita, Path.Combine es mejor).

Voy a en segundo lugar la sugerencia de omitir WinForms. Si ha utilizado el Delphi VCL, WinForms será familiar y, sin embargo, frustrante, enloquecedor, inadecuado. Tomaron las ideas básicas de la VCL pero nunca se molestaron en darle la más mínima profundidad, o incluso usabilidad. No hay equivalente para TAction/TActionList, la propiedad Dock (equivalente a Delphi's Align) le gusta ocultar los controles uno detrás del otro hasta que juegues con "Bring to Front"/"Send to Back", los tooltips requieren un componente adicional en tu formulario. solo hay un puñado de controles, y eso está fuera de mi cabeza. Tómese el tiempo para aprender WPF; tiene toda la riqueza de la VCL y más, y hará que gastes mucho menos tiempo golpeándote la cabeza contra la pared.

El IDE toma un tiempo para acostumbrarse, pero me gusta mucho mejor que Delphi. Tienes que aprender un conjunto diferente de teclas, pero eso no es gran cosa. El IDE es más receptivo (nada de eso se bloquea durante la compilación de "fondo"). También tiene algunos complementos kick-ass: después de haber usado ReSharper por un tiempo, no perderá un poco el Delphi IDE.

+0

muy buena respuesta, gracias, TActionList/taction no es realmente algo que yo uso ..., di un vistazo a WPF y se ve muy prometedor, Creo que escribiré una aplicación web. en C#, en cuanto a las cosas básicas, creo que prácticamente cubriste lo que quería saber (pero quiero ver si los demás tienen algo que agregar), dijiste que el IDE es más malo que el de Delphi, ¿puedes dar un poco más de profundidad? información sobre eso? al principio no he visto nada especial, al contrario, pero no tengo demasiada experiencia (de 2 a 6 horas y luego dejé de BSOD ...) – ComputerSaysNo

Cuestiones relacionadas