C++Builder – Andreano Lanusse | Tecnologia e Desenvolvimento de Software http://www.andreanolanusse.com/pt Andreano Lanusse blog - artigos, tutoriais e vídeos sobre tecnologia, desenvolvimento de software (Delphi XE4, C#, PHP, .NET) e técnicas de programação Tue, 18 Dec 2018 16:05:44 +0000 pt-BR hourly 1 https://wordpress.org/?v=6.5.8 Delphi XE5 Update 2 – muitas correções no FireMonkey para iOS, Android e compilador http://www.andreanolanusse.com/pt/delphi-xe5-update-2-muitas-correcoes-firemonkey-para-ios-android-e-compilador/ http://www.andreanolanusse.com/pt/delphi-xe5-update-2-muitas-correcoes-firemonkey-para-ios-android-e-compilador/#comments Sat, 28 Dec 2013 05:57:21 +0000 http://www.andreanolanusse.com/pt/?p=4358 Mais uma correção para o Delphi XE5 e C++Builder XE5, o Update 2 foi disponibilizado e traz muitas correções para bugs em diversas áreas, principalmente no FireMonkey, seja para Android, iOS, Windows ou Mac. O Update 2 está disponível para os usuários registrados através dos links abaixo. Vale lembrar que é obrigatório desinstalar seu Delphi […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Mais uma correção para o Delphi XE5 e C++Builder XE5, o Update 2 foi disponibilizado e traz muitas correções para bugs em diversas áreas, principalmente no FireMonkey, seja para Android, iOS, Windows ou Mac.

O Update 2 está disponível para os usuários registrados através dos links abaixo. Vale lembrar que é obrigatório desinstalar seu Delphi XE5 para instalar o XE5 Update 2.

Abaixo a lista completa com todos os bugs corrigidos.

Reference No

Summary

Component/s

[Indy] Access Virolation occues on OnValidatePeerCertificate for IPPeerCommon bug[HTTPS,SSL] 3rd Party

120473

[iOS] SOAP fails in iOS when using SSL (“IOHandler value is not valid.”) Blocker

119873

TCameraComponent causes memory leak in Win32 Blocker

115697

TDump command crashes on DLL’s Command Line Tools

112826

TDump.exe shows strange output Command Line Tools

100328

TDump crashes on the x64 shell32.dll Command Line Tools

110887

TDump fails on some ‘foreign’ .dlls Command Line Tools
Delphi XE5 cannot build OSX applications from the command line Compiler
[FM Mac OSX 10.9] Compile error XMLDocument using SDK 10.9 Compiler, Compiler\C++

120686

[Mavericks 10.9] C++Builder XE4 does not support OS X 10.9 Compiler, Compiler\C++, Compiler\C++\BCC
Throwing a exception in virtual member function returning an AnsiString causes an AV and an abend under certain circumstances, in 32-bit C++ application Compiler, Compiler\C++, Compiler\C++\BCC, Compiler\C++\BCC\Back End

120476

[iOS ARM][Android] E2581 Backend error: invalid linkage type for global declaration Compiler, Compiler\Delphi
[dcc(ios/a)arm] Backend Error compiling constructor for generic classes Compiler, Compiler\Delphi

118897

method overload resolution fails when passing @ parameter to overloaded methods mixing Pointer and specific pointer parameters. Compiler, Compiler\Delphi
ShowMessage/Message Alerts not working in iOS 7 Simulator Compiler, Compiler\Delphi
[dccaarm][dcciosarm] Implicit finally block doesn’t execute if the exception is not catch in except block. Compiler, Compiler\Delphi
Crash by declaration error when declaring class function in record type Compiler, Compiler\Delphi
Internal Error URW1154 calling TValue.From() of System.Rtti Compiler, Compiler\Delphi

72147

Invalid section table entries on empty sections Compiler, Compiler\Delphi

119197

subtraction of sets changes its params Compiler, Compiler\Delphi, Compiler\Delphi\CodeGen
Integer computation error upon mixing Byte and Integer Compiler, Compiler\Delphi, Compiler\Delphi\CodeGen
When Currency is used in a generic record type you get an internal compiler error G1239 IN Zephyr and G1232 in XE4 Compiler, Compiler\Delphi, Compiler\Delphi\Generics

118815

Generic method inlining (part 2) Compiler, Compiler\Delphi, Compiler\Delphi\Generics

118866

Cannot perform FillChar on Currency variables – E2197 Constant object cannot be passed as var parameter Compiler, Compiler\Delphi, Compiler\Delphi\Messages

93738

Internal Error URW1136 Compiler, Compiler\Delphi, Compiler\Delphi\Messages

118929

Totally broken package compiler for an iOS device Compiler, Compiler\Delphi, Compiler\Delphi\Packages/Libs

118523

[dcc32] Command-line build fails for user account with non-ASCII characters Compiler, Compiler\Delphi, IDE\Build System
DataSnap : Memory leaks caused by TFDJSONDataSetsBase.FOwnsDataSet Data, Data\DataSnap
DataSnap: HTTP request may be broken when sending Delta Data, Data\DataSnap
[C++][DataSnap]Exception raised when trying to execute server method through proxy on OS X 10.9 Data, Data\DataSnap

116417

[ISAPI] DataSnap Server as an ISAPI DLL get a 48KB limitation when receiving POST data Data, Data\DataSnap
[OS X][DataSnap][FireDAC] Unable to find static library: DataSnapFireDAC.a Data, Data\DataSnap, Data\FireDAC
[DataSnap] TX509CertificateIndy.Verify is not operation as specification. Data, Data\DBX
Unable to load libsqlib.dylib Data, Data\DBX
DBX memory leak when running queries on NEXTGEN platforms Data, Data\DBX
FireDAC FDConnection does not autocommit Data, Data\FireDAC
FDExplorer resizing causes lost display of description column message Data, Data\FireDAC
Building a Mobile Application that contains a TFDPhysIBDriverLink component raises an error Data, Data\FireDAC
[SQLite] It can’t encipher by the specified encrypt parameter, so it can’t setup except aes-256 Data, Data\FireDAC
If XML containing MBCS is saved by SaveToStream, It is not copied correctly.. Data, Data\FireDAC
If XML containing MBCS is copied to TFDMemtable, Exception class EDOMParseError occurs Data, Data\FireDAC
FireDAC memory leak when running queries on NEXTGEN platforms Data, Data\FireDAC

119995

“Not editing” error reported with LiveBindings when calling ApplyUpdates on TAdapterBindSource Data, Data\LiveBindings

118633

[iOS device/Android] With TSoapConnection, TClientDataset.ApplyUpdates raises “Exception in safecall method” in iOS device and Android Data, Data\Midas

118633

[iOS device/Android] gdb reports wrong file after step into Debugger
Debugging not working with a FireMonkey Mobile app on Nexus 7 2013 Debugger
[Delphi] Access Violation when Inspecting or Adding a Watch with a function where an array is passed in as a var or const Debugger
Function call evaluation on C++ OSX apps is broken when using Mavericks Debugger, Debugger\Evaluator

120506

[OSX 10.9] Mavericks Modules Debug Window doesn’t show framework dylibs anymore Debugger, Debugger\Views

119777

ReqMulti.pas has been removed from the product File Delivery, Internet
[FMX/Android] TEdit causes SIGSEG if SetFocus method is called inside Forms’s OnCreate event. FireMonkey
[iOS] Sharing popup size is calculated wrong FireMonkey

120259

Bugs in creating forms with TForm.CreateNew() – i.e. without a designer. FireMonkey
Orientation switch breaks app or bars user after device activated again (after sleep) FireMonkey

119176

[iOS7 iPad Simulator] App crash in iOS 7 iPad Simulator FireMonkey

118770

Bad text rendering on Android FireMonkey
Poor application performance on Nexus 10 FireMonkey
[iOS] TMemo – sometimes when using LongTap to bring up the context menu on iOS, the cursor and context menu is moved up with one line FireMonkey

118554

[iOS Device] iOS App crashes on iOS 6.1.3 (iPad) when Showing Forms – but not on Simulator FireMonkey
TabletMasterDetail app takes over 10 seconds to load on Nexus 10 FireMonkey

120566

When adding a TBindNavigator, an Access Violation occurs FireMonkey

118799

2D Empty app does not start on Samsung Galaxy Tab 3 FireMonkey, FireMonkey\3D Components

120517

TMemo.ScrollLayout could cause access violation FireMonkey, FireMonkey\Components

120827

[iOS7] With TMemo, unintentional letter appears when entering with Japanese keyboard. FireMonkey, FireMonkey\Components
Date Picker mobile code snippet TCalendarEdit – decrements the date when you don’t change the date in the picker FireMonkey, FireMonkey\Components
Using German ß (00DF; LATIN SMALL LETTER SHARP S) in TListBoxGroupHeader raises EArgumentOutOfRangeException FireMonkey, FireMonkey\Components
On HTC one X(4.1.1) cannot be typed a set of numbers if the keyboard has the vktPhonePad type FireMonkey, FireMonkey\Components

120515

TMemo.GoToTextEnd crashes at program startup and doesn’t move the horizontal scrollbar FireMonkey, FireMonkey\Components

120517

TMemo.ScrollLayout could cause access violation FireMonkey, FireMonkey\Components

119442

Mobile Code Snippets – Web Browser needs to be updated. Web Browser Top Margin should be 0 FireMonkey, FireMonkey\Components
Problem changing the KeyboardType among different TEdit FireMonkey, FireMonkey\Components

120136

[Android 4.3] TListView component scrolling performance is very slow (Samsung GALAXY Note 3) FireMonkey, FireMonkey\Components
Listview scrolling performance slow on Samsung Galaxy Note 3 FireMonkey, FireMonkey\Components
Custom TabIcon support missing for iOS 7 FireMonkey, FireMonkey\Components

