Desconto especial para os componentes RealThinClient

RTC Logo

Atenção: Desconto para quem comprar os componentes RealThinClient antes da publicação do novo website.

Para ter direito ao desconto, entre na página da RealThinClient no Facebook  e clique na publicação da promoção para reividincar o desconto.

Get a special discount on a RTC License by ordering before our new Webpages go Live!

Oferta RTC

Esta é a imagem da publicação, para reivindicar o desconto, você deve entrar na página da RealThinClient no Facebook.

Evento – Perguntas e Respostas sobre os componentes RealThinClient

RTC Logo

Próxima sexta-feira (22 de março de 2013), a partir das 14:00h, horário de Brasília (17:00 UTC), estaremos realizando uma sessão de Perguntas e Respostas sobre os componentes RealThinClient no Skype para compartilhar algumas idéias sobre nossos planos para o futuro.

Se você está interessado em se juntar a nós, envie seus dados de contato do Skype para o nosso e-mail “General (non-technical) Questions”, que você pode encontrar na nossa página de Contato.

Estaremos dirigindo o evento em Inglês, Alemão, Português e Espanhol, eu estarei acompanhando os interessados que queiram acompanhar o evento em Português.

Usando RealThinClient e RTTI para enviar Streams

Acabei de publicar mais um artigo sobre o RealThinClient no blog oficial

RTC RTTI

Este artigo mostra como criar uma aplicação servidora e cliente com os componentes RealThinClient, para enviar e receber objetos e listas de objetos. Para tal os objetos são convertidos para Stream usando a nova RTTI e Custom Attributes.

O programa exemplo é bem detalhado, as units compartilhadas entre servidor e cliente também estão num projeto DPK, e são utilizadas como referencia para outro projeto de testes unitários com DUnit que está incluído.

Os anexos no fim do artigo são:

  • Grupo de projetos com os exemplos
  • Download do artigo no formato PDF

Nos próximos dias estarei publicando outros artigos baseados no mesmo exemplo, explicando com mais detalhes as técnicas usadas.

Wizard de projetos DUnit não encontrado no Delphi XE3

Hoje depois de terminar de escrever um programa demostranção para meu último artigo sobre os componentes RTC SDK, eu queria criar um projeto de testes com DUnit, mas não encontrei o Wizard Unit Test no menu “File >> New >> Other”.

Então procurei no Registro do Windows se o pacote DUnit  (unittestide170.bpl) estava declarado em HKCU\Software\Embarcadero\BDS\10.0\Known IDE Packages\Delphi, e não estava, embora estivesse em HKCU\Software\Embarcadero\BDS\10.0\Known IDE Packages\CBuilder, somente disponível para C++ Builder.

Para encurtar a história, eu corrigi isto criando uma entrada em HKCU\Software\Embarcadero\BDS\10.0\Known IDE Packages\Delphi

  • Nome = $(BDS)\Bin\unittestide170.bpl
  • Valor = DUnit

Delphi DUnit Registry

Não sei o que aconteceu durante a instalação, mas depois de reiniciar a IDE do XE3 eu pude criar meu projeto de testes.

Delphi DUnit New Project

Read the English version of this post
DUnit project wizard missing in Delphi XE3

Instalar os componentes RTC SDK em versões diferentes do Delphi

O Problema

Diferentes versões do Delphi produzem diferentes versões de arquivos BPL, DCP, DCU e EXE. Não é possível compilar com o Delphi XE2 e utilizar os arquivos gerados no Delphi 2010 ou qualquer outra versão. Por isto cada projeto deve ter seu próprio Output Path. Desta forma se você adicionar o diretório dos arquivos fontes ao Library Path do Delphi, os arquivos gerados pelo compilador estarão em um diretório específico do projeto evitando conflito de versão de arquivos com outros projetos.

