Ultimas noticias sobre Delphi Prism

abril 24, 2010 en Delphi Prism, Entrada Diario, Noticias, Presentaciones, Videos

Ayer pude leer una de las entradas del Blog de Marco Cantú, en la que se hacía eco de las últimas novedades sobre Delphi Prism, y especulaba siguiendo la lectura original del articulo de SDTimes Delphi Prism IDE retooled for Visual Studio 2010, la próxima salida de la nueva versión del entorno. Se habla de la fecha del 15 de Mayo como fecha de salida del próximo release. Pero esto es algo que no está confirmado,  ya que Marco Cantú no afirma, sino que se limita a dejar sobre la mesa la fecha propuesta por el articulo de SDTimes sin poner ni quitar letra alguna. :-)

http://blog.marcocantu.com/blog/delphi_prism_2011_video_article.html

Y relacionado con la próxima aparición de la nueva release, con fecha 19 de Abril nos dejaba David Intersimone un pequeño video en youtube, con la presentación de las nuevas características y funcionalidades que iban a ser incorporadas, además de algunas otras ya conocidas o comentadas. Recordad que hace unos días hacíamos referencia en estas mismas entradas a otro video, sobre las ultimas novedades de Visual Studio (*). Algunas de estas novedades comentadas para visual studio ya son recogidas por Delphi Prism (segun lo visto en el video de David I)

Habrá que estar al tanto de todas estas novedades, que van consolidando la idea de que Delphi Prism va a tener una continuidad y no va a quedarse al margen de los avances y mejoras en Visual Studio, que imagino pueda ser una de las cosas que preocupen a los desarrolladores.

(*) Trends and future directions in programming languages

http://channel9.msdn.com/posts/adebruyn/TechDays-2010-Developer-Keynote-by-Anders-Hejlsberg/Default.aspx

La gran división…

abril 14, 2010 en Código, Delphi, Enlace interesante, Entrada Diario, framework, Taller práctico

Suena bien el título… :-)  y aunque a primera vista, podamos pensar que la entrada va a tratar del paradigma clásico “Divide y vencerás”, en este caso concreto, se nos vuelve a hablar de un tema recurrente y ya conocido en el blog, como lo es la separación del interfaz del usuario de las reglas de negocio. Como el autor de la entrada nos dice, Cobus Kruger, justo al empezar, en las primeras lineas:

One of the most important principles in building complex software systems, is detaching  the business logic from the screens that allow users to view and edit information.

Esta introducción pertenece al blog Source Code Adventures y concretamente al artículo:

Inducing The Great Divide

escrito en Noviembre del 2009. A él nos vamos a referir en esta ocasión.

Además, por la cantidad de comentarios y lo leído en otra entrada posterior de su blog, me dió la impresión de que tuvo mayor repercusión de lo que él hubiera esperado, cosa que no era de extrañar, la verdad, porque su contenido es bastante sugerente, como veremos más adelante, ya que se apoya en la RTTI (Informacion de tipos) para vincular los controles de edición con la capa que soporta las reglas de negocio.

Pero realmente, la idea de citar el artículo y profundizar en su contenido, ha sido bastante accidental, como casi todo lo que nos ocurre en el blog. ;-)   Uno se sienta a media tarde a buscar información sobre el último update, con la sana idea de compartirlo con vosotros, y tras una búsqueda inutil en el sitio de Embarcadero (yo esperaba encontrar mas información sobre las referencias 274215, 275149 y 275253 citadas como identificadores en el readme del Hotfix que publica Tim DelChiaro) caí como hoja del arbol, otoñal, hasta la entrada ID: 27468, MvFramework and Sample, escrita por Leonardo M. Ramé en el CodeCentralde Embarcadero. Me equivoqué… jajaja pulsando sobre CodeCentral en lugar de Quality Central… por eso de que los dos acaban en Central… :-D