119442

[iOS7 device] Web Browser positioned incorrectly in iOS7 FireMonkey, FireMonkey\Components

120007

[Android, iOS] Viewport3D does not fully display on a mobile form with TabControl FireMonkey, FireMonkey\Components

118859

[iOS] TMedia Volume cannot be changed in iOS FireMonkey, FireMonkey\Components
TWebBrowser misaligned when Align set to alClient FireMonkey, FireMonkey\Components

119891

[Android] Edit.SetFocus in Form.OnShow() will cause app crash when entering text FireMonkey, FireMonkey\Components
TabControl does not fit the screen completely widthwise when it has exactly 6 TabItems FireMonkey, FireMonkey\Components

119821

[Android] Performance of Delphi Apps on Google Nexus 10(Android 4.3) FireMonkey, FireMonkey\Components

119539

[iOS] TMediaplayer pause (stop) on iOS is rewinding FireMonkey, FireMonkey\Components

119447

[Android] Location demo on some Android devices not working FireMonkey, FireMonkey\Components
Korean input problem with Tmemo on OS X FireMonkey, FireMonkey\Components

119192

[Android] Uppercase national characters are drawn bad on Android FireMonkey, FireMonkey\Components

119162

[Android] password is shown on virtual keyboard FireMonkey, FireMonkey\Components
TMemo very slow on Nexus 10 FireMonkey, FireMonkey\Components

119703

Stretched property of TText control does not work properly when TText is a child component for some other component, not a form FireMonkey, FireMonkey\Components

118859

[iOS] TMedia Volume cannot be changed in iOS FireMonkey, FireMonkey\Components

120023

[Android] TGestureManager crash on app close. FireMonkey, FireMonkey\Runtime
Throwing an exception and not catching it during any FMX component in an event have unexpected result FireMonkey, FireMonkey\Runtime

119450

[iOS7] vertical touch co-ordinate is several pixels lower than the actual touch position. FireMonkey, FireMonkey\Runtime

119444

[iOS7 device] Keyboard does not completely disappear when hidden in iOS7 FireMonkey, FireMonkey\Runtime
[NEXUS 10] SpeedButton – it takes too long until OnClick event is triggered FireMonkey, FireMonkey\Runtime

118910

Keyboard shift/ctrl+arrow keys not working for FireMonkey objects on a form FireMonkey, IDE, IDE\FireMonkey Designer
iOS 7 apps showing iOS 6 styled native controls (pickers/keyboard) on iOS Simulator FireMonkey, PAServer
FM C++ app with Mac OS X 10.9 SDK fails to compile IDE, IDE\Build System, IDE\Deployment, PAServer

120029

[Android] lower case of file path in deployedassets.txt IDE, IDE\Deployment
When starting RAD Studio XE5 (with android support installed) as the C++Builder personality it REMOVES the android SDK setting in the registry. IDE, IDE\General

118105

Android apps deployed to emulator will not function, display black screen IDE, Install

118830

Error detected (LME288), [ilink32 Error] Error: Unable to perform link Linker

116888

Strange linker crash Linker
Throw exception crash C++ Win64 app RTL, RTL\C++, RTL\C++\Exception Handling
Wrong behavior when executing code from a catch section on Mac OS RTL, RTL\C++, RTL\C++\Exception Handling
ARC Using Unsafe objects in records are not working properly RTL, RTL\Delphi
FM application crash at init in Android devices when the language is set to Norwegian (Norsk Bokmål) RTL, RTL\Delphi

118726

Application crash with raising exception class Segmentation fault (11) RTL, RTL\Delphi, RTL\Delphi\Other
SOAP: Double precision return values not correct for Android RTL, RTL\Delphi, SOAP

119872

SOAP AsDateTime implementation is wrong SOAP

119741

[Android] Segmentation fault consuming web service SOAP

76053

C++ templates are translated as “Vorlagen” Translation

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/delphi-xe5-update-2-muitas-correcoes-firemonkey-para-ios-android-e-compilador/feed/ 6
Delphi XE5 Update 1 – correção para problemas sérios no ClientDataSet http://www.andreanolanusse.com/pt/delphi-xe5-update-1-correcao-problemas-serios-clientdataset/ http://www.andreanolanusse.com/pt/delphi-xe5-update-1-correcao-problemas-serios-clientdataset/#comments Tue, 29 Oct 2013 03:47:43 +0000 http://www.andreanolanusse.com/pt/?p=4343 Foi disponibilizado o Update 1 para o Delphi XE5 e C++Builder XE5. Este update corrige vários em problemas em várias, entre elas FireDAC, FireMonkey, Debugger, IDE e principalmente no ClientDataSet. Abaixo uma lista dos erros do ClientDataSet que foram corrigidos, literalmente críticos e que inviabilizavam qualquer migração para XE5. A lista completa de correções está […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Foi disponibilizado o Update 1 para o Delphi XE5 e C++Builder XE5.

Este update corrige vários em problemas em várias, entre elas FireDAC, FireMonkey, Debugger, IDE e principalmente no ClientDataSet. Abaixo uma lista dos erros do ClientDataSet que foram corrigidos, literalmente críticos e que inviabilizavam qualquer migração para XE5.

Referência no Quality CentralResumoComponente
118951Numeric Filters on a TClientDataSet do not filterData, DataMidas
119028Linker error: TXMLTransformProvider libraries missingData, DataMidas
119164Attempting to use MIDAS (eg TClientDataset) in the simulator on iOS7 failsData, DataMidas
119432TClientDataSet.Locate method fails to work properly with XE5 midas.dllData, DataMidas
Application stops when driver is missingData, DataFireDAC
[Phys]-300 on connecting using Oracle / MSSQL / etc drivers using Arch SKU at design-timeData, DataFireDAC

A lista completa de correções está disponível neste link.

Links para download

Você pode baixar apenas o Update 1 (arquivo menor) ou ISO completo e atualizado já incluindo o Update 1:

  • Update 1 installer – 279.5MB (atualiza uma instalação existente do Delphi XE5 e C++Builder XE5)
  • ISO com Update 1 – 4.7GB (instalador completo do Delphi XE5 e C++Builder XE5, já incluindo o Update 1)

É isso, divirta-se agora.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/delphi-xe5-update-1-correcao-problemas-serios-clientdataset/feed/ 2
Migração de sistemas legado ou mal estruturados – Parte 2 http://www.andreanolanusse.com/pt/migracao-de-sistemas-legado-ou-mal-estruturados-parte-2/ http://www.andreanolanusse.com/pt/migracao-de-sistemas-legado-ou-mal-estruturados-parte-2/#comments Wed, 22 May 2013 05:16:13 +0000 http://www.andreanolanusse.com/pt/?p=4264 Com a diversidade de tecnologias nos dias de hoje, está cada vez mais difícil decidir qual utilizar e principalmente saber por quanto tempo a tecnologia escolhida nos dará o suporte necessário, esse artigo aborda a avaliação de tecnologias e fornecedores, assim como plataformas.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

primeiro artigo da série sobre migração de sistemas legados ou mal estruturados gerou vários comentários, recebi centenas de e-mails com perguntas e sugestões, o qual agradeço a todos que até aqui contribuíram, o feedback só vem a ajudar na evolução dos artigos sobre o tema, continuem publicando seus comentários.

Com a diversidade de tecnologias nos dias de hoje, está cada vez mais difícil decidir qual utilizar e principalmente saber por quanto tempo a tecnologia escolhida nos dará o suporte necessário, vamos neste artigo abordar a avaliação de tecnologias e fornecedores, assim como plataformas.

Avaliando tecnologias e fornecedores

Hoje temos inúmeras tecnologias, desde Open Source, gratuitas e comerciais, algumas suportadas por grandes fabricante de software e outros por aqueles que chamamos membros da comunidade, há também aquelas com muito pouco suporte e que tem sua evolução comprometida ou até mesmo já foram descontinuadas.

Escolher tecnologias sólidas e que tenha o suporte de empresa ou grupos comprometidas com sua evolução é fundamental. Obviamente todos tendem a escolher o que é gratuito, lembre-se que nada nada é grátis, tudo tem um custo que mais cedo ou mais tarde você estará pagando.

A avaliação da tecnologia está diretamente ligada a arquitetura a ser adotada em seu novo projeto. A evolução tecnologica nos últimos 10 anos foi tanta que se tornou impossível ter uma solução baseada em apenas uma tecnologia, fornecedor, plataforma e muito menos uma linguagem, nos levando a uma maior cautela na hora da escolha.

Além de uma avaliação técnica é SUPER importante avaliar diversos aspectos da empresa, como por exemplo:

  • Quais os clientes desta empresa? No website da empresa deve constar casos de sucesso, use seu network e valide os clientes desta empresa e o que eles pensam da tecnologia.
  • O que os clientes falam ou pensam da empresa? Um bom lugar para saber isso são os foruns de discussão das empresas, a maioria tem um e se não tiver, procure no Google. Procure se certificar das informações que você venha encontrar com profissionais que conheçam esta empresa.
  • Qual o RoadMap? Procure saber junto a empresa qual o RoadMap para as respectivas tecnologias que você venha a utilizar, além disso se possível uma conversa para saber mais a fundo sobre este RoadMap, eu diria que tecnologias que não tenham um horizonte definido para os próximos 5-10 anos, devem ser descartadas.

Esses são alguns aspectos que considero importante em uma avaliação, obviamente não são os únicos, entretanto se ao avaliar uma empresa e ela for mal nesses 3 pontos, você já pode descartá-la.

Estamos conectados

