Borland Kylix Alunos: Arthur Alonso Breno Peixoto Gustavo Soares Vinicius Falseth Kylix - Apresentação da linguagem    Sintaxe Object Pascal Oferece um ambiente de desenvolvimento rápido biblioteca de componentes.

Download Report

Transcript Borland Kylix Alunos: Arthur Alonso Breno Peixoto Gustavo Soares Vinicius Falseth Kylix - Apresentação da linguagem    Sintaxe Object Pascal Oferece um ambiente de desenvolvimento rápido biblioteca de componentes.

Borland Kylix
Alunos: Arthur Alonso
Breno Peixoto
Gustavo Soares
Vinicius Falseth
Kylix - Apresentação da linguagem



Sintaxe Object Pascal
Oferece um ambiente de desenvolvimento
rápido
biblioteca de componentes cross-platform,
denominada CLX (Component Library CrossPlatform), o objetivo principal dessa nova
biblioteca é criar uma grande portabilidade
para os controles
CLX (Component Library Cross-Platform)


VisualCLX
DataCLX
–
–
–

NetCLX
–
–
–

Local
Cliente/Servidor
N-Tier
Apache DSO e CGI WebBroker
XML e DHTML
TCP/IP socket
BaseCLX
Kylix - Apresentação da linguagem



Compatível com a arquitetura Corba, que
permite a integração com diversas linguagens,
e funciona com qualquer distribuição Linux
Desenvolvimento de projetos corporativos
Características como BizSnap, WebSnap e
DataSnap
Kylix - Apresentação da linguagem

BizSnap é a plataforma de desenvolvimento de
serviços web que permite conectar e integrar
aplicações business-to-business (B2B) entre si
através de padrões como SOAP (Simple
Object Access Protocol) e XML (eXtensible
Markup Language)
Kylix - Apresentação da linguagem


WebSnap, permite a criação de sites em Linux
e trabalha bem com os servidores Apache,
conferindo maior velocidade ao
desenvolvimento para a web
DataSnap garante acesso em vários bancos
de dados, como DB2, Informix, Oracle,
PostgreSQL, MySQL
Kylix - IDE


A GUI do Windows permanece encapsulada
num conjunto de API´s denominada Win32,
que é a mesma para o Win9x, NT e o 2000
No Linux existem várias GUIs, escritas com
diversas bibliotecas. As mais conhecidas são a
QT do KDE e a GTK+ do Gnome
Kylix - IDE - GTK+ Gnome
Kylix - IDE - QT KDE
Kylix - IDE - QT KDE
Case Design Studio





Use Case (UML)
Modelagem de Classes
Geração de código fontes Delphi/Kylix
(VCL/CLX)
Geração do Banco de Dados
Engenharia reversa de projetos e fontes já
existentes
Case Design Studio





Engenharia reversa de Banco de Dados
Herança de entidades para geração de Banco
de Dados
DFD
Lista de Eventos
Suporte a Plugin's
Case Design Studio
CDS - Diagrama de Classes
Case Design Studio

A principal vantagem é a conciliação de todos
os modelos E-R, OO e UML em uma única
ferramenta integrada de baixo custo e alta
performance. Sem a necessidade de manter o
sincronismo entre diversas ferramentas com
diversos modelos incompatíveis entre si.
Kylix X Delphi


A sintaxe está praticamente inalterada
Pequenos detalhes serão configurados, como:
–
–
–
–
Chave de compilação condicional {LINUX}
Caminhos de arquivos deverão levar em consideração
maiúsculas/minúsculas e a barra de diretório do Linux.
As classes TwinControl e TwinCustomControl serão
convertidas para TwidgetControl e TwidgetCustomControl
Units específicas serão banidas, como Windows e ShellObj
Kylix X Delphi - IDE



A IDE do Kylix é muito semelhante a do Delphi
Object Inspector está no mesmo lugar
A primeira diferença que salta à vista é a falta
da guia Win32 (como era de se esperar). Ela
foi substituída pela Common Controls
Kylix X Delphi - IDE
Kylix X Delphi – Banco de Dados



Grande diferença entre o Kylix / Delphi
A Borland aproveitou a oportunidade do
lançamento do Kylix para criar uma nova
engine de banco de dados: o dbExpress
dbExpress
–
–
engine muito leve
com uma API interna muito simples
Kylix X Delphi – Banco de Dados


Voltado a bancos de dados SQL, por isso não
há acesso a dBase ou Paradox.
Acesso unidirecional
–
estamos acostumados a mostrar os dados no
formato de grades, que não poderiam ser usadas,
neste caso. Para solucionar isto, a Borland pegou
emprestado do Midas o componente TClientDataset
Kylix X Delphi – Banco de Dados
Kylix X Delphi – Banco de Dados
Kylix X Delphi – Banco de Dados
Kylix X Delphi – Banco de Dados
Kylix X Delphi - Aplicação


Construímos um simples projeto no Delphi que
adiciona Itens em um listbox. Salvamos a unit
como Cidade.pas e o projeto como
Cidades.dpr
Depois copiamos os arquivos e salvamos em
uma pasta no linux.
Kylix X Delphi - Aplicação

Ao compilar, o Kylix exibirá vários erros.
Que erros são esses?
Kylix X Delphi - Aplicação


Erros na unit principal que é a cidade.pas.
Algumas units colocadas na seção uses no
Delphi não são usadas no kylix, como por
exemplo a unit windows e a system. Outras
possuem o nome diferente.
Kylix X Delphi - Aplicação
Kylix X Delphi - Aplicação
Kylix X Delphi - Aplicação