Y de igual forma, fue también casual que diera un problema la descarga del código fuente… Y como sabueso, al ver una referencia citando el artículo motivo de estas lineas, decidí saciar la curiosidad y ver que contenía “eso” que aparentemente hablaba de frameworks. Pensaba para mi… ¡hombre! ¡si está publicado en Embarcadero posiblemente sea porque aporte algo que pueda ser de interés!  :-)   y con ese espiritú proseguí la cacería intelectual.

El siguiente paso vendría a ser inspeccionar el blog http://leonardorame.blogspot.com/ de Leonardo M. Ramé, de Argentina. Y ya para finalizar esa sesión, aterrizaba vía google sobre la entrada original que nos habla de “la gran división”, entrada que había servido como base para la respectiva de Leonardo. Por cierto, permitidme antes de proseguir en esa linea, que os recomiende la lectura del blog deLeonardo, ya que he visto bastante contenido que tiene muy buena pinta. Me lo apunto en la agenda para volver a él más adelante…

Seguimos y nos centramos en lo que hoy nos ocupa:

Inducing The Great Divide (by Cobus Kruger)

Como otros muchos artículos que hemos compartido, éste también está en inglés y quizás por eso el remarcarlo, porque fácilmente se nos podría pasar inadvertido y resulta muy interesante  el tratamiento que le da al uso de la información de tipos, vinculando a través del nombre del control la propiedad adecuada a la que va a estar enlazado. El ejemplo que pone Cobus es bastante claro. Aunque, como todos los ejemplos, es eso… un ejemplo, una sugerencia, un punto de partida.

La única pega, es que este tipo de ejemplos, tal y como está presentado, suelen desanimar a muchos compañeros que están empezando, pues no suelen incluir el código fuente, sino que uno va extrayendo de los bloques leídos y montando en el editor de código lo comentado en la entrada. Así que no tenéis que desanimaros.

Venga, ya que no lo disponemos traducido, os ayudo un poco en esa tarea, porque una vez que lo veais en funcionamiento vais a comprender mejor el sentido de un uso inteligente de la información de tipos:

Abrid un nuevo proyecto. Cambiad el tamaño del formulario para que quede similar al que muestra Cobus en su artículo.

image

Como se puede ver, tenéis que añadir 2 componentes de la clase TEdit, 1 TComboBox, 3 TLabel, uno para cada uno de los editores de texto y finalmente, 3 botones, para lo que os puede servir 3 componentes de la clase TButton.  Cambiar los captions de las etiquetas y de los botones con un texto similar al que se ve en la imagen.

Luego nos propone añadir una instancia de TPerson. Lo vamos a hacer: pero tenemos que declarar previamente la clase y para eso, podéis poner en la sección de tipos del formulario entre la palabra reservada type y  el encababezamiento de la declaración del formulario, el interfaz de dicha clase.  Haced un copia y pega del bloque que nos propone (el bloque de código en el que figura la declaración de la clase TPerson y que contiene los campos Nombre, Edad y Ocupacion, con sus respectivas propiedades de lectura/escritura). Finalmente, podéis añadir las variable que nos va a servir para instanciar la clase, en la sección privada del formulario.

Otro requisito es que el nombre de los dos componentes TEdit (la propiedad Name) y del componente TComboBox tiene que ser asignado con el mismo nombre que hemos declarado las propiedades publicadas en la clase TPerson. Cobus permite varias alternativas ya prefijadas (o coincidir el nombre, o coincidir el nombre + ‘sufijo’ o finalmente coincidir un prefijo y el nombre). Mi consejo es que para no liaros con el ejemplo, tengan el mismo nombre.

Ahora añadid una unidad al proyecto para incluir la declaración de tipos de la clase estrella: TObjectBinding.

De nuevo copiamos y pegamos en su interior los distintos bloques que componen tanto la interfaz como la implementación.

Tenemos que incluir en la sección de uses (previa al tipo) la dependencia de otras unidades para que resuelva los tipos externos que contiene el código y que estan definidos lógicamente en otras unidades.

uses Rtti, TypInfo, Generics.Collections, Controls, StdCtrls, SysUtils;