Integrações entre sistemas é algo que não foi inventado hoje, nossos usuários não estão mais sentados e obtendo informação no computador à sua frente e muito menos esperando o próximo dia de trabalho. A diversidade de plataformas, dispositivos móveis, notebooks e etc. gerou a necessidade de se ter a informação disponível por toda a parte.

Este cenário mudou a forma com que desenvolvemos software, o modelo Cliente/Server se tornou obsoleto e ineficaz, modelos de arquitetura distribuída surgiram no final da decada de 90, a Microsoft iniciou com a arquitetura DNA, surgiram os WebServices, SOA se tornou o padrão, os servidores de aplicação Java ganharam espaço, hoje falamos em REST e Cloud vem para nos ajudar a escalar e distribuir nossa arquitetura.

Pare por 5 minutos e pense nas arquiteturas e tecnologias mencionadas no parágrafo anterior, coloque isso em uma perspectiva para os próximos 10 anos, reflita sobre o que você já desenvolveu até os dias de hoje e se pergunte “O que eu faria diferente daqui pra frente?”.

Arquitetura baseada em serviços

Desenvolver soluções de software e não pensar em uma arquitetura baseada em serviços é como dar um tiro no pé e estar condenado ao fracasso no curto prazo. A razão porque digo isso é muito simples, estamos conectado através dos mais diversos dispositivos e a informação tem de estar disponível em todos eles, separar camada de negócio e apresentação é fundamental, sendo assim, uma boa arquitetura é chave e pode definir o rumo dos seus negócios.

Desktop ou Web

Vamos direto ao ponto aqui, assumir que suas aplicações de negócio devam ser aplicativos desktop é um retrocesso, se você pretende migrar suas aplicações legadas para a mesma plataforma que elas estão, neste caso de Desktop para Desktop, melhor não começar, fique onde está.

Obviamente aplicações de backend, processamento de dados que rodam nos seus servidores (geralmente em modo console), estes são aplicativos desktop e estes devem continuar assim, entretanto seu frontend não deve mais estar baseadas em interfaces desktop, esta é minha recomendação.

A Web evolui demais e hoje não temos as limitações do passado com browsers, uma solução Web traz flexbilidade para a empresa, reduz seu custo operacional, abre as portas para novos modelos de comercialização de software (SaaS) e muito mais, pretendo abordar em detalhes este tema em outro artigo.

Mobile

Em algum momento você terá de suportar uma ou todas as três plataformas móveis do mercado (iOS, Android e Windows Phone), em um curto espaço de tempo você vai saber com base no feedback dos clientes ou na necessidade do mercado que sua solução atende.

Existe uma grande discussão entre apps nativas ou web para dispositivos móveis, isso vai depender muito do tipo de aplicativo que você deve desenvolver. Inicialmente desenvolva apps nativas, pois ainda existem limitações com relação a web apps em Mobile, em alguns casos será melhor utilizar um modelo híbrido onde a sua app nativa irá chamar páginas webs, o qual é uma boa opção quando você precisa de maior flexibilidade.

Um aviso importante, não decida que suas apps para mobile serão todas web porque simplesmente você quer economizar com a assinatura anual da Apple de U$ 99 ou a da Google para Android que custa U$ 30, chamamos isso de economia porca.

Em breve pretendo publicar um artigo sobre o tema apps nativas vs web e seus respectivos pros e cons.

E agora?

Reuna sua equipe e converse com eles sobre essa potencial migração, compartilhe com eles a ideia de uma arquitetura distribuida, o suporte a dispositivos móveis, pergunte quais os benefícios e problemas que uma nova arquitetura deveria trazer.

Esta conversa com o time é uma oportunidade para aprender mais sobre os problemas existentes, o que pode ser melhorado, quais as vantagens competitivas que uma migração pode trazer para a empresa e assim por diante.

Faça esse exercício, enquanto isso vou preparando o próximo artigo.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/migracao-de-sistemas-legado-ou-mal-estruturados-parte-2/feed/ 4
Client/Server está morto – Repense seus novos projetos http://www.andreanolanusse.com/pt/client-server-esta-morto-repense-seus-novos-projetos/ http://www.andreanolanusse.com/pt/client-server-esta-morto-repense-seus-novos-projetos/#comments Thu, 11 Apr 2013 04:19:19 +0000 http://www.andreanolanusse.com/pt/?p=4270 Client/Server dominou o mundo do desenvolvimento, milhares de aplicações até hoje atendem as necessidades para as quais elas foram projetadas, entretanto a internet revolucionou e a pelo menos 10 anos mudou a forma com que desenvolvemos software.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Ao longo dos anos o modelo Client/Server dominou o mundo do desenvolvimento, milhares de aplicações até hoje funcionam perfeitamente e atendem as necessidades para as quais elas foram projetadas, entretanto este modelo já não suportas as nossas necessidades.

Durante a pesquisa 2013 feita aqui no blog fiz a seguinte pergunta “Na sua opinião as aplicações desenvolvidas nos dias de hoje deveriam adotar qual arquitetura?”, o resultado foi o seguinte.

Pesquisa 2013 - Client/Server, multi-camada, etc.

Não seria necessário fazer essa pergunta para descobrir isso, eu pelo menos venho recomendando arquitetura multi-camada ou distribuída a pelo menos uns 10 anos.

Enfim, se você hoje pretende iniciar novos projetos comece a pensar em uma arquitetura distribuída e baseada em serviços para que assim, você possa integrar suas soluções a outras plataformas.

SOA e REST são modelos de arquitetura que eu hoje recomendaria, tendo uma preferência para REST, mas não ignorado SOA, que pode vir a ser necessário dependendo das necessidade da solução a ser implementada.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/client-server-esta-morto-repense-seus-novos-projetos/feed/ 3
FireDAC (AnyDAC) – O que isso representa para os desenvolvedores Delphi e C++ http://www.andreanolanusse.com/pt/firedac-anydac-o-que-isso-representa-para-os-desenvolvedores-delphi-e-c/ http://www.andreanolanusse.com/pt/firedac-anydac-o-que-isso-representa-para-os-desenvolvedores-delphi-e-c/#comments Sun, 03 Mar 2013 04:50:32 +0000 http://www.andreanolanusse.com/pt/?p=4257 Recentemente a Embarcadero adquiriu o AnyDAC, conjunto de componentes para a acesso a banco de dados infinitamente superior ao dbExpress. Como resultado desta aquisição, o AnyDAC foi renomeado para FireDAC e acaba de se tornar parte do Delphi e C++Builder XE3, os usuários da edição Enterprise podem baixar o FireDAC gratuitamente, os usuários do Delphi Professional […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Recentemente a Embarcadero adquiriu o AnyDAC, conjunto de componentes para a acesso a banco de dados infinitamente superior ao dbExpress. Como resultado desta aquisição, o AnyDAC foi renomeado para FireDAC e acaba de se tornar parte do Delphi e C++Builder XE3, os usuários da edição Enterprise podem baixar o FireDAC gratuitamente, os usuários do Delphi Professional podem adquiri-lo por US$ 399.

Por muito tempo o até então AnyDAC permitiu aos desenvolvedores Delphi e C++ que usavam a edição Professional conectar a bancos de dados como Oracle, SQL Server, Sybase, Informix e outros, algo que até então somente era possível com as edições Enterprise e Architect.

Eu tenho muito o que dizer sobre o AnyDAC agora então FireDAC, no início do ano passado dediquei pelo menos 1 mês avaliando o então conhecido AnyDAC e agora vocês sabem o porque :).

Eu fiquei bem impressionado com a quantidade de recursos que o AnyDAC oferecia e a superioridade em relação ao dbExpress. FireDAC é tudo aquilo que o dbExpress tentou ser e nunca foi, eu digo isso porque FireDAC permite que você desenvolva aplicações para múltiplos bancos de dados de forma RAD, sem ter que fazer gambiarras e jeitinhos que eram necessários com o dbExpress, como por exemplo: re-mapeamento dos TFields quandos eles eram persistidos na aplicação, acesso a vários outros banco de dados, muito mais simples o desenvolvimento, acesso a recursos específicos de cada banco e muito mais. Abaixo uma lista com alguns recursos suportados pelo FireDAC.

  • Para todos os bancos de dados
    • Recuperação automática da conexão com o banco
    • Suporte unificad a eventos do banco de dados
    • Arquitetura simplificada, isso quer dizer que você não precisará mais colocar 3 componentes (Query + ClientDataSet + Provider) para simplesmente ter um cursor bi-direcional
    • Performance muito superior ao dbExpress
    • TADMemTable – dataset em memória e mais rápido que o TClientDataSet
    • Muito mais fácil migrar aplicações que ainda usam BDE para FireDAC, o que era mais trabalhoso quando se tentava migrar para dbExpress
  • Oracle
    • SELECT FOR UPDATE – não precisar mais de gambiarras como forçar UPDATE para travar um registro
    • Abortar execução de Query – quem não precisa disso?
    • Suporte a colunas ROWID – facilita e torna mais rápida a edição e refresh de dados
    • Suporte a RETURNING clause para refresh mais rápido dos dados – você não precisa mais fazer um novo select para obter o valor de um campo que foi atualizado por uma trigger
    • e muito mais…
  • Firebird
    • Suporte a RETURNING clause para refresh mais rápido dos dados
    • Trusted authentication
    • Suporte a serviços do banco de dados – backup, restore, validate, security, etc
    • Abortar execução de Query
  • PostgreSQL
    • Isso mesmo, agora suporte nativo a PostgreSQL
    • e muito mais…
  • SQL Server
    • Suporte a execução de comandos batch que retornam múltiplos result sets – Batch commands with multiple result sets
    • Abortar execução de Query
    • e muito mais
  • MySQL
    • Suporte a colunas AUTO_INCREMENT e retorno do último valor inserido
  • Drivers para vários bancos de dados compatíveis com Windows, Mac e iOS

