O documento discute como integrar o Magic xpa com o .NET, permitindo que controles e bibliotecas .NET sejam usados em aplicações Magic xpa. Ele explica como definir variáveis .NET, controlar propriedades, usar métodos e eventos, lidar com exceções, e vincular dados entre o Magic xpa e controles .NET.
2. Magic Sem Segredos
• Magic Software
• Magic em Ação
• Painel e Perguntas e
Respostas (Comentários do
Blog)
Agenda
http://mss.magicsoftware.com.br
3. Quem somos
Um fornecedor global de plataformas de desenvolvimento e integração
de aplicações
Experiência
comprovada
Tecnologia e
Inovação
Necessidades de
Negócios
30anos
Especialistas
em
Com foco em
4. Quem somos
• NASDAQ (MGIC)
• Fundada em 1983 (+30
anos)
• 14 Escritórios
mundialmente
• Presente em mais de 50
países
• Parceiros +3.000
9. Desafio: Disponibilizar o
que há de mais avançado e
prático em termos de
tecnologia, para nossos
clientes/parceiros
desenvolvedores (Magic
xpa / Magic mdm) e
integradores (Magic xpi)
10. A Magic potencializa seus clientes e parceiros em todo o mundo
com tecnologias mais inteligentes que oferecem uma experiência
multicanal de processos, lógica e dados empresariais.
11. Magic xpa: Plataforma
completa para criação de
soluções corporativas para
os ecossistemas Mobile,
Desktop, Servidores e
RIA
12. Integração com .NET
A Plataforma de Aplicações Magic xpa permite integração
com qualquer controle ou biblioteca .NET.
Você pode evoluir a experiência do usuários em suas
aplicações RIA ou Cliente/Servidor colocando controles
.NET diretamente nas interfaces (telas).
Você pode também evoluir as funcionalidades da
aplicação através de integração com formulários ou
bibliotecas .NET.
Para acessar essas funcionalidades .NET, é necessário
ter o .NET framework V2.0 SP1 (ou superior) instalado
nas máquinas.
14. Definindo Variáveis .NET
Após carregar uma biblioteca .NET na Plataforma de Aplicações
Magic xpa, todos seus objetos e métodos estarão acessíveis.
As bibliotecas .NET são carregadas no repositório de
componentes (CRR) dos projetos Magic xpa. Podemos definir
uma variável .NET para uso em programas do Magic xpa e se o
objeto for um "controle", podemos adicioná-lo à tela do
programa e ajustar suas propriedades.
15. Controlando Propriedades .NET
Objetos .NET possuem propriedades
e métodos. As propriedades são
campos do objeto que podem ser
acessados para consulta e/ou
modificação de algum atributo. Estes
valores de atributos normalmente são
usados em cálculos, apresentação
ao usuário e etc. A relação entre os
tipos de dados .NET e os tipos de
dados Magic xpa pode ser observada
a seguir
16. Correspondência entre Tipos
Tipo na
Plataforma
Magic xpa
Tipo .NET
Numeric
SByte, Byte , Int16, Uint16, Int32, UInt32, Int64, UInt64, IntPtr,
UIntPtr, Char, Decimal, Single, Double, Float
Alpha Unicode Char, Char[], String, StringBuilder
Date DateTime
Time DateTime, TimeSpan
Logical Boolean
Blob Byte, Byte[], Char, Char[], String, StringBuilder
Vector
ICollection (somente de .NET para Magic xpa), IList e objetos que
implementam indexadores através da palavra-chave 'this'.
Somente indexadores cujo índice é numérico (int). O Magic xpa só
converte vetores simples (sem multi dimensão)
17. Usando a função DNCast()
O Magic xpa possui uma função chamada DNCast() para
conversão explícita de um tipo .NET em outro, quando
necessário.
18. Usando a função DNSet()
O Magic xpa possui uma função chamada DNSet() para
realizar alteração do conteúdo de propriedades de
objetos .NET (.NET=DN). Além disso, objetos .NET
podem ser acessados diretamente do editor de
expressões através do prefixo: DotNet.
19. Usando Pseudônimos (Alias) .NET
O sistema de nomeação de tipos no
.NET é longo e requer muita digitação.
O Magic xpa permite criar pseudônimos
para as bibliotecas carregadas, afim de
facilitar o acesso aos tipos com menor
esforço de digitação. Mesmo o Magic
xpa possuindo o recurso "intelliSense"
no acesso ao .NET, os pseudônimos
são uma ferramenta bastante útil.
20. Usando Métodos .NET
Muitos objetos .NET permitem executar ações através de
seus métodos (procedimentos ou funções) e seus eventos. O
Magic xpa permite invocar estes métodos e também
interceptar estes eventos.
Como objetos .NET podem disparar eventos durante a
execução de programas, o Magic xpa permite criar "handlers"
para estes eventos, e definir ações a serem executadas
dentro destes "handlers".
21. Interceptando Eventos .NET
Os desenvolvedores Magic xpa são devem estar
familiarizados com o conceito de "Evento" e "Handler de
Evento", que é nativo da plataforma. Vários objetos .NET
expõem eventos que podem ser disparados durante a
execução dos programas. Especialmente controles .NET,
que possuem eventos como “OnMouseClick”. O Magic
xpa permite a criação de "handlers" para estes eventos,
afim de se adicionar regras de negócio a uma ação que
ocorreu durante a execução de um programa.
22. Trabalhando com Construtores
Quando um objeto .NET não é colocado no formulário, ele necessita
ser instanciado manualmente. Isso é feito invocando-se o "construtor"
da classe. Os construtores são métodos que possuem o mesmo nome
da classe e que retornam uma instância de objeto da referida classe.
Os construtores devem ser acionados pelo editor de expressões,
usando-se o prefixo: DotNet. Por exemplo, o construtor da classe
StringBuilder deve ser invocado desta forma: DotNet.StringBuilder()
23. Definindo Vetores .NET
Um vetor (array) .NET é similar a um vetor Magic xpa. Ou
seja: variáveis que armazenam múltiplos valores de um
mesmo tipo. Mas ao contrário de vetores Magic xpa, que
possuem tamanho dinâmico, vetores .NET precisam ter
seu tamanho máximo definido na sua instanciação.
No Magic xpa, um vetor .NET é definido adicionando-se
“[ ]” na definição do tipo. O tamanho do vetor deve ser
definido na instanciação do objeto.
24. Manipulando Exceções
Todas as exceções que possam ocorrer no acesso a
objetos .NET são tratadas internamente pelo Magic xpa e
não são propagadas (throw) para os programas.
As funções DNExceptionOccurred() e DNException()
permitem consultar o status do último acesso ao .NET
realizado pelo Magic xpa. Se DNExceptionOccurred()
retornar "verdadeiro", o último acesso gerou uma
exceção .NET. Neste caso, podemos usar
DNException() para ter acesso a este objeto que
descreve a exceção.
25. Usando Código .NET
Além de manipular objetos .NET nativamente nos
programas Magic xpa, é possível também escrever
trechos de código .NET diretamente em C# ou VB.NET, e
utilizá-los. Isso é feito através do comando "Invoke
.NET".
O código escrito é compilado pelo .NET CLR e o Magic
xpa Studio salva este código como parte do programa.
Durante a execução, o código já compilado é acionado
pelo Magic xpa Deployment.
26. Controles .NET com “DataView=Yes”
Alguns controles .NET possuem uma propriedade
chamada “DataSource” que define a fonte dos dados a
serem apresentados.
Se estes controles tiverem a sua propriedade DataView
definida como Yes, o Magic xpa converte
automaticamente o DataView do programa em
DataSource .NET, para ser utilizado pelo controle.
* exige Preload View=Yes
27. Controles .NET com “DataBind”
Quando os controles .NET possuem a regra de DataBind
definida, alterações nas variáveis Magic xpa são
refletidas automaticamente no controle .NET e vice-
versa: alterações no controle .NET se refletem na
variável Magic xpa.
28. Lidando com a interface IDisposable
Objetos .NET que implementam a interface “IDisposable”
sinalizam que estão trabalhando com recursos críticos do
sistema operacional e que devem ser liberados o mais
rápido possível.
Isso pode ser feito invocando-se o método Dispose() do
objeto instanciado.
No Magic xpa isso também deve ser realizado pelo
desenvolvedor, por exemplo na Task Suffix.
Exemplo: objeto FileStream.
29. Migrando Controles ActiveX
Controles ActiveX não podem ser utilizados diretamente
em formulários de programas do Magic xpa, porque
estes formulários são do tipo .NET.
Estes controles precisam primeiro ser convertidos em
“.NET User Controls”.
Isso é feito com o utilitário AxImp da MicroSoft.
Além da biblioteca gerada durante a conversão, o
controle ActiveX ainda precisa estar instalado nas
máquinas.
30. Obrigado e até o próximo
http://mss.magicsoftware.com.br