Y ya para finalizar, volvemos a la unidad del formulario y nos resta seguir sus recomendaciones al implementar los botones. Yo he escrito unas lineas de código siguiendo esas indicaciones:

procedure TFormularioPersona.bnCargarClick(Sender: TObject);
begin
  Binding.Load;
end;

procedure TFormularioPersona.bnLimpiarClick(Sender: TObject);
begin
  LimpiarFormulario;
end;

procedure TFormularioPersona.bnSalvarClick(Sender: TObject);
begin
 Binding.Save;
end;

procedure TFormularioPersona.FormCreate(Sender: TObject);
begin
  Person:= TPerson.Create;
  PreparamosDatosArticulo;
  Binding:= TObjectBinding.Create(Self, Person);
end;

procedure TFormularioPersona.FormDestroy(Sender: TObject);
begin
  FreeAndNIl(Person);
  FreeAndNil(Binding);
end;

procedure TFormularioPersona.LimpiarFormulario;
begin
  Name.Clear;
  Age.Clear;
  Occupation.Text:= '';
  Occupation.ItemIndex:= -1
end;

procedure TFormularioPersona.PreparamosDatosArticulo;
begin
  with Occupation.Items do begin
     Add('Programador');
     Add('Ama de casa');
     Add('Cocinero');
  end;

  with Person do begin
    Name:= 'Pedro';
    Age:= 34;
    Occupation:= 'Cocinero';
  end;

end;

end.

Y ya podéis compilar el proyecto y ejecutar la aplicación. ¡voila!

Si habeis obtenido exito al ejecutar la aplicación y habéis jugado con los botones, cargando y salvando los valores existentes, o sobrescribiendolos, estaréis de acuerdo conmigo en que el resultado final es un formulario bastante “limpio” de código y versatil, con una ruptura clara entre el interfaz del usuario y la capa lógica representada por la instancia de TPerson.

Es más, se produce la paradoja de que cuantos mas controles existan, mas claro será nuestro código respecto a otras unidades diseñadas mediante asignaciones directas entre los valores guardados por el controles y los campos que vinculados del objeto. Ya que toda la lógica de la relación de vínculos creados se almacena de forma trasparente por quien sabe realmente de ello: la clase TObjectBinding (apoyandose en la información de tipos)

Estoy completamente seguro, que tras la lectura, muchos compañeros habrán visto útiles algunos escenarios en los que puede aplicarse. Pero lo dicho: es un punto de partida, una sugerencia. El código es muy interesante y sobretodo didáctico.

Me gustaria que opinarais sobre la entrada de Cobus ¿que os parece?

Se que muchas de las personas que comienzan sus primeros pasos en el entorno, van a agradecer ese tipo de indicaciones, los comentarios, conocer por otro compañero la oportunidad de hacerlo o de no hacerlo. Así que tenéis la oportunidad de mojaros…  ;-)

¿Alguien opina?

O:-)

RAD Studio 2010 Hotfix 2

abril 13, 2010 en Entrada Diario, hotfix, Noticias, Noticias Delphi, updates

Aunque ya es algo conocido por bastantes compañeros, he querido incluirlo en una entrada para que quede guardado y pueda ser consultado por cualquiera mas adelante. Este último update (mas bien podríamos decir que es un pequeño parche) fue publicado por Tim DelChiaro con fecha 9 de Abril del 2010, quedando disponible para la descarga para los usuarios registrados de Delphi 2010, C++Builder 2010, Embarcadero RAD Studio 2010, y Embarcadero All-Access.

Descarga del Update en Embarcadero

También, escrito por Tim DelChiaro, tenéis a vuestra disposición una página de comentarios e instrucciones de la instalación en Readme (Léeme)

De las 3 correcciones que incluye, una afecta al dialogo de opciones de Delphi, otra a C++ y finalmente la tercera a DataSnap. Podéis ampliar la información accediendo al readme que se incluye.

Failover Server in DataSnap and Delphi 2010

abril 11, 2010 en Ado Express & DataSnap, Código, Delphi, Enlace interesante, Entrada Diario