Essa é uma pequena lista do que o FireDAC oferece, você pode saber mais sobre outros recursos do FireDAC, acessando a lista de recursos do AnyDAC através deste link.

FireDAC é sem dúvida uma solução melhor, sem dúvida vale a pena migrar suas aplicações de BDE ou dbExpress para FireDAC, muito recursos que os desenvolvedores Delphi e C++ vinham pedindo por muito tempo, estão agora presentes no FireDAC.

Claro que todos estão perguntando “O que irá acontecer com o dbExpress?”, o BDE morreu mas continua sendo usado nos dia de hoje:), o dbExpress ainda não está morto e acho que irá levar um tempo para que a Embarcadero oficialmente deixe de suporta-lo, entretanto não há porque manter duas tecnologias de acesso a banco de dados no Delphi, como eu já disse FireDAC é muito superior ao dbExpress, assim sendo o futuro é FireDAC.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/firedac-anydac-o-que-isso-representa-para-os-desenvolvedores-delphi-e-c/feed/ 35
Dica – MySQL com dbExpress no Delphi 2010/XE – evitando problemas http://www.andreanolanusse.com/pt/dicas-mysql-com-dbexpress-no-delphi-2010xe-evitando-problemas/ http://www.andreanolanusse.com/pt/dicas-mysql-com-dbexpress-no-delphi-2010xe-evitando-problemas/#respond Wed, 16 Jan 2013 15:28:03 +0000 http://www.andreanolanusse.com/pt/?p=4207 Desde que o Delphi suporta MySQL através do driver dbExpress é comum ver desenvolvedores com certa dificuldade para conectar ao MySQL, vejo isso acontecer mais com aqueles que usam a versão do Delphi ou C++Builder 2010 e XE, isso poderia ser evitado ao ler o arquivo readme.html que está localizado no diretório de instalação do […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Desde que o Delphi suporta MySQL através do driver dbExpress é comum ver desenvolvedores com certa dificuldade para conectar ao MySQL, vejo isso acontecer mais com aqueles que usam a versão do Delphi ou C++Builder 2010 e XE, isso poderia ser evitado ao ler o arquivo readme.html que está localizado no diretório de instalação do Delphi.

Este arquivo documenta todas as versões de banco suportada pelo dbExpress, incluindo o MySQL que tem uma particularidade, a combinação de versões de DLL que podem ser feita, isso acontece porque o MySQL muda com frequência sua API e assim dificulta para qualquer fornecedor manter a compatibilidade, por isso essa combinação.

Abaixo informações que você deve saber e que estão no readme.html

Versões de servidores MySQL oficialmente suportadas e testadas pelo Delphi e C++Builder

MySQL 5.1, 5.0.27, 4.1 (Todas) (Driver dbxMYS.dll, Client libmysql.dll)

Combinação das versões de servidores e clientes MySQL que foram testados, ou seja, veja bem as versões de DLL que devem ser usadas no server e client

  • LibMySQL.dll (5.1.XX) Client  – DBXMys.dll MySQL 4.0.XX Server
  • LibMySQL.dll (5.1.XX) Client  – DBXMys.dll MySQL 5.0.XX Server
  • LibMySQL.dll (5.1.XX) Client  – DBXMys.dll MySQL 5.1.XX Server

Sendo objetivo, instale a versão do cliente do MySQL 5.1.xx para que sua aplicação cliente possa conectar a servidores MySQL 4.0.XX, 5.0.XX e 5.1XX.

Lembre-se de instalar o cliente do  MySQL 32-bits, se você instalar o cliente 64-bits jamais irá funcionar com o Delphi 2010 e XE.

Caso você tenha mais de uma versão Delphi instalada na mesma máquina, faça o seguinte?

Duas versões de IDE na mesma máquina pode fazer com que uma  das versões antigas do driver dbExpress para MySQL seja carregado, isso irá acontecer por causa da variável de sistema PATH, coloque o diretório bin da versão do Delphi que você quer executar a frente na variável de sistema PATH, você pode fazer isso através do menu Tools -> Options -> Environment Variables. Faça este procedimento se você desejar usar outra versão do Delphi.

Uma dica simples, mas que pode ajudar a economizar um tempinho.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/dicas-mysql-com-dbexpress-no-delphi-2010xe-evitando-problemas/feed/ 0
Migração de sistemas legado ou mal estruturados – Parte 1 http://www.andreanolanusse.com/pt/migracao-de-sistemas-legado-ou-mal-estruturados-parte-1/ http://www.andreanolanusse.com/pt/migracao-de-sistemas-legado-ou-mal-estruturados-parte-1/#comments Mon, 14 Jan 2013 07:02:22 +0000 http://www.andreanolanusse.com/pt/?p=4243 Migração de sistemas legados é um assunto que pode render horas, dias, semanas ou meses em qualquer empresa, algo que considero normal, pois envolve uma quantidade enorme de variáveis e traz grandes desafios. Não precisamos ir muito longe para identificar sistemas legado e os desafios para mantê-lo nos dias de hoje. Sistemas que cresceram muito […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Migração de sistemas legados é um assunto que pode render horas, dias, semanas ou meses em qualquer empresa, algo que considero normal, pois envolve uma quantidade enorme de variáveis e traz grandes desafios. Não precisamos ir muito longe para identificar sistemas legado e os desafios para mantê-lo nos dias de hoje.

Sistemas que cresceram muito rápido e em um curto espaço de tempo, menos de 1 ano por exemplo, pode não ser considerado legado, entretanto na maioria das vezes este crescimento rápido e não planejado não irá suportar o crescimento da empresa a médio e longo. Com isso, o assunto migração entra em cena novamente.

Meu objetivo nesta série de artigos é ir a fundo no tema, trazer um pouco da minha experiência, sugerir caminhos e alternativas para uma migração menos dolorosa, além de recomendar soluções que irão ajudá-los. Vale lembrar que não existe receita de bolo e vocês verão isso aqui, cada caso é um caso e ninguém melhor do que você para saber dos problemas nas soluções desenvolvidas por você ou sua empresa. Faça seus comentários ao final do artigo, eles irão agregar e ajudar outros a refletir sobre que caminho tomar na neste processo, além de me ajudar nos próximos artigos.

Se não é fácil e sabemos, então por onde começamos?

Todos tem de estar desarmados

A primeira coisa a se fazer neste processo é entrar desarmado, aberto a mudança, aceitar ideias, críticas e sugestões, expor o que você pensa e ouvir, ouvir, ouvir e ouvir muito. Todos aqueles envolvidos neste projeto, deverão estar conscientes disso e preparados para mudar seu comportamento, a pior coisa neste longo projeto é ter um grupo de pessoas remando contra, enquanto todos os outros estão remando para frente. Trabalho em equipe será fundamental, críticas, sugestões e debates calorosos existirão, mas todos tem que estar cientes de que é para o melhor do projeto.

Incorporar métodos ágeis como SCRUM já na fase inicial do projeto pode ser de grande ajuda, as práticas ágeis enfatizam muito a colaboração, trabalho equipe, interação entre as pessoas, etc. Isso pode começar a estabelecer um ponto de equilíbrio na equipe e reforçar de forma continua o trabalho em equipe.

Por que migrar?

Faça esta pergunta a si mesmo “Por que migrar?”, esqueça por um instante o famoso ditado “Time que está ganhando não se mexe”, ou seja, “sistema que está funcionando não se mexe”.

A grande maioria dos sistemas ERP desenvolvidos na década de 80 e início dos anos 90 adotaram a arquitetura Cliente/Servidor (Cliente/Server) e foram desenvolvidos para plataforma Desktop, ao longo do tempo isso foi mudando, a web se tornou uma plataforma mais atrativa e hoje vivemos no mundo dos dispositivos móveis. Naquela época muitas soluções baseadas em Web surgiram, mas o avanço da tecnologia foi tão rápido que essas antigas aplicações web não foram bem estruturadas, trazendo vários outros problemas. Enfim, integração entre plataformas e diversidade de meios de acesso tornou o modelo Cliente/Servidor obsoleto.

Considere como exemplo sistemas ERPs legado ou outros similares, reflita sobre o cenário mencionado no parágrafo anterior e traga para sua realidade, seus clientes hoje querem acesso as informações via web, via iPhone, iPad, Android e seus muitos celulares e tablets e assim por diante. A recente pesquisa que fiz aqui no blog mostrou que 75% dos entrevistados irão desenvolver aplicações para mobile e 45% irão migrar suas aplicações desktop para web em 2013. Como você faria essa migração hoje de forma rápida e escalável? Como você integraria apps com seu backend? Quanta regra de negócio seria reutilizada? Já se perguntou?

Seja Desktop ou Web, se seu sistema está baseado em Cliente/Servidor, a eficiência da sua empresa está comprometida pois você está o tempo todo fazendo remendos para atender as necessidades do mercado, isso eleva a dificuldade de manutenção do código, diminui a eficiência da sua equipe, aumenta o seu custo e o custo do seu cliente, ou seja, diminui sua competitividade no mercado.

Já deve fazer um tempo que seu cliente pede para que TODO o sistema seja Web, ele faz questão de dizer TODO O SISTEMA, ele não precisa de tudo e sim certos módulos importantes, como por exemplo relatórios, gráficos estatísticos em tempo real, acesso ao cadastro de clientes, etc. Mais uma vez arquitetura Cliente/Servidor se torna um problema, o seu cliente disse que os relatórios tem de estar acessíveis pela web e relatórios na web podem trazer uma carga enorme em todo o sistema. Como você atenderia a estas solicitações? Não precisa me dizer dos remendos, eu já imagino, replicar os dados para um servidor web, manter sincronizado, etc.. Isso é caro, não é escalável e se torna um remendo temporário que irá rasgar em pouco tempo.