Teremos problemas também na diretiva de
compilação que mostra a extensão dos
arquivos de formulário, que fica na primeira
linha da seção implementation. No Delphi os
arquivos de formulário possuem extensão
DFM, mas no Kylix a extensão é XFM
Kylix X Delphi - Aplicação
Kylix X Delphi - Aplicação
Kylix X Delphi - Aplicação


Tentando compilar novamente, o Kylix ainda irá gerar
outro erro, agora na unit do projeto. Ocorre o mesmo
erro da unit principal, ou seja as units e a diretiva de
compilação.
São problemas simples de resolver. A diretiva de
compilação do arquivo de recurso (*.RES) no Delphi é
colocada em letra maiúscula, e no Kylix deve ser em
letra minúscula (lembrando que o Linux é casesensitive quando trabalha com nome de arquivo) .
Kylix X Delphi - Aplicação
Kylix X Delphi - Aplicação
Kylix X Delphi - Aplicação
Kylix - Portabilidade

Se você tiver programas que não utilizem
bancos de dados, API do Windows e só
utilizem componentes padrões do Delphi, o
trabalho de portar a aplicação será muito
suave: provavelmente, com a mudança das
cláusulas Uses, o programa poderá ser
recompilado no Kylix.
Kylix - Portabilidade

Os nomes das units que contém os componentes
foram alteradas, incluindo-se um caractere Q no início
do nome. Assim, Forms virou QForms, Controls
tornou-se QControls e assim sucessivamente.

Poderá ocorrer problemas com características
diferentes entre o Linux e o Windows, como a
inexistência do conceito de drives ou a mudança de
separadores de caminho, por exemplo.
Kylix - Portabilidade

Os programas que utilizam bancos de dados sofrerão alterações
mais profundas:
–
–
–
Paradox e dBase não são mais suportados - o ideal é converter a
base de dados para Interbase e usar suas características.
Como o dbExpress é baseado em Sql, é interessante converter o uso
de Tables para Queries, minimizando o tráfego na rede
Os componentes TTable, TQuery e TStoredProc devem ser
convertidos para TSqlTable, TSqlQuery e TSqlStoredProc. Todo o
acesso que não seja unidirecional deve contar ainda com um
componente TDatasetProvider e um TClientDataset. Os
componentes dataware devem estar ligados ao TClientDataset
Kylix X Eiffel - Variáveis


Em Eiffel e em Kylix a manipulação de objetos é
sempre por referência, isso permite que a utilização
dos objetos seja desacoplada da sua dimensão e da
sua declaração interna. A declaração por valor permite
gerar código mais eficiente, mas com prejuízo da
polimorfia
Para linguagens híbridas como o Kylix e o Java, as
variáveis dos tipos primitivos como inteiros e reais, que
não são classes, são acedidos por valor.
Kylix X Eiffel - Unicidade

A unicidade de identificação das operações
diverge de linguagem para linguagem. Em C++
e Java podem existir operações distintas com
o mesmo nome, desde que tenham lista de
parâmetros distintas. Em C++ os tipos de
retorno não distinguem, mas em Java sim. Em
Eiffel e em Kylix a unicidade é garantida
apenas pelo nome, assim como em Smalltalk.
Kylix X Eiffel - Ambiquidade


Para desfazer a ambigüidade em C++ ou se utiliza um
operador de resolução do âmbito(“::”) ou se redefine
na classe descendente o atributo ou operação que é
alvo de colisão.
Em Eiffel, no caso geral, a colisão de nomes obriga
que se utilize uma clausula especial de renomeação
(rename) para mudar pelo menos um dos
designadores do atributo ou operação em colisão. Em
Kylix este problema não ocorre porque a herança
múltipla não é suportada.
Kylix X Eiffel - Polimorfia


Em C++, Java, Smaltalk, Kylix e Eiffel a
implementação de uma operação pode ser
alterada nos descendentes.
Em Eiffel existe a possibilidade adicional de
mudar o nome a um membro herdado
(operação ou atributo), ou mesmo cancelá-lo.
Kylix X Eiffel - Classes Genéricas


A parametrização de classes está disponivel
nas linguagens C++ (aí designadas de
templates) e Eiffel, mas não em Java, Smaltalk
ou Kylix.
A parametrização de classes não é uma
inovação do paradigma dos objetos. Uma
construção semelhante, designada de
generics, já existia, por exemplo, na linguagem
Ada.
Kylix X Eiffel - Garbage Collection


O Eiffel tem um mecanismo de Garbage
Collection.
A Garbage Collection no Kylix deve ser
implementado a cargo do programador.
Kylix X Eiffel - Quadro Comparativo
Eiffel
Kylix
Capsulação
Sim
Sim
Herança Simples
Sim
Sim
Herança Multipla
Sim
Não
Ocultação de Atributos
Sim
Sim
Ocultação de Operações
Sim
Sim
Verificação Estática forte dos tipos
Sim
Sim
Tipificação dos objetos
Pura
Hibrida
Parametrização das Classes
Sim
Não
Sobrecarga de Operadores
Sim
Não
Asserções
Sim
Não
Reciclagem Automática da memória
Sim
Não
Tratamento das Exceções
Sim
Sim
Interface com Hardware
Não
Sim
Independência da máquina fisica
Sim
Sim