Skip to content

JBuilder Day em português - duas edições - 21 e 28 de agosto

Nos próximos dias 21 e 28 a CodeGear promoverá 2 edições do JBuilder, onde você terá um dia inteiro para assistir várias apresentações sobre desenvolvimento Java através de EJB, hibernate, Struts, AppFuse e outras tecnologias e frameworks.

Mais informações clique aqui

Tiburon Preview online en español - Viernes, 1º de agosto

Comunidad Delphi,

Viernes, 1º de agosto, a las 9am (tiempo de California – PDT), presentaremos algunas de las novedades de Tiburon, la próxima versión de Delphi  y  C++ Builder.

Para verificar el horario correspondiente a su país, accese a la liga: http://www.timeanddate.com/worldclock/

El evento será en línea y gratuito, con duración aproximada de 30 minutos.

Los participantes tendrán la oportunidad de conocer algunas de las novedades de  la próxima versión de Delphi y C++ Builder:

  • Nuevos componentes de la VCL
  • Nuevos recursos en el lenguaje
  • Nuevo DataSnap
  • Y mucho más.

Se pueden registrar  a través del sitio: http://latam.codegear.com/es/tiburonpreview

Durante la presentación  se harán algunas pruebas para evaluar  la capacidad y calidad de audio y video  de la  solución para eventos en línea – Live Meeting. Contamos con el apoyo de toda la comunidad Delphi.

La presentación será en español y contará con  la presencia de nuestro ilustre Evangelista Chef DavidI.

No  te lo  pierdas  !!!!

Nos vemos en el evento

Tiburon Preview - online próxima sexta - 1 de agosto

Comunidade Delphi,

Na próxima sexta, 1º de agosto, às 11h (horário de Brasília), apresentaremos algumas das novidades do Tiburon, a próxima versão do Delphi e C++ Builder.

O evento será online, com duração de 30 minutos. Os participantes terão a oportunidade de conhecer algumas das novidades da próxima versão do Delphi:

  • Novos componentes da VCL
  • Novos recursos da linguagem
  • Novo DataSnap
  • E muito mais

As inscrições podem ser feitas pelo site: http://latam.codegear.com/br/tiburonpreview.  

Durante a apresentação serão efetuados alguns testes para avaliar a capacidade e qualidade de áudio e vídeo da solução para eventos online – Live Meeting. Contamos com o apoio de toda a comunidade Delphi.

A apresentação será em português e contará com a presença de nosso ilustre Evangelista Chefe DavidI.

Não perca !!!!

Nos vemos no evento.

Tiburon - Building strings with TStringBuilder

The RTL now includes a class called TStringBuilder.  Its purpose is revealed in its name – it is a class designed to “build up” strings.  TStringBuilder contains any number of overloaded functions for adding, replacing, and inserting content into a given string.

Here an example:

String Builder example

 The first message, 2009andC++ together, ops :)

sbandtogether_728.jpg

Replacing  ‘and’ to ‘ and ‘, line 50

sbmessageok_730.jpg

Tiburon - Construindo strings com TStringBuilder

A RTL traz uma nova classe chamada TStringBuilder. seu propósito é revelado em seu nome – é um classe que foi criada para “construir” strings. TStringBuilder tem várias funções sobrecarregadas (overload) para adicionar, editar e inserir conteúdo em uma determinada string.

Abaixo um exemplo:

String Builder example

A primeira mensagem, 2009andC++ together, ops :)

sbandtogether_728.jpg

Trocando ‘and’ por ‘ and ‘, linha 50

sbmessageok_730.jpg

Tiburon - Construyendo strings con TStringBuilder

La RTL inclue una nueva classe llamada TStringBuilder. su proposito es revelado en su nombre – es una classe diseñada para “construir” strings. TStringBuilder tiene varias funciones sobrecargadas para añadir, cambiar e insertar contenido en una determinada string.

Abajo un ejemplo:

String Builder example

El primer mensaje, 2009andC++ together, ops :)

sbandtogether_728.jpg

Cambiando ‘and’ para ‘ and ‘, línea 50

sbmessageok_730.jpg

Tiburon - mais novidades sobre DataSnap

DataSnap é uma das grandes novidades no Tiburon. Tenho certeza que vocês ficaram surpresos. Steve Shaughnessy começou a escrever sobre o novo DataSnap.

O novo DataSnap é completamente independente de COM/DCOM com a grande vantagem de utilizar o DBX Framework. Basicamente você irá transferir informações entre cliente e servidor, usando os tipos de dados do DBX Framework data types, também executar métodos através de DataSet e manipular retorno como DBXReader e ClientDataSet.

Criando um servidor

Para criar uma nova aplicação DataSnap, você precisa basicamente de 3 componentes.

  • DSServer - Componente que representa o servidor,  controla as conexões e permite gerenciar atividades no servidor através dos eventos onConnect, onDisconnect e onError.
  • DSTCPServerTransport - Componente reponsável pela transferência de informação entre cliente e servidor, através de uma porta definida em uma propiedade do componente, assim como definir o tamanho do buffer kb.
  • DSServerClass - Registra os métodos disponiveis para o cliente..

Mas como disponibilizar os métodos servidores para o cliente DataSnap?

Todos os métodos publicos descendentes de TPersistence podem ser disponibilizados, vale lembrar que a classe deve conter a directiva de compilação {$MethodInfo ON} e ser registrada pelo componente DSServerClass.