Já se perguntou quanto custa manter seus sistemas Desktop? Depois de muitos anos sua aplicação virou um grande sistema, com dezenas de módulos, integrações, recursos, dependências, etc.. Para responder essa pergunta, você precisa se fazer as perguntas abaixo:

  • Quantos problemas de instalação do sistema são registrados mensalmente?
  • Quantos problemas de compatibilidade de Windows são registrados mensalmente?
  • Quantos problemas de atualização do sistema são registrados mensalmente?
  • Quantas visitas mensais os técnicos do suporte técnico fazem a clientes para resolver problemas que não são possíveis de resolver remotamente?
  • Quanto representa essa grande estrutura de suporte técnico no seu custo final?
  • Que crescimento você estima para o negócio se todo sistema estivesse na Web?
  • Quais diferenciais a web traria para o seu negócio?
  • Quanto tempo irá levar para você desenvolver uma aplicação Android com base na atual infra que sua empresa oferece?
  • Etc…

Provavelmente você não tenha a resposta para todas, então é hora de começar a buscar e mensurar estes custos.

Aplicações desktop aumentam o custo final, principalmente por causa do alto-custo do suporte técnico, não estou dizendo para mandar embora metade da equipe de suporte técnico, muito pelo contrário, a equipe de suporte técnico tem um grande conhecimento do sistemas e pode ser reutilizado em outras funções, como desenvolvedores, testadores, analistas, etc…

Que tal oferecer sua solução como serviço (SaaS), o negócio do seu cliente não é TI, porque não ter  uma infra-estrutura na nuvem e oferecer sua solução? Cobrar por este serviço.

São inúmeros os pontos a se pensar, os pontos aqui mencionados são alguns entre os milhares e talvez não seja razão para você, o que é totalmente aceitável da minha parte, entretanto reflita sobre outros pontos que você acha importante e faça sua própria análise.

Vou ficando por aqui com esta primeira parte, enquanto isso reflita sobre as razões que o levaria a migrar sistemas legados ou mal estruturados.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/migracao-de-sistemas-legado-ou-mal-estruturados-parte-1/feed/ 38
dbExpress Framework no Windows e Mac com C++Builder e FireMonkey http://www.andreanolanusse.com/pt/dbexpress-framework-no-windows-e-mac-com-cbuilder-e-firemonkey/ http://www.andreanolanusse.com/pt/dbexpress-framework-no-windows-e-mac-com-cbuilder-e-firemonkey/#comments Sat, 12 Jan 2013 05:34:57 +0000 http://www.andreanolanusse.com/pt/?p=4234 O objetivo deste artigo é demonstrar o uso do dbExpress Framework para executar SQLs em um bancos de dados InterBase ou Firebird, através uma aplicação FireMonkey Console em C++ que poderá ser executa em Windows e Mac, desta forma teremos um único código para as duas plataformas. A aplicação FireMonkey Console usada como exemplo foi […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

O objetivo deste artigo é demonstrar o uso do dbExpress Framework para executar SQLs em um bancos de dados InterBase ou Firebird, através uma aplicação FireMonkey Console em C++ que poderá ser executa em Windows e Mac, desta forma teremos um único código para as duas plataformas.

A aplicação FireMonkey Console usada como exemplo foi criada através do Wizard do IDE e irá efetuar as seguintes operações:

  • Conectar ao banco de dados, que aqui usado foi InterBase e Firebird, mas você pode usar qualquer banco suportado pelo dbExpress Framework; alguns drivers do dbExpress não são suportados em Mac, como é o caso do SQL Server e ODBC driver;
  • Executar um SELECT na tabela COUNTRY e mostrar os resultados percorrendo os cursor retornado.

O código abaixo é simples e de fácil leitura e traz uma série de comentários para facilitar o entendimento.

#include <fmx.h>

#pragma hdrstop
#pragma argsused

#include <tchar.h>
#include <stdio.h>
#include <System.SysUtils.hpp>
#include <Data.DBXDynalink.hpp>
#include <Data.DBXCommon.hpp>
#include <Data.DBXInterbase.hpp>
#include <memory>

int _tmain(int argc, _TCHAR* argv[]) {

	// Get database connection instance
	std::auto_ptr<TDBXConnection>conn
		(TDBXConnectionFactory::GetConnectionFactory()->GetConnection
		("EMPLOYEE", "sysdba", "masterkey"));

	if (conn.get() != NULL) {

		printf("================= Connection Properties ============\n");

		AnsiString s = conn->ConnectionProperties->Properties->Text + "\n";
		printf(s.c_str());

		// create command and transaction objects to execute the query
		std::auto_ptr<TDBXCommand>command(conn->CreateCommand());

                // initiate a transaction
		TDBXTransaction *transaction =
			conn->BeginTransaction(TDBXIsolations::ReadCommitted);

		command->Text = "SELECT * FROM Country";
		command->Prepare();

		// execute the query and get the cursor (DBXReader)
		std::auto_ptr<TDBXReader>reader(command->ExecuteQuery());

		// print number of columns and each record
		printf(AnsiString("Number of Columns:" + IntToStr(reader->ColumnCount) +
			"\n").c_str());

		// display the list of records
		while (reader->Next()) {
			printf((reader->Value[reader->GetOrdinal("COUNTRY")]->GetAnsiString
				() + "\n").c_str());
		}

		printf("====================================================\n");

		conn->CommitFreeAndNil(transaction);
	}

	Sleep(5000);
	return 0;
}

Certifique-se que o alias dbExpress EMPLOYEE foi criado e configurado corretamente para conectar ao banco de dados EMPLOYEE.GDB, além claro do cliente do InterBase ou FireBird que dever estar instalado. Com estes passos efetuados compile e execute sua aplicação no Windows ou Mac.

Ao executar no Mac, certifique-se de que o arquivos dbxconnection.ini está no mesmo diretório da aplicação, caso contrário você poderá ter problemas, pois a aplicação não irá encontrar os parâmetros para conectar ao banco.

O resultado abaixo representa a aplicação sendo executada no Mac.

Aplicação FireMonkey em C++ em execução no Mac

 

Você pode baixar o código fonte direto do repositório de demos do RAD Studio utilizando a linha de comando abaixo:

svn co https://radstudiodemos.svn.sourceforge.net/svnroot/radstudiodemos/RadStudio_XE2/CPP/Database/dbExpress/DBXFramework/

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/dbexpress-framework-no-windows-e-mac-com-cbuilder-e-firemonkey/feed/ 1
Responda a pesquisa e ajude a definir o conteúdo do blog para 2013 http://www.andreanolanusse.com/pt/responda-a-pesquisa-e-ajude-a-definir-o-conteudo-do-blog-para-2013/ http://www.andreanolanusse.com/pt/responda-a-pesquisa-e-ajude-a-definir-o-conteudo-do-blog-para-2013/#comments Fri, 21 Dec 2012 05:41:29 +0000 http://www.andreanolanusse.com/pt/?p=4210 Amigos leitores do meu blog, ano a ano o blog vem batendo recordes de visitas, para continuar neste ritmo e trazendo conteúdo de qualidade e útil para todos vocês, peço que responda a pesquisa abaixo que tem como objetivo saber mais dos seus planos em relação ao desenvolvimento de software e quais temas seriam úteis […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Amigos leitores do meu blog, ano a ano o blog vem batendo recordes de visitas, para continuar neste ritmo e trazendo conteúdo de qualidade e útil para todos vocês, peço que responda a pesquisa abaixo que tem como objetivo saber mais dos seus planos em relação ao desenvolvimento de software e quais temas seriam úteis para vocês em 2013.

A pesquisa é objetiva e tomará menos de 5 minutos do seu valioso tempo.

PS: A pesquisa pode também ser respondida através deste link http://bit.ly/peal2013

Muito obrigado,
Andreano Lanusse

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/responda-a-pesquisa-e-ajude-a-definir-o-conteudo-do-blog-para-2013/feed/ 5
Delphi XE3 e C++Builder XE3 Hotfixes 1, 2 e 3 http://www.andreanolanusse.com/pt/delphi-xe3-e-cbuilder-xe3-hotfixes-1-2-e-3/ http://www.andreanolanusse.com/pt/delphi-xe3-e-cbuilder-xe3-hotfixes-1-2-e-3/#comments Thu, 27 Sep 2012 06:32:26 +0000 http://www.andreanolanusse.com/pt/?p=1614 Foram disponibilizados 3 hotfixes para Delphi XE3 e C++Builder XE3. Hotfix 1 – Resolve problema com o ShowMessage em aplicações FireMonkey em Mac OS X – download Hotfix 2 – Resolve problemas relacionados ao uso do GestureManager em aplicações FireMonkey – download Hotfix 3 – Somente para a edição Professional, resolve problema com o driver do SQLite na edição […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Foram disponibilizados 3 hotfixes para Delphi XE3 e C++Builder XE3.

  • Hotfix 1 – Resolve problema com o ShowMessage em aplicações FireMonkey em Mac OS X – download
  • Hotfix 2 – Resolve problemas relacionados ao uso do GestureManager em aplicações FireMonkey – download
  • Hotfix 3 – Somente para a edição Professional, resolve problema com o driver do SQLite na edição Professional – download

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/delphi-xe3-e-cbuilder-xe3-hotfixes-1-2-e-3/feed/ 1
Rave Reports não mais no Delphi XE3 e C++Builder XE3 http://www.andreanolanusse.com/pt/rave-reports-nao-mais-no-delphi-xe3-e-cbuilder-xe3/ http://www.andreanolanusse.com/pt/rave-reports-nao-mais-no-delphi-xe3-e-cbuilder-xe3/#comments Sun, 16 Sep 2012 14:03:05 +0000 http://www.andreanolanusse.com/pt/?p=1607 Caso o Rave Reports é a sua solução para gerar relatórios em Delphi ou C++Builder, você pode notar que ele não vem mais incluído no Delphi e C++Builder. Por muito tempo os desenvolvedores vem reclamando da falta de suporte e inovação do Rave, isso continua nos dias de hoje. Até o momento a Nevrona não […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Caso o Rave Reports é a sua solução para gerar relatórios em Delphi ou C++Builder, você pode notar que ele não vem mais incluído no Delphi e C++Builder. Por muito tempo os desenvolvedores vem reclamando da falta de suporte e inovação do Rave, isso continua nos dias de hoje. Até o momento a Nevrona não atualizou para XE3 e não publicou nenhum comunicado no seu website.