Recientemente ha editado un pequeño video, Andreano Lanusse, con el título que encabeza la entrada, y en donde se da continuidad a los distintos artículos que ha publicado sobre DataSnap, aunque en este caso no ya referidos a las novedades y primeros pasos, sino al uso de las características o funcionalidades que pueden ser menos conocidas. En este caso concreto, aborda Andreano la parte que afecta a como dar respuesta desde nuestro servicio a los fallos y se puede ver a modo de ejemplo como redireccionar el cliente ante la caída de uno de los servidores).

Podéis leer el artículo que acompaña el video en:

http://www.andreanolanusse.com/blogen/implementing-failover-and-load-balancing-in-datasnap-2010/

Aunque está en inglés la entrada, posiblemente, Andreano Lanusse añada la traducción, puesto que lo viene haciendo con frecuencia. Os recomiendo que le deis un vistazo y sobretodo que os descarguéis el código fuente que acompaña a la entrada. La descarga la podéis encontrar en:

http://cc.embarcadero.com/Download.aspx?id=27391

No os la perdáis.

Otras entradas relacionadas:

Secreto de tres, secreto no es…

abril 5, 2010 en ¿Sabías que...?, ¿Sabías que...? [Delphi], Delphi, Entrada Diario, Noticias, Noticias Delphi

Si tiene algo el refranero es que encierra en un pensamiento breve y conciso, una gran dosis de sabiduría popular y experiencia… También podemos leer:

Secreto de dos, guardado; de más de dos, en la calle echado.

:-)

¿Qué por qué comento esto?

Bueno, veréis… es lo primero que me vino a la cabeza mientras buscaba en Internet información para añadir a una nueva entrada, tal como ésta que estáis leyendo, y vi que ya existían algunas imágenes de la beta de Delphi 2011 colgadas de la Red. Inicialmente creo que estaban en un servidor asiático. Posteriormente las volví a leer en un servidor ruso.

http://www.tdelphiblog.com/2010/03/delphi-2011-fulcrum.html

Y ayer, sin ir mas lejos, volví a encontrármelas en un foro de brasil

http://www.activedelphi.com.br/forum/viewtopic.php?t=54149&start=0&postdays=0&postorder=asc&highlight=&sid=d9eda1c1da6594eb957e8de1b25aa73f

Asimismo, el que aparecieran en los foros españoles, era cuestión de tiempo:

http://www.clubdelphi.com/foros/showthread.php?t=66678

Esta era uno de los tópicos del foro del Club Delphi.

O en el vecino foro de Lazarus.

http://www.lazarus.freepascal.org/index.php?topic=8823.0

En realidad, no aportan demasiada información. Ni siquiera se sabe a ciencia cierta que las imagenes y los comentarios sean verdaderos 100% pero el sentido común nos puede indicar que no hay ninguna razón para pensar que no lo sean. Por cierto, el enlace original asiático desapareció por arte de magia cuando empezó a escampar la noticia…

Bueno… no hay que sudar demasiado… basta poner “Delphi 2011″ en el Google y navegar con paciencia entre sus resultados… Haced vosotros mismos la prueba.

Yo creo que todo esto no ayuda demasiado al equipo de desarrollo de Delphi. Y tampoco, creo yo que sea demasiado bueno que salga a la luz cualquier información indiscriminada antes de hora, con independencia de que pueda ser inofensiva o poco relevante, o al menos nos lo parezca así a nosotros. Entre otras cosas porque siempre va a existir alguien que va a querer llegar un poco mas allá… y se empieza colgando una imagen… y se acaba subiendo en algún servidor perdido del mundo una copia de la beta para que sea descargada por fulanito o menganito, amigos íntimos muy discretos, que a su vez conocen a otro fulanito y a otro menganito, y así hasta que finalmente, en algún punto de la cadena, se quiebra la confianza…

Cada cosa tiene su tiempo, su momento y su oportunidad. Si dijera que pienso otra cosa, mentiría, y creo que  este tipo de noticias no son demasiado positivas. Al igual que otras veces he sido crítico con la actitud de Borland, Codegear o Embarcadero, intento ser justo al valorarlo, y encuentro bastante irresponsable la actitud de la persona o personas que están liberando esta información.

