![Page 1: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/1.jpg)
www.dug-rs.org Delphi Users Group Rio Grande do Sul
Delphi 2005 e .NET
Benefícios e Novidades emExemplos Práticos
André SandriAnalista/Programadorwww.sandri.cjb.net
![Page 2: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/2.jpg)
www.dug-rs.org Delphi Users Group Rio Grande do Sul
Objetivos
● O que é .NET?
● Características Principais
● Benefícios
● Novidades
● Diferenças e Similaridades
● Exemplos Práticos
![Page 3: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/3.jpg)
Microsoft® .NET Framework Versão 1.1• O que é?
• Os componentes chaves são:– CLR - Common Language Runtime– .NET Framework Class Library
• Este framework proporciona um ambiente de execução gerenciado, simplificando o desenvolvimento, a publicação e a integração com várias linguagens de programação.
![Page 4: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/4.jpg)
O FrameworkO Framework foi planejado para atender os seguintes objetivos: • Oferecer um ambiente de programação orientado a objeto
onde o código pode ser armazenado e executado localmente, executado localmente e distribuído pela Internet, ou executado remotamente.
• Oferecer um ambiente de execução de código que minimiza o desenvolvimento de software e conflitos de versões.
• Oferecer um ambiente de execução seguro de código, incluindo código criado por autores desconhecidos ou por empresas não confiáveis.
• Oferecer um ambiente de execução de código que elimina problemas de performance de scripts e códigos interpretados.
• Aproveitar a experiência do desenvolvedor entre vários tipos de aplicações, como aplicativos Windows, aplicativos para dispositivos móveis e aplicativos WEB.
![Page 5: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/5.jpg)
Instalação
.NET Framework Version 1.1 Redistributable Package23.698 KB
.NET Framework SDK Version 1.1108.757 KB
.NET Framework 2.0 Redistributable Package Beta 2 22.989 KB
.NET Framework 2.0 SDK Beta 2 (x86)317.018 KB
![Page 6: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/6.jpg)
Requisitos
• Cliente– Microsoft® Windows® 98 a Microsoft® Windows®
Server 2003– Pentium 90 MHz - 96 MB RAM
• Servidor– Microsoft® Windows® 2000 Professional (SP2) a
Microsoft® Windows® Server 2003 – Pentium 133 MHz – 256 MB RAM
![Page 7: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/7.jpg)
Runtime
É um agente que controla a execução de código, oferecendo:
• Serviços de gerência de memória• Serviços de gerência de threads• Segurança• Remoting• Outros
![Page 8: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/8.jpg)
Runtime
Código que pode ser executado pelo Runtimepode ser:
• Código Gerenciado (managed code) • Código não-gerenciado (unmanaged code)
![Page 9: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/9.jpg)
Segurança
• Conforme o local de execução e a política de segurança, o Runtime pode negar acesso a funções (acesso a disco, acesso ao registro, etc).
• Usuários e administradores da rede podem configurar qual código é seguro ou não para execução.
![Page 10: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/10.jpg)
Gerência de Memória
• A Gerência Automática de Memória evita "memory leaks" e referências inválidas.
• Garbage Collector (coleta de lixo)
• Código com ponteiros devem ser alterados (safe code).
![Page 11: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/11.jpg)
Linguagens
• Delphi (Object Pascal)• C#• C++• Visual Basic• J# (similar a Java)• Eiffel, Perl, COBOL, outros (third-party)
![Page 12: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/12.jpg)
Performance
• O código não é interpretado, e sim executado!Just-in-time (JIT) compiling
• Boa performance!
• Performance Counters
• Caches (principalmente em ASP.NET)
![Page 13: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/13.jpg)
Compilar / Executar
• Compilar: Código fonte para Microsoft Intermediate Language (MSIL)
• MSIL é gerado respeitando a CommonLanguage Specification (CLS)
• Executar: O compilador JIT (Just-in-time) automaticamente traduz o código MSIL em código nativo
• O código nativo é gerado conforme o sistema e hardware de execução
![Page 14: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/14.jpg)
Class Library
• O que há de novo?
– XML Web Services– Integração de XML com vários componentes– Classes para acessar praticamente todos os
serviços disponibilizados pelo S.O.– Integração com Active Directory– Integração fácil com tecnologias COM, ActiveX– Windows Management Instrumentation (WMI)
![Page 15: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/15.jpg)
Aplicativos WEB• A arquitetura da Microsoft mais utilizada era ASP
(código interpretado).– Linguagens Script: VBScript, JScript– Acessava-se componentes externos via ActiveX
• A tendência agora é ASP.NET– Pode-se utilizar todos os recursos do Framework de forma
direta– Classes específicas: WebControls, WebForms, etc.– Todas as linguagens suportadas pelo .NET– O código pode ser executado (JIT Compiling)
![Page 16: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/16.jpg)
XML e Web Services
• Suporte total a XML e Web Services (classes e ferramentas)
• Interoperabilidade com soluções não-Microsoft (na grande maioria das vezes)
• Novo modelo de criação e disponibilização de Web Services
![Page 17: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/17.jpg)
Side-by-Side
• Desde a versão 1.1• É a possibilidade de armazenar e executar
múltiplas versões de um aplicativo ou componente no mesmo computador, ao mesmo tempo.
• Você pode manter várias versões diferentes do Runtime instalados. Futuras instalações não afetarão o funcionamento dos componentes e aplicativos previamente instalados.
• Se você não decidir, o runtime decide.
![Page 18: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/18.jpg)
Assemblies
• São os arquivos (.exe, .dll, outros) que mantém código .NET
• Designados para simplificar o desenvolvimento e resolver problemas de versões.
• Fim de "DLL Hell"• Aposentadoria do IDL (Interface Definition
Language)• Auto Descritíveis (Metadados)
![Page 19: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/19.jpg)
Global Assembly Cache• Todo computador que tem o Runtime instalado tem
um cache de componentes chamado de Global Assembly Cache (GAC)
• É o repositório de "assemblies" projetado para compartilhar componentes para todos os aplicativos deste computador
• Normalmente, os componentes de um aplicativo são mantidos na pasta do aplicativo (pasta "bin").
• Formas de instalação:– Preparar um instalador– Global Assembly Cache Tool (Gacutil.exe)– Arrastar ou Copiar/Colar
![Page 20: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/20.jpg)
Tipos Comuns (Classes)* Object (classe raiz da hierarquia de objetos)* String (Imutável, tamanho fixo, Unicode)* Char (Caractere Unicode 16-bit)* Boolean (true ou false)* Byte (inteiro sem sinal de 8-bits)* Int16 (inteiro com sinal de 16-bits)* Int32 (inteiro com sinal de 32-bits)* Int64 (inteiro com sinal de 64-bits)* UInt64 (inteiro sem sinal de 64-bits)* Single (ponto-flutuante de 32-bit)* Double (ponto-flutuante de 64-bit)* Outros...
![Page 21: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/21.jpg)
Outras Classes do Namespace System
* Array* Buffer* Console* Environment* Exception* GC* Math* OperatingSystem* Uri* Version
![Page 22: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/22.jpg)
Conversões de Tipos• Classe de conversão para tipos Boolean, Char,
SByte, Byte, Int16, Int32, Int64, UInt16, UInt32, UInt64, Single, Double, Decimal, DateTime e String.
• Falha com exception "InvalidCastException" em poucos casos. Exemplo: Num := Convert. ToInt32(DataAtual)
• Conversões com perda de precisão são permitidas, desde que o resultado não seja maior (não possa ser representado).
• Conversões automáticas (operadores sobrecarregados)
![Page 23: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/23.jpg)
Sobrecarga de Operadores
• Sobrecarga do operador ponto (.)
• Exemplo:
CodigoClienteFormatado = CodigoCliente.Trim.PadLeft(10, “0”)
![Page 24: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/24.jpg)
System.Reflection• Assemblies – Modules – Types – Members
• GetType• ConstructorInfo• MethodInfo• FieldInfo• EventInfo• PropertyInfo• ParameterInfo
![Page 25: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/25.jpg)
COM Interop
• Integração entre código gerenciado e não-gerenciado
• Permite utilizar ou expor componentes• Runtime Callable Wrappers e COM Callable
Wrappers• Primary Interop Assembly
![Page 26: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/26.jpg)
Novidades Delphi 2005
• IDE Único e Integrado• Integração com CaliberRM e StarTeam• UML e Enterprise Core Objects (ECO)• VCL Forms, Windows Forms, Web Forms,
páginas HTML• BDE, dbGO, WebSnap, IntraWeb e Indy foram
portados!• Integração com HTML, CSS, XML, Dados...• Integração Janeva (CORBA)
![Page 27: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/27.jpg)
Editor de Código
• Refactoring• Synchronized editing• Code completion• Reusable code snippets• Recorded keystroke macros• Custom key mappings• Syntax highlighting• Code folding
![Page 28: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/28.jpg)
Maior Produtividade
![Page 29: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/29.jpg)
ECO
![Page 30: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/30.jpg)
Novos Componentes .NET
• Borland Data Providers for .NET– Suporte a InterBase, Oracle, DB2, Microsoft SQL
Server, Sybase, outros...
• WebSnap, IntraWeb, Indy, Crystal Reports• VCL, BDE• dbGo.Net• DB Web Controls
![Page 31: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/31.jpg)
ADO.NET
• Nova solução da Microsoft para acessar dados (SGBDs, XML ou outros tipos).
• DataProvider e DataSet
![Page 32: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/32.jpg)
BDP.NET
• Componentes genéricos
• Maior performance• Não exige camada
COM• Live Data Design• Mais fácil (sem
DataBinding)
![Page 33: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/33.jpg)
BDP - Borland Data Provider
• Os drivers ADO.NET (mantidos pela Microsoft, Oracle, outros) usam seus próprios tipos de dados.
• Exemplo: SQL Server utiliza a classe SqlDbType, enquanto Oracle utiliza a classe OracleData.
• BDP elimina estas dificuldades pois o driver égenérico, além de ser uma especificação aberta.
• Para migrar para outra base de dados, basta mudar a string de conexão!
![Page 34: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/34.jpg)
VCL for .NET
• Permite continuar utilizando a VCL em .NET• Permite migrar aplicativos Win32 para .NET
NamespaceBorland.VCL
![Page 35: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/35.jpg)
Muito Mais Possibilidades
• Apenas um exemplo...
INDY – Internet Direct
http://www.indyproject.org/Features.iwp
![Page 36: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/36.jpg)
Próximas Palestras
• Delphi Meeting 200527 de junho - Porto Alegrehttp://info.borland.com.br/delphimeeting/
• ClubeDelphi Tech Weekend15 e 16 de julho - São Paulohttp://www.devmedia.com.br/tw/
![Page 37: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/37.jpg)
Certificação
• Menina de 9 anos recebe certificação da Microsoft
www.terra.com.br03/Maio/2005
Arfa Karim RandhawaFaisalabad, Paquistão
![Page 38: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/38.jpg)
www.dug-rs.org Delphi Users Group Rio Grande do Sul
Delphi 2005 na Prática
![Page 39: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/39.jpg)
www.dug-rs.org Delphi Users Group Rio Grande do Sul
Perguntas?
![Page 40: Delphi 2005 e · 2009. 8. 22. · Delphi Users Group Rio Grande do Sul Delphi 2005 e .NET Benefícios e Novidades em Exemplos Práticos André Sandri Analista/Programador andresandri@hotmail.com](https://reader033.vdocuments.pub/reader033/viewer/2022060707/6073971a409b9263825924df/html5/thumbnails/40.jpg)
www.dug-rs.org Delphi Users Group Rio Grande do Sul
Muito Obrigado!
Referências:● www.dug-rs.org
● www.borland.com.br
● www.microsoft.com.br