Fast Report uma outra solução para relatórios compatível com Delphi e C++Builder é parte da ferramenta desde o XE2, isso leva você a pensar no trabalho de migração e os recursos que deveram ser alocados para efetuar tal tarefa. Com relação aos recursos nada pode ser feito, entretanto com relação a conversão dos relatórios você pode usar 0 conversor que acompanha o Fast Report e migrar seus relatórios do Rave, o conversor também suporte migração de relatórios do Quick Report e Report Builder.

A um tempo atrás eu utilizei o conversor para migrar relatórios do Rave, foram relatórios simples, se você usar para migrar relatórios mais complexos, relate sua experiência aqui no blog para outros saberem como foi.

Caso você tenha dificuldades para converter seus relatórios do Rave usando conversor do Fast Report, visite o fórum da Fast.

Além disso é bom lembrar que você tem diversas outras opções para relatório, entre elas: Report Builder (comercial), FortesReport (free e open source) e outras.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/rave-reports-nao-mais-no-delphi-xe3-e-cbuilder-xe3/feed/ 16
Delphi Third Party Alliance e mudança na licença do Delphi XE3 revertido http://www.andreanolanusse.com/pt/delphi-third-party-alliance-e-mudanca-na-licenca-do-delphi-xe3-revertido/ http://www.andreanolanusse.com/pt/delphi-third-party-alliance-e-mudanca-na-licenca-do-delphi-xe3-revertido/#comments Mon, 03 Sep 2012 04:49:33 +0000 http://www.andreanolanusse.com/pt/?p=1588 Delphi Third Party Alliance Eu acabo de receber um convite para participar de um grupo no Facebook chamado “Delphi Third Party Alliance”, baseado na descrição do grupo o objetivo é “promover  de forma saudável o ecosistema de componentes de terceiro para Delphi e a comunidade de usuários”. Eu gostei da ideia, existem muitos componentes espalhados por […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Delphi Third Party Alliance

Eu acabo de receber um convite para participar de um grupo no Facebook chamado “Delphi Third Party Alliance”, baseado na descrição do grupo o objetivo é “promover  de forma saudável o ecosistema de componentes de terceiro para Delphi e a comunidade de usuários”. Eu gostei da ideia, existem muitos componentes espalhados por ai e este grupo pode se tornar uma forma de compartilhar o que existem por ai para toda a comunidade Delphi.

O grupo é administrado por diversos representantes das empresas que desenvolvem componentes pra Delphi, é um grupo aberto e qualquer um pode se juntar ao grupo, acesse o link http://www.facebook.com/groups/DelphiThirdPartyAlliance/

Os fornecedores de componentes estão unindo forças.

Reversão da mudança do contrato de licença (EULA) do Delphi XE3

A Embarcadero acaba de notificar os seus Technology Partners sobre a versão final do EULA para XE3, eles reverteram a decisão que afetaria novos usuários no desenvolvimento de aplicações Cliente/Servidor com Delphi Pro.

Abaixo o comunicado enviado pela Embarcadero a seus Technology Partners e também detalhes do novo contrato de licença (EULA).

We now have a final license agreement. There should be nothing in the final EULA – when it is truly finalized in the RTM version – that should cause any problems for partners or our customers. The license (EULA) is basically similar to the XE2 file. The EULA (which is included with every shipping product) will become “final” when the we sign off the release to manufacturing build. We have included portions of the final EULA below. Note that any Professional edition restrictions still included are only related only to the use of “dbExpress” technology and do not restrict the use of technolgy partner or other 3rd party client/server or multi-tier technologies by Professional edition customers.


ADDITIONAL LICENSE TERMS APPLICABLE TO STARTER EDITION

In the event Licensee has obtained a Starter Edition license the following terms hereby apply. Licensee may use the Product to develop software (i) for which Licensee does not charge directly or indirectly a fee or receive other consideration including but not limited a license fee, a service fee, a development fee, a consulting fee, a subscription fee, a support fee, a hosting fee or the like and (ii) for which Licensee only charges fees (including but not limited a license fee, a service fee, a development fee, a consulting fee, a subscription fee, a support fee, a hosting fee or the like) that cumulatively, on an annual basis, do not exceed USD$1000. In the event any (for profit or non-profit) company elects to license the software then (i) the total company revenues may not exceed USD$1000 and (ii) the total number of Starter Edition licenses deployed may not exceed 5.

ADDITIONAL LICENSE TERMS APPLICABLE TO SOFTWARE LICENSED FOR EDUCATIONAL USE

In the event Licensee has obtained an educational license the following terms apply. Licensee may exercise Licensee’s rights under this Agreement to use the Product and to create Works solely for Licensee’s own personal use in providing or receiving instruction within the limited scope of guided computer programming and/or software training courses in which Licensee are a direct and personal participant, either as student or instructor (“Courses”). Licensee may only reproduce, distribute and use Works, in source or object code form, to other participants of the Courses and then only for educational or training purposes. Licensee may not use the Products or Works created with the products for any commercial, business, governmental or institutional purpose of any kind, except to the extent Licensee are an instructor teaching a Course. All rights not specifically granted to Licensee herein are retained by Licensor.

ADDITIONAL LICENSE TERMS APPLICABLE TO RAD STUDIO, DELPHI AND C++BUILDER,
PROFESSIONAL AND PROFESSIONAL ACADEMIC EDITIONS

In the event Licensee has obtained a RAD Studio, Delphi or C++Builder Professional, or Professional Academic product license then the following terms apply.

Subject to the terms and conditions of this Agreement, Licensor grants to Licensee as the licensed user of the Product the limited right to use that portion of the Product identified as “dbExpress”, in executable form only, to access a local database installed on the same machine as the Work. Licensee may not use that portion of the Product identified as “dbExpress” in association with a database located on a different machine other than the machine on which the Works are installed.

CLIENT/SERVER PACK

If licensee has purchased a Client/Server Pack, the Licensee of RAD Studio, Delphi, or C++Builder XE3 Professional Edition (“Product”) may deploy that portion of the Product identified as “dbExpress” and dbExpress enterprise database drivers, in executable form only, to enable client server database access. Embarcadero may deliver the Product identified as “Enterprise,” however Licensee is licensed to use only the “Professional” edition features plus “dbExpress” and the Enterprise dbExpress database drivers in a client/server configuration. Licensee may evaluate the n-Tier DataSnap functionality included in the Enterprise Product delivered, but may not deploy or redistribute DataSnap.

 

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/delphi-third-party-alliance-e-mudanca-na-licenca-do-delphi-xe3-revertido/feed/ 4
Polêmica mudança no contrato de licença do Delphi XE3 e C++Builder XE3 http://www.andreanolanusse.com/pt/polemica-mudanca-no-contrato-de-licenca-do-delphi-xe3-e-cbuilder-xe3/ http://www.andreanolanusse.com/pt/polemica-mudanca-no-contrato-de-licenca-do-delphi-xe3-e-cbuilder-xe3/#comments Wed, 29 Aug 2012 08:12:10 +0000 http://www.andreanolanusse.com/pt/?p=1574 Delphi XE3 será lançado muito em breve e alguns previews já foram publicados, infelizmente essa versão vem recheada de polêmicas, algumas notícias tem vazado o que é lastimável quando isso acontece, pois demonstra a falta de respeito e palavra daqueles que assinam o acordo de confidencialidade (NDA).

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Delphi XE3 será lançado muito em breve e alguns previews já foram publicados, infelizmente essa versão vem recheada de polêmicas, algumas notícias tem vazado o que é lastimável quando isso acontece, pois demonstra a falta de respeito e palavra daqueles que assinam o acordo de confidencialidade (NDA).

A maior polêmica está no novo contrato de licença (EULA) que vazou esta semana, onde os novos usuários de Delphi somente poderão utilizar a edição Professional para acesso a banco de dados local, seja com os componentes do Delphi ou de terceiros, para desenvolver aplicações Client/Server os novos usuários deverão utilizar a edição Enterprise ou superior, ou comprar o Addon Client/Server para a edição Professional. Caso você tenha uma licença entre o Delphi 1 até o XE2 você não será afetado por essa restrição do XE3.

Abaixo o texto original:

. the use of data access technologies for client/server
connectivity will no longer be allowed in the Professional edition.
This includes both Embarcadero and 3rd party solutions. Professional
users may only, legally, access local databases with their applications.

Users who want to use client/server database access can purchase a
Client/Server Add-On Pack for their Professional edition or purchase
an Enterprise, Ultimate or Architect edition product.

This restriction if for new licenses only. Users upgrading to XE3
will be “grandfathered” in that they will be able to continue to use
3rd party data access technologies for client/server database access
in version XE3 ..

 

Ainda existem questões em abertas sobre a definição de novos usuários, por exemplo, se você tem uma licença do Delphi 2006 ou versão anterior e deseja atualizar para uma nova versão, hoje você terá que comprar uma nova licença, pois somente quem tem uma das 3 últimas versões do Delphi pode fazer o upgrade, ai fica a pergunta este usuário será ou não afetado?