Sim, isso funciona com Remote Data Modul.

Abaixo um exemplo, uma classe disponibilziada no meu servidor DataSnap, contém 3 métodos publicos..

DataSnap - Server methods

Lado cliente

Vamos ver agora o lado cliente. Como conectar e executar métodos no servidor?

A conexão a partir do lado cliente é baseada em DBXClient, isso quer dizer que você precisa apenas de um SQLConnection(dbExpress), definir o nome do servidor, porta e DBXClient driver.

Usando DBXClient como driver você irá obter todas as vantagens do DBX Framework, por exemplo: transferir um DBXReader entre client e server de maneira muito fácil.

Existem vários caminhos para executar métodos no servidor, abaixo alguns exemplos usando os métodos da figura 1.

Executando métodos através do componente SqlServerMethod

Um caminho para executar os métodos no seu servidor é usar o novo componente SqlServerMethod, este componente herda de CustomSQLDataSet, isso permite executar métodos servidor usando DataSet, onde os parâmetros de entrada/saída serão representados pela propriedade Params.

DataSnap Client side

Executando métodos através do componente SQLDataSet

Um novo CommandType chamado DataSnap.ServerMethods foi adicionado ao componente SQLDataSet, permitindo executar métodos no servidor, ao retornar um DBXReader você poderá integrar este retorno a um ClientDataSet e assim ter um cursor bi-direcional.

Essa é uma pequena introdução sobre algumas novidades do novo DataSnap. Fique atento ao nosso blog, mais novidades e exemplos sobre DataSnap virão.

Tiburon - more about DataSnap

DataSnap is one of the big features in Tiburon. I’m pretty sure you will be surprised. Steve Shaughnessy started to talk about the new DataSnap.

The new DataSnap is completely independent from COM/DCOM and takes advantage of the DBX Framework. Basically you will transfer information between client and server, using the DBX Framework data types is very easy. So you are be able to execute server methods through the DataSet, and manipulating the returns as DBXReader and ClientDataSet.

Building a Server Side

To build a new DataSnap Server application, you basically need three components.

  • DSServer - Server Component, control the server connection allowing to handle thought the events onConnect, onDisconnect, onError activities on the server.
  • DSTCPServerTransport - Component responsible to transfer the information between client and server thought the port specified as a property. Also you can define the buffer kb size.
  • DSServerClass - Register the server methods to the client.

But, how and what can I expose to the DataSnap Client?

All public methods from any class descendent of TPersistence class could be exposed, since the class contain the compile directive {$MethodInfo ON} and is registered by DSServerClass.

Yes, it works for remote data module.

Below an example, a class exposed in my DataSnap server, contain 3 public methods.

DataSnap - Server methods

Client Side

Let’s talk about the client side. How to connect and execute methods on the server?

The client side connection is based on DBXClient, which means you just need the SQLConnection(dbExpress), define the host name, port and DBXClient driver.

Using DBXClient as the driver you will take advantage of the entire DBX Framework, for example transfer DBXReader between client and server is very easy.

There are many ways to execute the methods exposed on the server, below are some examples using the methods from figure 1.

Executing methods through SqlServerMethod component

One way to execute the methods on the server is using the new SqlServerMethod component, this component inherits from CustomSQLDataSet, which means you will be able to execute server side methods using a DataSet, input/output parameters will be represented by Params property.

DataSnap Client side

 Executing methods through SQLDataSet component

A new CommandType named DataSnap.ServerMethods was added to the SQLDataSet component, which allows you to execute server side methods, returning DBXReader allows you to have bi-directional cursor through the ClientDataSet.

This is a small introduction about things you can do using the new DataSnap. Stay tuned we will bring more details and examples about DataSnap.

Tiburon - Anonymous Methods

In Tiburon you will be able to work with anonymous methods, but what is it?

Anonymous method is a procedure or function that does not have a name associated with it. An anonymous method treats a block of code as an entity that can be assigned to a variable or used as a parameter to a method. In addition, an anonymous method can refer to variables and bind values to the variables in the context in which the method is defined.

Suppose you need to execute part of one code more them once, this code is only necessary in this method, you can define this code as anonymous, look the example below.

Anonymous Example

Simple and shorter the code is that uses anonymous methods. This is ideal if you want to explicitly and simply define these methods and use them immediately without the overhead and effort of creating a class that may never be used anywhere else. The resulting code is easier to understand.

A very important feature of anonymous methods is that they may reference variables that are visible to them where they were defined, these variables can be bound to values and wrapped up with a reference to the anonymous method.

Anonymous example - binding variable

The variable adder contains an anonymous method that binds the value 20 to the variable y referenced in the anonymous method’s code block. This binding persists even if the value goes out of scope.

Tiburón

Estoy seguro de que la comunidad tiene curiosidad por conocer las noticias acerca de Tiburón, la próxima versión de Delphi y C++Builder.

En breve daremos a conocer las novedades, son muchas novedades, entre ellas, nuevos componentes para la VCL, innumerables mejorías en la VCL, otras en el lenguaje y el nuevo DataSnap Framework.

En especial el nuevo DataSnap Framework viene con varias novedades, muchas de las cuales vienen del feedback de la comunidad.  Entre las novedades que les puedo adelantar es que quien utiliza DataSnap, si no quiere ya no pueden depender de COM.

Mantente conectado para los próximos posts.

Close