Frequentemente você pode encontrar conflito entre as versões dos arquivos BPL e DCP que devem ser carregados pela IDE, localizados através pelo Windows como qualquer DLL. Por exemplo, Delphi XE3 precisa do pacote rtcSDK.bpl, mas o Windows encontra primeiro a versão compilada para o Delphi 7 que foi instalada antes, e que é incompatível. Você pode usar a propriedade “LIB Sufix” no projeto para evitar estes conflitos.

Este artigo vai guiar através dos passos para instalar o RTC SDK em diferentes versões do Delphi ao mesmo tempo.

  1. Output Path
  2. Abrir o grupo de projetos dos componentes RTC SDK
  3. Unit output directory
  4. LIB Sufix
  5. Library Path.
  6. Browsing Path
  7. Instalar em outras versão do Delphi

Continuar lendo

RealThinClient Logo Contest

RTC Logo ContestAtenção Artistas e Designers!!!!
Há um concurso para criar um logotipo para a RealThinClient acontecendo, use sua criatividade para ganhar alguns Euros.

Entre na página do concurso e veja os logotipos enviados e os comentários sobre como eles devem ser feitos.

RealThinClient is looking for a Logo redesign. The contest has just started, but some very interesting designs have already been submitted. Which logo(s) do you like?
http://99designs.de/logo-design/contests/realthinclient-rtc-needs-logo-198461

RealThinClient

RTCA partir de hoje vou falar sobre os componentes RealThinClient que estou trabalhando, criando demos e documentação.

Primeiro uma apresentação rápida para quem ainda não conhece, RealThinClient é composto por 2 pacotes de componentes Delphi: “RTC SDK” e “RTC Portal”

RTC SDK

Componentes HTTP e HTTPS para criar:

  • Servidores
    • ISAPI
    • Autônomo
  • Clientes
  • Roteadores
  • Proxy
  • Balanceamento de Carga

RTC Portal

Componentes e Exemplos para solução completa de suporte remoto a clientes Windows, fornecendo as funções prontas para uso:

  • Controlar Desktop Remoto
  • Explorar Arquivos
  • Chat Multi Usuários

O RTC Portal utiliza o RTC SDK como base.

Hoje vou falar um pouco mais sobre o RTC SDK.

Continuar lendo

Windows 8 – Menu de contexto do Explorer e operações com o Shell são muito lentas

Estou usando o Windows 8 há uma semana e as operações padrão como um click direito do mouse para selecionar “Abrir com…“, copiar ou excluir arquivos demoram muito para iniciar. Hoje pesquisei um pouco e vi muita gente reclamando desta lentidão desde o Windows 7, e a solução que encontrei nos posts do MSDN foi:

A solução para a lentidão do Shell no Windows 7 e Windows 8 é desativar o “Windows Search”

E realmente funciona, após desativar o Windows Search estas operações ficaram instantâneas.

No Windows XP eu sempre desativei o Windows Search, mas notei que alguns programas utilizavam este recurso e ficavam limitados, quando migrei para Windows 7 passei a manter ativado por que não senti nenhuma perda de performance, mas no Windows 8 é impossível trabalhar com o Windows Search ativado.

As buscas baseadas no conteúdo de um arquivo que preciso são apenas de arquivos texto, para isto eu uso o “Grep”, em outros arquivos uso apenas a busca por nomes, completo ou parcial com “*”, então a melhor ferramenta que encontrei para esta tarefa é o “Everything Search” do qual eu já falei aqui

Como desativar o Windows Search

  • Para desativar o Windows Seach, abra o “Menu Iniciar*” >> “Painel de Controle”.
  • No canto superior direito altere “Exibir por: Categoria” para “Exibir por: Ícones grandes” ou  ”Exibir por: Ícones pequenos“.
  • Procure por “Ferramentas Administrativas” >> “Serviços” e com o clique duplo do mouse abra a janela de Serviços.
  • Procure o item “Windows Search”, selecione o item e tecle “ENTER” ou duplo clique com o Mouse.