Além de tudo isso, os Technology Partners, aqueles que desenvolvem componentes pra Delphi serão impactados, pois muitos usuários de Delphi Professional utilizam componentes de terceiros para acesso remote de bancos de dados como Oracle, SQL Server, DB2 e outros.

A polêmica é gigantesca, o forum da Embarcadero tem uma threads sobre o assunto com mais de 300 replies, outros blogs tratam do tema também.

O produto ainda não foi lançado e toda essa discussão tem um lado positivo, deixar a Embarcadero saber a opinião dos usuários de Delphi e fazer as correções necessárias se assim desejar antes do lançamento oficial.

O que você acha desta mudança?

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/polemica-mudanca-no-contrato-de-licenca-do-delphi-xe3-e-cbuilder-xe3/feed/ 26
Vem aí o Delphi XE3, C++Builder XE3, Prism XE3 e HTML5 Builder http://www.andreanolanusse.com/pt/vem-ai-o-delphi-xe3-cbuilder-xe3-prism-xe3-e-html5-builder/ http://www.andreanolanusse.com/pt/vem-ai-o-delphi-xe3-cbuilder-xe3-prism-xe3-e-html5-builder/#comments Wed, 15 Aug 2012 07:59:30 +0000 http://www.andreanolanusse.com/pt/?p=1561 Embarcadero acaba de anunciar o RAD Studio XE3 World Tour, onde irá mostrar as novas versões do Delphi, C++Builder, Prism e o “novo” HTML5 Builder. Até o momento o Brasil não foi incluido, mas certamente isso deve ser atualizado em breve. Entre as novidades está o suporte a nova interface do Windows 8, até então […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Embarcadero acaba de anunciar o RAD Studio XE3 World Tour, onde irá mostrar as novas versões do Delphi, C++Builder, Prism e o “novo” HTML5 Builder. Até o momento o Brasil não foi incluido, mas certamente isso deve ser atualizado em breve.

Entre as novidades está o suporte a nova interface do Windows 8, até então conhecida como Metro (codenome utilizado pela Microsoft), além de novidades no FireMonkey e outras coisas a serem anunciadas.

Assim que oficialmente lançado, estarei publicando aqui no blog o que penso sobre esta nova versão, será minha primeira análise desde que sai da Embarcadero, onde serei bem imparcial, fique ligado!!!

Aproveitando a oportunidade, estarei palestrando no Agile Brasil entre os 5-7 de setembro, todos estão convidados e o tema será de alta relevância para equipes de desenvolvimento e claro centenas de outras palestras que prometem, mais informações aqui.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/vem-ai-o-delphi-xe3-cbuilder-xe3-prism-xe3-e-html5-builder/feed/ 9
Bye Bye Embarcadero!!! http://www.andreanolanusse.com/pt/bye-bye-embarcadero/ http://www.andreanolanusse.com/pt/bye-bye-embarcadero/#comments Tue, 01 May 2012 22:02:12 +0000 http://www.andreanolanusse.com/pt/?p=1543 Amigos desenvolvedores, Minha história de Borland começou no Brasil em dezembro de 1995, teve muitos capítulos (Borland/Inprise/CodeGear/Embarcadero), um novo e importante capítulo iniciou em dezembro de 2006 com minha vinda para os Estados Unidos e hoje este capítulo chega ao fim. Hoje é meu último dia na Embarcadero Technologies. Eu gostaria de agradecer a todos […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Amigos desenvolvedores,

Minha história de Borland começou no Brasil em dezembro de 1995, teve muitos capítulos (Borland/Inprise/CodeGear/Embarcadero), um novo e importante capítulo iniciou em dezembro de 2006 com minha vinda para os Estados Unidos e hoje este capítulo chega ao fim. Hoje é meu último dia na Embarcadero Technologies.

Eu gostaria de agradecer a todos ao redor do mundo pelos grandes momentos que compartilhamos durante todos estes anos, por todas as conversas online, via email, telefone e frente a frente. Ter trabalhado como seu porta-voz durante todos estes anos foi algo único e que eu fiz com prazer, algo que irei levar sempre comigo.

Os 17 anos de Delphi só se tornou possível por causa do suporte desta grande e energética comunidade, continue enviando seus feedbacks para a Embarcadero (newsgroup em inglês é um ótimo canal pra isso), especialmente agora com o FireMonkey que tem um longo caminho.

Meu blog continua e desenvolvimento de software continuará sendo o tópico principal. Meus vídeos no YouTube irão continuar lá e espero publicar outros vídeos no futuro, para finalizar você pode continuar ou começar a me seguir no Twitter @andreanolanusse

Estarei por perto e você pode me contactar através deste link ou através do e-mail andreano AT gmail DOT com

Agora é hora de começar a escrever o próximo capítulo e buscar novas oportunidades que sejam desafiadoras e divertidas.

Sinceramente,

Andreano Lanusse

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/bye-bye-embarcadero/feed/ 62
Disponibilizado o Update 4 para Delphi XE2 e C++Builder XE2 http://www.andreanolanusse.com/pt/disponibilizado-o-update-4-para-delphi-xe2-e-cbuilder-xe2/ http://www.andreanolanusse.com/pt/disponibilizado-o-update-4-para-delphi-xe2-e-cbuilder-xe2/#comments Tue, 28 Feb 2012 21:44:12 +0000 http://www.andreanolanusse.com/pt/?p=1472 Delphi e C++Builder XE2 Update 4 requer reinstalação de todo o produto, será necessário desinstalar o seu RAD Studio XE2 atualmente instalado em sua máquina antes de instalar este update. Você pode obter este update de 3 formas: Atualizando via o mecanismo de Automatic Upgrade Manualmente através da opção Checking for Updates Fazendo o download a […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Delphi e C++Builder XE2 Update 4 requer reinstalação de todo o produto, será necessário desinstalar o seu RAD Studio XE2 atualmente instalado em sua máquina antes de instalar este update.

Você pode obter este update de 3 formas:

A lista completa de alterações, correções e novos recursos neste update está disponível aqui.

Dois novos recursos que destaco neste update é o suporte a impressora em Mac através do FireMonkey Printing API e o suporte a geração de proxy para FreePascal através do DataSnap Mobile Connector.

Você poder fazer o download do ISO para Delphi XE2 e C++Builder XE2 que inclui o Update 4 aqui.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/disponibilizado-o-update-4-para-delphi-xe2-e-cbuilder-xe2/feed/ 5
Desenvolvendo o FireMonkey 3D Text Editor para Windows e Mac http://www.andreanolanusse.com/pt/desenvolvendo-o-firemonkey-3d-text-editor-para-windows-e-mac/ http://www.andreanolanusse.com/pt/desenvolvendo-o-firemonkey-3d-text-editor-para-windows-e-mac/#respond Fri, 24 Feb 2012 00:34:17 +0000 http://www.andreanolanusse.com/pt/?p=1468 Durante o Webinar de comemoração do aniversário do Delphi apresentei uma aplicação FireMonkey 3D que venho desenvolvendo para demonstração já algum tempo. A aplicação é um editor de objetos 3D (3D Text Editor) que permite ao usuário interagir com objetos 3D através de rotação, mudança de cores, textura, tamanho dos objetos, exportar o texto 3D […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Durante o Webinar de comemoração do aniversário do Delphi apresentei uma aplicação FireMonkey 3D que venho desenvolvendo para demonstração já algum tempo.

A aplicação é um editor de objetos 3D (3D Text Editor) que permite ao usuário interagir com objetos 3D através de rotação, mudança de cores, textura, tamanho dos objetos, exportar o texto 3D como imagem PNG e muito mais.

Essa aplicação é um excelente começo para quem está interessado em aprender sobre FireMonkey e expõe muitos recursos interessantes, não somente mostra como usar 3D, animações, luz, camera, elementos 2D in containers 3D, etc., mas também como criar interfaces de usuário modernas, como tirar proveito do conceito de componente composto, como usar Scalable Vector Graphics (SVG) e mais.

Em breve estarei publicando uma série de artigos e vídeos em português que irão explicar em detalhes os recursos do FireMonkey utilizados neste aplicação, até lá lhe convido a assistir o vídeo (inglês) abaixo onde eu mostro a aplicação em ação.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/desenvolvendo-o-firemonkey-3d-text-editor-para-windows-e-mac/feed/ 0
Lista de discussão sobre Intraweb no yahoo http://www.andreanolanusse.com/pt/lista-de-discussao-sobre-intraweb-no-yahoo/ http://www.andreanolanusse.com/pt/lista-de-discussao-sobre-intraweb-no-yahoo/#comments Wed, 15 Feb 2012 21:01:31 +0000 http://www.andreanolanusse.com/pt/?p=1460 Para aqueles que utilizam Intraweb com Delphi ou C++Builder, existe um grupo para discussões relacionada ao tema no yahoo groups. Este grupo tem o suporte direto da Atozed e em português 🙂 http://br.groups.yahoo.com/group/iwbr/ Além disso, se está anunciando na lista um curso de 36 horas, pago e online de Intraweb, maiores detalhes acesse a lista. […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Para aqueles que utilizam Intraweb com Delphi ou C++Builder, existe um grupo para discussões relacionada ao tema no yahoo groups.

Este grupo tem o suporte direto da Atozed e em português 🙂

http://br.groups.yahoo.com/group/iwbr/

