PDA

Ver la Versión Completa : VCl.Net y WinForms?


adcoma
12-04-2005, 21:56:59
Hola!

Soy nuevo en esto de .NET mas no en Delphi, pero me encuentro ahora al instalar el D2005 que se pueden crear apliaciones para .NET del tipo VCL y Windows Forms

Eso realmente me confunde, alguien me podria explicar cual es la mejor opcion o a que se refieren ambas cosas.

Mil gracias de antemano y espero no molestar con preguntas tan basicas quiza para muchos de ustedes

dec
13-04-2005, 04:16:01
Según cierto libro de Francisco Charte (1) de título Delphi 8 .NET, y, resumido muy mucho aquí y ahora en lo que toca a lo que te refieres, la VCL .NET ha sido creada por Borland para que los desarrolladores de Delphi limen un poco las asperezas de cambiar de plataforma: de Win32 a la plataforma .NET.

La VCL .NET mantiene nombres de clases, funciones, procedimientos, etc. (con algunas limitaciones), de tal forma que alguien habituado a trabajar con la VCL anterior no tenga mayores problemas en comenzar a crear aplicaciones para la plataforma .NET de Microsoft.

El trabajo de la VCL .NET se basa ya en la plataforma .NET, pero, me temo que usando no pocos "métodos de interoperabilidad", esto es, haciendo uso del API Win32, probablemente porque no podía ser de otra forma en ciertos casos.

La plataforma .NET incluye una colección (entre otras cosas, claro está, no soy yo el más indicado para hablar de esto, pero, ya metido...) inmensa de clases listas para usarse desde cualquier lenguaje capaz de trabajar con ellas, como Delphi .NET.

Si basas tus aplicaciones en "Windows Forms" estarás haciendo uso, por decirlo mal pero pronto, de forma plena de la plataforma .NET, de sus clases, sin necesidad de hacer uso de la VCL .NET.

Puedes incluso mezclar ambas "formas", esto es, puedes, en una misma aplicación, hacer uso de clases, métodos, etc., de la VCL .NET y también de la propia plataforma .NET (esto seguramente sea así en todo caso, puesto que los tipos de datos básicos se toman ya de los definidos para la plataforma .NET, si no estoy equivocado).

Puedes, por ejemplo, mostrar un mensaje al usuario haciendo uso de "ShowDialog" y/o puedes hacer uso de la clase "MessageBox": personalmente prefiero esta última opción, porque ofrece una riqueza a mi entender muy superior a la primera: aunque acaso no deje de ser una opinión personal.

Resumiendo, porque me parece que me voy metiendo en camisas de once varas que no sé qué tal me quedarán al cabo y seguramente hay aquí quien pueda ayudarte mucho más y mejor que yo.

Según Francisco Charte, la VCL .NET está ahí por el motivo que digo arriba (facilitar en cierto modo la tarea de comenzar a desarrollar para la plataforma .NET) y también para exportar proyectos escritos en Delphi para Win32 a la plataforma .NET de Microsoft. Esto último puede sonar estupendo, pero, siguiendo al mismo autor, no es tan sencillo como pudiera parecer, puesto que habrá proyectos que se exporten sin más, los habrá que se exporten más o menos complicadamente y los habrá muy difíciles de exportar, por no decir imposibles...

Francisco Charte también advierte de la necesidad de conocer las clases que proporciona la plataforma .NET para programar aplicaciones, puesto que son riquísimas en funcionalidad y es básicamente lo que ha de hacerse, si se quieren programar dichas aplicaciones para dicha plataforma. Vamos, un poco como cuando tuviste que aprender, en cierta medida, lo que la VCL de Delphi para Win32 podía ofrecerte.

Terminando... acaso añadir que si haces uso de la VCL .NET en tus aplicaciones tendrás que distribuir junto a tus ejecutables, o bien en estos mismos, ciertos ensamblados, que serán los que contengan dicha VCL .NET, o parte de ella al menos, puesto que no puedes esperar que en todos los ordenadores existan dichos ensamblados.

Sin embargo, esto no sucederá al hacer uso de la FCL o BCL (Fundamental Class Library o Base Class Library) de la plataforma .NET, puesto que en cualquier ordenador en que esté instalado aunque sea el "Redistributable package" de la plataforma .NET, en su versión correspondiente, tus aplicaciones contarán ya con los ensamblados necesarios para funcionar correctamente.

No sé si he conseguido hacerme entender lo suficiente... pido disculpas si no ha sido así. En cualquier caso, recomendar la lectura del libro susomentado de Francisco Charte: Delphi 8 .NET, puesto que en el mismo se explaya el autor sobre la conveniencia de usar la VCL .NET, la FCL o BCL, así como sobre otros temas de seguro interés para el usuario de Delphi en general y de Delphi .NET en particular.

(1) Torre de Babel (http://www.fcharte.com)

Nota: En el SDK de la plataforma .NET encontrarás información muy amplia sobre los espacios de nombres, las clases, miembros, métodos, etc., que pueden usarse. Dicho SDK se encuentra disponible en español, lo que ayuda no poco a las personas que como yo con el inglés estamos limitados en no pocos aspectos.

Respecto de la VCL .NET, aunque en inglés, supongo que encontrarás información suficiente en la ayuda del propio Delphi 2005, en algún sitio es de suponer que se explique mucho mejor de lo has podido leerme el porqué y para qué de la VCL .NET.

adcoma
13-04-2005, 16:33:28
Dec te doy las gracias, me ha quedado mas que claro el punto!!!!

Te has dado a explicar de forma estupenda.

Saludos