Fuera de lo anecdótico de la noticia (todo el mundo resaltaba su sorpresa de que pudiera verse en el proyecto alguna plataforma distinta de win32), acababa mis pasos como casi siempre hago en el Twitter para rastrear algo que os pudiera ser de interés. Y sí. Creo que he podido encontrar un par de enlaces mucho mas interesantes en mi opinión que la fuga de información incontrolada… :-)

Dos puntos a través del Twitter y otro a través de la suscripción a los canales de video de Embarcadero. Vamos a compartirlos:

El primero de ellos, fue a través de uno de los enlaces que me llevó a un encuentro tecnológico en Bélgica, Trends and future directions in programming languages, celebrado el 31 de Marzo y dirigido por Anders Hejlsberg.

http://channel9.msdn.com/posts/adebruyn/TechDays-2010-Developer-Keynote-by-Anders-Hejlsberg/Default.aspx

El contenido del video es muy interesante y os puede ayudar a entender hacia donde vamos. O digamoslo de otro modo, hacia donde nos quiere llevar Microsoft, que finalmente arrastrará a todos en esa dirección, dicho esto sin ningún matiz peñorativo. Para bien o para mal, parece claro que Microsoft, marcará la evolución de las herramientas de programación y de los lenguajes.

TechDays 2010 Keynote by Anders Hejlsberg: Trends and future directions in programming languages

La conferencia tuvo una duración de algo mas de una hora y quizás los apartados que mas me llamaron la atención son los que se abordan al final de la misma: la programación funcional y la integración del aprovechamiento de los procesos en paralelo.

El segundo punto a comentar sí tiene que ver con Delphi de una forma mas directa. También obtenido a través del Twitter, encontraba el enlace hacia el primer número de una revista holandesa sobre Delphi. El enlace es el siguiente:

http://www.sdn.nl/Delphi/tabid/60/Default.aspx

Y como podéis ver, respaldada por la imagen de Bob Swart, que fue quien facilitó a través del twitter el enlace de descarga

http://www.sdn.nl/LinkClick.aspx?fileticket=sDhRdBRYHis%3d&tabid=58

Pocas páginas y algunas en holandés… :-)    al menos en el primer número. No dudo que el contenido se irá ampliando en lo sucesivo, por lo que interesa conservar el enlace para ir evaluando el interés de su contenido. En principio, el artículo de Cary Jensen, que abre la edición “Creating Editor Key Bindings”, nos introduce en un tema no demasiado conocido por buena parte de programadores de Delphi, mas centrados en el desarrollo de aplicaciones que en complementar el entorno de desarrollo ampliando la funcionalidad del mismo a través del api Open Tools Api (OTA). Esta colección de clases e interfaces nos permiten extender el IDE de Delphi.

Conservaremos el enlace dentro de publicaciones online que hemos abierto en la cabecera de esta página.

Finalmente, el tercer punto me llegó a traves del correo y de la suscripción a los videos de Embarcadero en YouTube

http://www.youtube.com/user/EmbarcaderoTechNet

Durante esta ultima semana se han incluido estos dos videos que figuran mas abajo, de los cuales, el primero puede ser de interés para aquellos compañeros que necesiten conocer de forma rápida, las distintas tecnologías de acceso a datos disponibles desde Delphi, ya que en el video se hace un repaso indicando el estado actual, dado que algunas ya están fuera de uso o no se recomienda su uso. Por otro lado, el video de dbExpress nos muestra como hacer la conexión y que componentes se usan y como se enlazan.

Ambos vídeos han sido editado por Michael Rozlog, Product Manager de Rad Studio.


Database Access Methods in Delphi

http://www.youtube.com/watch?v=_Ayq7cyVI9o


dbExpress Database Access Components in Delphi

http://www.youtube.com/watch?v=dNWerq-Qebo

Nada mas por hoy.

Que paséis un buen día.