Além disso, se está anunciando na lista um curso de 36 horas, pago e online de Intraweb, maiores detalhes acesse a lista. O curso está programado para dia 28 de fevereiro.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/lista-de-discussao-sobre-intraweb-no-yahoo/feed/ 2
Vendas de Delphi e C++Builder crescem 54% em um ano http://www.andreanolanusse.com/pt/vendas-de-delphi-e-cbuilder-crescem-54-em-um-ano/ http://www.andreanolanusse.com/pt/vendas-de-delphi-e-cbuilder-crescem-54-em-um-ano/#comments Thu, 09 Feb 2012 07:05:47 +0000 http://www.andreanolanusse.com/pt/?p=1455 Nos últimos 3 anos não tem sido nada fácil para a economia mundial, especialmente para as empresas de tecnologia, durante a crise uma das principais áreas do orçamento de muitas empresas que foi duramente afetada foi a área de tecnologia. Nos últimos meses alguns números demonstram melhora na economia americana, Europa não vai muito bem, outros países […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Nos últimos 3 anos não tem sido nada fácil para a economia mundial, especialmente para as empresas de tecnologia, durante a crise uma das principais áreas do orçamento de muitas empresas que foi duramente afetada foi a área de tecnologia. Nos últimos meses alguns números demonstram melhora na economia americana, Europa não vai muito bem, outros países se recuperando mas podem ser afetados por uma crise na Europa, enfim ainda não estamos livres desta crise.

A boa notícia é que acabamos de divulgar o crescimento nas vendas do Delphi e C++Builder, crescimento este que foi de 54% sobre as vendas do ano anterior (2010), acelerando ainda mais nos últimos três anos de crescimento consecutivo de 15% ano-sobre-ano do Delphi e da linha de produtos do RAD Studio.

Este crescimento mostra claramente que estamos no caminho certo, diversas inovações nos últimos anos, como: FireMonkey, suporte a Windows, Mac, iOS e futuramente Android e outras plataformas estão fazendo a diferença. Comunidade Delphi e C++Builder podem comemorar.

Abaixo, o press release oficial divulgado esta semana.

Embarcadero Technologies Grows Delphi and C++ by 54% in 2011

Release of RAD Studio XE2 and FireMonkey Enhance Cross Platform

Development Capabilities and Drive Growth

SAN FRANCISCO February 7, 2012— Embarcadero Technologies, a leading provider of software solutions for application and database development, announced today that worldwide sales for its new RAD family of development tools, including RAD Studio, Delphi, and C++Builder, grew 54 percent over sales of the previous version in 2010, further accelerating the previous three years of consecutive 15 percent year-over-year growth of the Delphi and RAD Studio product lines.

With the release of both RAD Studio XE2 and FireMonkey in 2011, the RAD Studio suite now offers a powerful toolset to C++ and Delphi developers, enabling them to develop rich applications across desktop and mobile platforms with integrated native support for the most popular database platforms including Oracle, SQL Server, DB2, Sybase, InterBase, MySQL and more.

FireMonkey, a new addition to the RAD Studio family, is a next generation application platform that enables organizations to build visually stunning HD and 3D business applications for Windows (32-bit and 64-bit), Mac, and iOS. RAD Studio XE2 is a highly productive development environment for the popular Delphi, C++ and PHP programming languages. The extensive Embarcadero developer community is the second largest Windows developer community in the world after Microsoft.

“The world for Windows developers is changing. Every month Windows developers are facing an increasing demand for Mac and Mobile, and at the same time they are expected to raise the bar on user experience and interoperability.” said Michael Swindell, Senior Vice President of Marketing and Products at Embarcadero. “Developers need tools to help them deliver on these new demands without materially increasing timelines and budgets. We’re proud that RAD Studio XE2 is helping Windows developers tame these pressures and develop rich native applications across multiple platforms from a single codebase. And this is the key driver behind Delphi and C++Builder’s impressive growth.”

According to a recent Forrester report, nearly 50 percent of businesses in North America and Western Europe now issue Mac computers in the workplace, and 27 percent of those companies offer support for the iPad. It’s clear that Apple is becoming an important factor in the Enterprise, and developers must address that as they build business applications. RAD Studio’s cross platform development capabilities address the rapidly growing Mac and iOS markets, which enables developers to reach an additional 10 to 15 percent of the Desktop market with minimal additional development cost. Developers using RAD Studio can write an application once and compile to both Windows and Mac – no need for a separate development team using different development tools or duplicating effort to create Windows and Mac versions of an application.

In fall 2011, Embarcadero hosted a RAD Studio XE2 world launch tour, which brought the Delphi developer community together in countries across North America, APAC and EMEA. Over three months, more than 70 events were held in 30 countries with almost 10,000 registered. The events showcased the new features of both RAD Studio XE2 and FireMonkey, and provided the community with a chance to learn, connect, and share their experiences with RAD Studio. To learn more about the full line of Embarcadero application development tools including Delphi, C++Builder, and RAD Studio, please visit http://www.embarcadero.com/products/application-development.

About Embarcadero Technologies

Embarcadero Technologies, Inc., a software management and delivery company, is a leading provider of database and application development software tools. By using Embarcadero‘s award-winning products, professionals can design systems right, build them faster and run them better, regardless of their platform or programming language. Three million users worldwide and 90 of the Fortune 100 companies rely on Embarcadero products to increase productivity, reduce costs, simplify change management and compliance, and accelerate innovation. Founded in 1993, Embarcadero is headquartered in San Francisco, with offices located around the world. Embarcadero is online at www.embarcadero.com.

###

Embarcadero, the Embarcadero Technologies logos and all other Embarcadero Technologies product or service names are trademarks or registered trademarks of Embarcadero Technologies, Inc. All other trademarks are the property of their respective owners.

Press contacts:

Lindsey Pappas

Atomic PR for Embarcadero

415-593-1400

lindsey@atomicpr.com

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/vendas-de-delphi-e-cbuilder-crescem-54-em-um-ano/feed/ 3
Usando expressões regulares em aplicações FireMonkey com C++Builder http://www.andreanolanusse.com/pt/usando-expressoes-regulares-em-aplicacoes-firemonkey-com-cbuilder/ http://www.andreanolanusse.com/pt/usando-expressoes-regulares-em-aplicacoes-firemonkey-com-cbuilder/#comments Wed, 25 Jan 2012 11:00:24 +0000 http://www.andreanolanusse.com/pt/?p=1440 Vamos a outro exemplo em C++ onde demonstro como usar expressões regulares a partir da RTL em aplicações FireMonkey e C++Builder. Este exemplo demonstra como validar um conteúdo a partir de uma string em quatro diferentes expressões regulares, que são: Validar se a string enviada contém um endereço de e-mail Validar se a string enviada […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Vamos a outro exemplo em C++ onde demonstro como usar expressões regulares a partir da RTL em aplicações FireMonkey e C++Builder.

Este exemplo demonstra como validar um conteúdo a partir de uma string em quatro diferentes expressões regulares, que são:

  • Validar se a string enviada contém um endereço de e-mail
  • Validar se a string enviada contém um endereço de IP válido
  • Validar se a string enviada está no formato dd-mm-yyyy
  • Validar se a string enviada está no formato mm-dd-yyyy

O código a seguir mostra as quatro expressões regulares usadas por essa aplicação.

void __fastcall TForm1::lbRegExpChange(TObject *Sender) {
	switch (lbRegExp->ItemIndex) {
	case 0:
		lbType->Text = "E-mail for validation";

		MemoRegEx->Text =
			"^((?>[a-zA-Z\d!#$%&''*+\\-/=?^_`{|}~]+\\x20*" "|\"((?=[\\x01-\\x7f])[^\"\\\\]|\\\\[\\x01-\\x7f])*\"\\"
			"x20*)*(?\.?[a-zA-Z\d!" "#$%&''*+\\-/=?^_`{|}~]+)+|\"\"((?=[\\x01-\\x7f])"
			"[^\"\\\\]|\\\\[\\x01-\\x7f])*\")@(((?!-)[a-zA-Z\\d\\" "-]+(?)$";

		break;
	case 1: {
			// Accept IP address between 0..255
			lbType->Text = "IP address for validation (0..255)";
			MemoRegEx->Text =
				"\\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\" ".(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\."
				"(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\." "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b";
			break;

		}
	case 2: {
			// Data interval format mm-dd-yyyy
			lbType->Text =
				"Date in mm-dd-yyyy format from between 01-01-1900 and 12-31-2099";
			MemoRegEx->Text =
				"^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[" "01])[- /.](19|20)\\d\\d$";
			break;

		}
	case 3: {
			// Data interval format mm-dd-yyyy
			lbType->Text =
				"Date in dd-mm-yyyy format from between 01-01-1900 and 31-12-2099";
			MemoRegEx->Text =
				"^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[01" "2])[- /.](19|20)\\d\\d$";
			break;

		}
	}
	EditTextChangeTracking(EditText);

}

Para executar a validação, utilizamos o método TRegExp::IsMatch como demonstrado a seguir:
To execute the validation you can use the method TRegExp::IsMatch as you can see bellow:

void __fastcall TForm1::EditTextChangeTracking(TObject *Sender) {
       // EditText contain the string value and MemoRegEx the regular expression
	if (TRegEx::IsMatch(EditText->Text, MemoRegEx->Text)) {
		SEResult->ShadowColor = TAlphaColors::Green;
	}
	else
		SEResult->ShadowColor = TAlphaColors::Red;

}

Uma vez que este é um aplicativo FireMonkey, utilizei o efeito de sombra para demonstrar ao usuário se o valor informado no Edit é válido ou não (Verde = válido / Vermelho = inválido). A seguinte imagem demonstra o que irá acontecer caso o usuário informe um endereço de e-mail inválido no Windows e Mac.

Abaixo o resultado quando o usuário informar o endereço de e-mail válido.

Você pode baixar o código fonte  aqui ou atualizar a pasta de exemplos local do seu RAD Studio XE2 a partir do repositório do RAD Studio XE2 no SVN.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/usando-expressoes-regulares-em-aplicacoes-firemonkey-com-cbuilder/feed/ 3