Na janela de propriedades do Windows Search:

  1. Altere o Tipo de Inicialização para “Desativado
  2. Clique no botão “Parar”,
  3. E finalmente clique no botão “OK

Clique na imagem abaixo para ver as instruções marcadas em vermelho
Desativar Windows Search

Atenção: “*Menu Iniciar” somente até o Windows 7.

Script para baixar atualizações de repositórios Subversion, Mercurial e Git

Repository Update

Repository Update

Eu mantenho cópia local dos projetos Open Source que me interessam, e toda vez que precisava usá-los tinha de fazer atualização manual usando o “Tortoise” do repositório correspondente.

Para evitar o trabalho manual resolvi escrever um script para automatizar a tarefa.

Eu queria um script que pude-se varrer todas as pastas e subpastas, sem a necessidade de eu ter de atuar uma lista a cada novo repositório,  assim surgiu o repository_update.bat.
Meus projetos ficam na seguinte estrutura:

C:\Documents\Projects\[Components, Libraries, Frameworks]

O script fica em:

C:\Documents\Projects\repository_update.bat

Basta executa-lo, e ele varre todos os subdiretórios e atualiza a cópia local de cada projeto.

Para que o script funcione corretamente é necessário verificar algumas configurações que estão na sessão ENVIRONMENT:

:ENVIRONMENT
 set UPDATE_HG=1
 set UPDATE_GIT=1
 set UPDATE_SVN=1

 set HG_CMD="C:\Program Files\TortoiseHg\hg.exe"
 set GIT_CMD="C:\Program Files (x86)\Git\cmd\git.exe"
 set SVN_CMD="C:\Program Files\SlikSvn\bin\svn.exe"
 set SVN_ASYNC_CMD=C:"\Program Files"\TortoiseSVN\bin\TortoiseProc.exe
 set HG_PARAMS=pull -u
 set GIT_PARAMS=pull --all -u
 set SVN_PARAMS=update
 set SVN_ASYNC_PARAMS=/command:update /path:%%G 

 :: SVN_ASYNC=1 call GUI async, default 0
 set SVN_ASYNC=0

 :: English = EN_US
 :: Portugues Brasil = PT_BR
 set SCRIPT_LANGUAGE=PT_BR
  • As 3 primeiras linhas ativam=1 ou desativam=0 o suporte aos respectivos repositórios.
  • Depois o path dos comandos a serem executados. Note o último item deste grupo, é a versão GUI do TortoiseSVN, que só é útil se o parâmetro SVN_ASYNC for igual a 1.
  • Os parâmetros estão separados dos comandos para evitar que sejam alterados acidentalmente.
  • SVN_ASYNC, executa o TortoiseSVN gráfico de forma assíncrona, abrindo uma janela para cada repositório Subversion encontrado.
  • E por último a linguagem das mensagens.
Repository Update done!

Repository Update done!

 

Download

Você pode adicionar o script repository_update.bat no agendador de tarefas do Windows para que ele seja executado diariamente, mantendo todos os seus projetos sempre atualizados.

DHibernate – Features Explained Parte II

Leia também:

  • DHibernate – Features Explained Parte I

ITransaction

Opcional. Utilizada para gerenciar transações do banco de dados. Representa um objeto de vida curta para controlar unidades de trabalho atômicas.

Qualquer comando enviado para o banco de dados é controlado por uma transação, o DHibernate criará uma transação automaticamente sempre que necessário.  Uma ISession pode conter várias ITransaction.

Se a transação for criada manualmente, deve ser finalizada com Commit ou RollBack.

IQuery

Interface utilizada para executar queries no banco de dados e controlar como a query é executada.

Se precisar limitar os resultados de uma consulta, como o número máximo de linhas ou especificar a partir de que linha deseja recuperar, é necessário obter uma instancia de IQuery.

Utilize ISession.CreateQuery para obter uma nova IQuery.

ICriteria

Usada para criar dinamicamente queries orientadas a objetos e executá-las.

ICriteria representa uma query para uma classe persistente em particular.