explorando a integração com .net com o magic xpa – magic sem segredos – s01e07

30
Explorando a Integração com .NET com o Magic xpa Magic Sem Segredos S01E07 21 Março 2014

Upload: magic-software-brasil

Post on 05-Jul-2015

490 views

Category:

Technology


8 download

DESCRIPTION

Acompanhe essa sessão do Magic Sem Segredos e descubra a facilidades e os benefícios dessa integração entre .NET e Magic xpa. Coloque suas dúvidas nos comentários do BLOG para respondermos ao vivo. ===== A Plataforma de Aplicação Magic xpa proporciona um ambiente de desenvolvimento e execução simples, livre de código e de excelente custo-benefício, que permite que as organizações e ISV’s rapidamente criem aplicações de negócios amigáveis, de nível empresarial, multi-plataforma para dispositivos móveis e desktops que utilizam as mais recentes e avançadas funcionalidades e tecnologias. Com seu motor de execução baseado no Microsoft .NET Framework, aplicações Magic xpa qualificam-se como aplicações padrão .NET. Isso fornece aos desenvolvedores o acesso a uma ampla gama de serviços .NET prontos, comerciais e de terceiros, formulários e controles para uso em suas aplicações. Além disso, o uso de formulários de controles Windows. NET dá aos aplicativos uma moderna, amigável experiência de usuário que melhora a usabilidade.

TRANSCRIPT

Page 1: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Explorando a Integraccedilatildeo com NET com o Magic xpa

Magic Sem Segredos ndash S01E07 ndash 21 Marccedilo 2014

Magic Sem Segredos

bull Magic Software

bull Magic em Accedilatildeo

bull Painel e Perguntas e

Respostas (Comentaacuterios do

Blog)

Agenda

httpmssmagicsoftwarecombr

Quem somos

Um fornecedor global de plataformas de desenvolvimento e integraccedilatildeo

de aplicaccedilotildees

Experiecircncia

comprovada

Tecnologia e

InovaccedilatildeoNecessidades de

Negoacutecios

30anos

Especialistas

em

Com foco em

Quem somos

bull NASDAQ (MGIC)

bull Fundada em 1983 (+30

anos)

bull 14 Escritoacuterios

mundialmente

bull Presente em mais de 50

paiacuteses

bull Parceiros +3000

Alguns Clientes Globais

Quem somos no Brasil

bull Fundada em 1992 (+20

anos)

bull Distribuidor exclusivo

local e na maior parte dos

paiacuteses da Ameacuterica do Sul

Alguns Clientes no Brasil

Alguns Parceiros no Brasil

Desafio Disponibilizar o

que haacute de mais avanccedilado e

praacutetico em termos de

tecnologia para nossos

clientesparceiros

desenvolvedores (Magic

xpa Magic mdm) e

integradores (Magic xpi)

A Magic potencializa seus clientes e parceiros em todo o mundo

com tecnologias mais inteligentes que oferecem uma experiecircncia

multicanal de processos loacutegica e dados empresariais

Magic xpa Plataforma

completa para criaccedilatildeo de

soluccedilotildees corporativas para

os ecossistemas Mobile

Desktop Servidores e

RIA

Integraccedilatildeo com NET

A Plataforma de Aplicaccedilotildees Magic xpa permite integraccedilatildeo com qualquer controle ou biblioteca NET

Vocecirc pode evoluir a experiecircncia do usuaacuterios em suas aplicaccedilotildees RIA ou ClienteServidor colocando controles NET diretamente nas interfaces (telas)

Vocecirc pode tambeacutem evoluir as funcionalidades da aplicaccedilatildeo atraveacutes de integraccedilatildeo com formulaacuterios ou bibliotecas NET

Para acessar essas funcionalidades NET eacute necessaacuterio ter o NET framework V20 SP1 (ou superior) instalado nas maacutequinas

Magic em Accedilatildeo

Definindo Variaacuteveis NET

Apoacutes carregar uma biblioteca NET na Plataforma de Aplicaccedilotildees Magic xpa todos seus objetos e meacutetodos estaratildeo acessiacuteveis As bibliotecas NET satildeo carregadas no repositoacuterio de componentes (CRR) dos projetos Magic xpa Podemos definir uma variaacutevel NET para uso em programas do Magic xpa e se o objeto for um controle podemos adicionaacute-lo agrave tela do programa e ajustar suas propriedades

Controlando Propriedades NET

Objetos NET possuem propriedades

e meacutetodos As propriedades satildeo

campos do objeto que podem ser

acessados para consulta eou

modificaccedilatildeo de algum atributo Estes

valores de atributos normalmente satildeo

usados em caacutelculos apresentaccedilatildeo

ao usuaacuterio e etc A relaccedilatildeo entre os

tipos de dados NET e os tipos de

dados Magic xpa pode ser observada

a seguir

Correspondecircncia 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 atraveacutes da palavra-chave this

Somente indexadores cujo iacutendice eacute numeacuterico (int) O Magic xpa soacute

converte vetores simples (sem multi dimensatildeo)

Usando a funccedilatildeo DNCast()

O Magic xpa possui uma funccedilatildeo chamada DNCast() para

conversatildeo expliacutecita de um tipo NET em outro quando

necessaacuterio

Usando a funccedilatildeo DNSet()

O Magic xpa possui uma funccedilatildeo chamada DNSet() para

realizar alteraccedilatildeo do conteuacutedo de propriedades de

objetos NET (NET=DN) Aleacutem disso objetos NET

podem ser acessados diretamente do editor de

expressotildees atraveacutes do prefixo DotNet

Usando Pseudocircnimos (Alias) NET

O sistema de nomeaccedilatildeo de tipos no

NET eacute longo e requer muita digitaccedilatildeo

O Magic xpa permite criar pseudocircnimos

para as bibliotecas carregadas afim de

facilitar o acesso aos tipos com menor

esforccedilo de digitaccedilatildeo Mesmo o Magic

xpa possuindo o recurso intelliSense

no acesso ao NET os pseudocircnimos

satildeo uma ferramenta bastante uacutetil

Usando Meacutetodos NET

Muitos objetos NET permitem executar accedilotildees atraveacutes de

seus meacutetodos (procedimentos ou funccedilotildees) e seus eventos O

Magic xpa permite invocar estes meacutetodos e tambeacutem

interceptar estes eventos

Como objetos NET podem disparar eventos durante a

execuccedilatildeo de programas o Magic xpa permite criar handlers

para estes eventos e definir accedilotildees a serem executadas

dentro destes handlers

Interceptando Eventos NET

Os desenvolvedores Magic xpa satildeo devem estar

familiarizados com o conceito de Evento e Handler de

Evento que eacute nativo da plataforma Vaacuterios objetos NET

expotildeem eventos que podem ser disparados durante a

execuccedilatildeo dos programas Especialmente controles NET

que possuem eventos como ldquoOnMouseClickrdquo O Magic

xpa permite a criaccedilatildeo de handlers para estes eventos

afim de se adicionar regras de negoacutecio a uma accedilatildeo que

ocorreu durante a execuccedilatildeo de um programa

Trabalhando com Construtores

Quando um objeto NET natildeo eacute colocado no formulaacuterio ele necessita

ser instanciado manualmente Isso eacute feito invocando-se o construtor

da classe Os construtores satildeo meacutetodos que possuem o mesmo nome

da classe e que retornam uma instacircncia de objeto da referida classe

Os construtores devem ser acionados pelo editor de expressotildees

usando-se o prefixo DotNet Por exemplo o construtor da classe

StringBuilder deve ser invocado desta forma DotNetStringBuilder()

Definindo Vetores NET

Um vetor (array) NET eacute similar a um vetor Magic xpa Ou

seja variaacuteveis que armazenam muacuteltiplos valores de um

mesmo tipo Mas ao contraacuterio de vetores Magic xpa que

possuem tamanho dinacircmico vetores NET precisam ter

seu tamanho maacuteximo definido na sua instanciaccedilatildeo

No Magic xpa um vetor NET eacute definido adicionando-se

ldquo[ ]rdquo na definiccedilatildeo do tipo O tamanho do vetor deve ser

definido na instanciaccedilatildeo do objeto

Manipulando Exceccedilotildees

Todas as exceccedilotildees que possam ocorrer no acesso a

objetos NET satildeo tratadas internamente pelo Magic xpa e

natildeo satildeo propagadas (throw) para os programas

As funccedilotildees DNExceptionOccurred() e DNException()

permitem consultar o status do uacuteltimo acesso ao NET

realizado pelo Magic xpa Se DNExceptionOccurred()

retornar verdadeiro o uacuteltimo acesso gerou uma

exceccedilatildeo NET Neste caso podemos usar

DNException() para ter acesso a este objeto que

descreve a exceccedilatildeo

Usando Coacutedigo NET

Aleacutem de manipular objetos NET nativamente nos

programas Magic xpa eacute possiacutevel tambeacutem escrever

trechos de coacutedigo NET diretamente em C ou VBNET e

utilizaacute-los Isso eacute feito atraveacutes do comando Invoke

NET

O coacutedigo escrito eacute compilado pelo NET CLR e o Magic

xpa Studio salva este coacutedigo como parte do programa

Durante a execuccedilatildeo o coacutedigo jaacute compilado eacute acionado

pelo Magic xpa Deployment

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 2: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Magic Sem Segredos

bull Magic Software

bull Magic em Accedilatildeo

bull Painel e Perguntas e

Respostas (Comentaacuterios do

Blog)

Agenda

httpmssmagicsoftwarecombr

Quem somos

Um fornecedor global de plataformas de desenvolvimento e integraccedilatildeo

de aplicaccedilotildees

Experiecircncia

comprovada

Tecnologia e

InovaccedilatildeoNecessidades de

Negoacutecios

30anos

Especialistas

em

Com foco em

Quem somos

bull NASDAQ (MGIC)

bull Fundada em 1983 (+30

anos)

bull 14 Escritoacuterios

mundialmente

bull Presente em mais de 50

paiacuteses

bull Parceiros +3000

Alguns Clientes Globais

Quem somos no Brasil

bull Fundada em 1992 (+20

anos)

bull Distribuidor exclusivo

local e na maior parte dos

paiacuteses da Ameacuterica do Sul

Alguns Clientes no Brasil

Alguns Parceiros no Brasil

Desafio Disponibilizar o

que haacute de mais avanccedilado e

praacutetico em termos de

tecnologia para nossos

clientesparceiros

desenvolvedores (Magic

xpa Magic mdm) e

integradores (Magic xpi)

A Magic potencializa seus clientes e parceiros em todo o mundo

com tecnologias mais inteligentes que oferecem uma experiecircncia

multicanal de processos loacutegica e dados empresariais

Magic xpa Plataforma

completa para criaccedilatildeo de

soluccedilotildees corporativas para

os ecossistemas Mobile

Desktop Servidores e

RIA

Integraccedilatildeo com NET

A Plataforma de Aplicaccedilotildees Magic xpa permite integraccedilatildeo com qualquer controle ou biblioteca NET

Vocecirc pode evoluir a experiecircncia do usuaacuterios em suas aplicaccedilotildees RIA ou ClienteServidor colocando controles NET diretamente nas interfaces (telas)

Vocecirc pode tambeacutem evoluir as funcionalidades da aplicaccedilatildeo atraveacutes de integraccedilatildeo com formulaacuterios ou bibliotecas NET

Para acessar essas funcionalidades NET eacute necessaacuterio ter o NET framework V20 SP1 (ou superior) instalado nas maacutequinas

Magic em Accedilatildeo

Definindo Variaacuteveis NET

Apoacutes carregar uma biblioteca NET na Plataforma de Aplicaccedilotildees Magic xpa todos seus objetos e meacutetodos estaratildeo acessiacuteveis As bibliotecas NET satildeo carregadas no repositoacuterio de componentes (CRR) dos projetos Magic xpa Podemos definir uma variaacutevel NET para uso em programas do Magic xpa e se o objeto for um controle podemos adicionaacute-lo agrave tela do programa e ajustar suas propriedades

Controlando Propriedades NET

Objetos NET possuem propriedades

e meacutetodos As propriedades satildeo

campos do objeto que podem ser

acessados para consulta eou

modificaccedilatildeo de algum atributo Estes

valores de atributos normalmente satildeo

usados em caacutelculos apresentaccedilatildeo

ao usuaacuterio e etc A relaccedilatildeo entre os

tipos de dados NET e os tipos de

dados Magic xpa pode ser observada

a seguir

Correspondecircncia 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 atraveacutes da palavra-chave this

Somente indexadores cujo iacutendice eacute numeacuterico (int) O Magic xpa soacute

converte vetores simples (sem multi dimensatildeo)

Usando a funccedilatildeo DNCast()

O Magic xpa possui uma funccedilatildeo chamada DNCast() para

conversatildeo expliacutecita de um tipo NET em outro quando

necessaacuterio

Usando a funccedilatildeo DNSet()

O Magic xpa possui uma funccedilatildeo chamada DNSet() para

realizar alteraccedilatildeo do conteuacutedo de propriedades de

objetos NET (NET=DN) Aleacutem disso objetos NET

podem ser acessados diretamente do editor de

expressotildees atraveacutes do prefixo DotNet

Usando Pseudocircnimos (Alias) NET

O sistema de nomeaccedilatildeo de tipos no

NET eacute longo e requer muita digitaccedilatildeo

O Magic xpa permite criar pseudocircnimos

para as bibliotecas carregadas afim de

facilitar o acesso aos tipos com menor

esforccedilo de digitaccedilatildeo Mesmo o Magic

xpa possuindo o recurso intelliSense

no acesso ao NET os pseudocircnimos

satildeo uma ferramenta bastante uacutetil

Usando Meacutetodos NET

Muitos objetos NET permitem executar accedilotildees atraveacutes de

seus meacutetodos (procedimentos ou funccedilotildees) e seus eventos O

Magic xpa permite invocar estes meacutetodos e tambeacutem

interceptar estes eventos

Como objetos NET podem disparar eventos durante a

execuccedilatildeo de programas o Magic xpa permite criar handlers

para estes eventos e definir accedilotildees a serem executadas

dentro destes handlers

Interceptando Eventos NET

Os desenvolvedores Magic xpa satildeo devem estar

familiarizados com o conceito de Evento e Handler de

Evento que eacute nativo da plataforma Vaacuterios objetos NET

expotildeem eventos que podem ser disparados durante a

execuccedilatildeo dos programas Especialmente controles NET

que possuem eventos como ldquoOnMouseClickrdquo O Magic

xpa permite a criaccedilatildeo de handlers para estes eventos

afim de se adicionar regras de negoacutecio a uma accedilatildeo que

ocorreu durante a execuccedilatildeo de um programa

Trabalhando com Construtores

Quando um objeto NET natildeo eacute colocado no formulaacuterio ele necessita

ser instanciado manualmente Isso eacute feito invocando-se o construtor

da classe Os construtores satildeo meacutetodos que possuem o mesmo nome

da classe e que retornam uma instacircncia de objeto da referida classe

Os construtores devem ser acionados pelo editor de expressotildees

usando-se o prefixo DotNet Por exemplo o construtor da classe

StringBuilder deve ser invocado desta forma DotNetStringBuilder()

Definindo Vetores NET

Um vetor (array) NET eacute similar a um vetor Magic xpa Ou

seja variaacuteveis que armazenam muacuteltiplos valores de um

mesmo tipo Mas ao contraacuterio de vetores Magic xpa que

possuem tamanho dinacircmico vetores NET precisam ter

seu tamanho maacuteximo definido na sua instanciaccedilatildeo

No Magic xpa um vetor NET eacute definido adicionando-se

ldquo[ ]rdquo na definiccedilatildeo do tipo O tamanho do vetor deve ser

definido na instanciaccedilatildeo do objeto

Manipulando Exceccedilotildees

Todas as exceccedilotildees que possam ocorrer no acesso a

objetos NET satildeo tratadas internamente pelo Magic xpa e

natildeo satildeo propagadas (throw) para os programas

As funccedilotildees DNExceptionOccurred() e DNException()

permitem consultar o status do uacuteltimo acesso ao NET

realizado pelo Magic xpa Se DNExceptionOccurred()

retornar verdadeiro o uacuteltimo acesso gerou uma

exceccedilatildeo NET Neste caso podemos usar

DNException() para ter acesso a este objeto que

descreve a exceccedilatildeo

Usando Coacutedigo NET

Aleacutem de manipular objetos NET nativamente nos

programas Magic xpa eacute possiacutevel tambeacutem escrever

trechos de coacutedigo NET diretamente em C ou VBNET e

utilizaacute-los Isso eacute feito atraveacutes do comando Invoke

NET

O coacutedigo escrito eacute compilado pelo NET CLR e o Magic

xpa Studio salva este coacutedigo como parte do programa

Durante a execuccedilatildeo o coacutedigo jaacute compilado eacute acionado

pelo Magic xpa Deployment

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 3: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Quem somos

Um fornecedor global de plataformas de desenvolvimento e integraccedilatildeo

de aplicaccedilotildees

Experiecircncia

comprovada

Tecnologia e

InovaccedilatildeoNecessidades de

Negoacutecios

30anos

Especialistas

em

Com foco em

Quem somos

bull NASDAQ (MGIC)

bull Fundada em 1983 (+30

anos)

bull 14 Escritoacuterios

mundialmente

bull Presente em mais de 50

paiacuteses

bull Parceiros +3000

Alguns Clientes Globais

Quem somos no Brasil

bull Fundada em 1992 (+20

anos)

bull Distribuidor exclusivo

local e na maior parte dos

paiacuteses da Ameacuterica do Sul

Alguns Clientes no Brasil

Alguns Parceiros no Brasil

Desafio Disponibilizar o

que haacute de mais avanccedilado e

praacutetico em termos de

tecnologia para nossos

clientesparceiros

desenvolvedores (Magic

xpa Magic mdm) e

integradores (Magic xpi)

A Magic potencializa seus clientes e parceiros em todo o mundo

com tecnologias mais inteligentes que oferecem uma experiecircncia

multicanal de processos loacutegica e dados empresariais

Magic xpa Plataforma

completa para criaccedilatildeo de

soluccedilotildees corporativas para

os ecossistemas Mobile

Desktop Servidores e

RIA

Integraccedilatildeo com NET

A Plataforma de Aplicaccedilotildees Magic xpa permite integraccedilatildeo com qualquer controle ou biblioteca NET

Vocecirc pode evoluir a experiecircncia do usuaacuterios em suas aplicaccedilotildees RIA ou ClienteServidor colocando controles NET diretamente nas interfaces (telas)

Vocecirc pode tambeacutem evoluir as funcionalidades da aplicaccedilatildeo atraveacutes de integraccedilatildeo com formulaacuterios ou bibliotecas NET

Para acessar essas funcionalidades NET eacute necessaacuterio ter o NET framework V20 SP1 (ou superior) instalado nas maacutequinas

Magic em Accedilatildeo

Definindo Variaacuteveis NET

Apoacutes carregar uma biblioteca NET na Plataforma de Aplicaccedilotildees Magic xpa todos seus objetos e meacutetodos estaratildeo acessiacuteveis As bibliotecas NET satildeo carregadas no repositoacuterio de componentes (CRR) dos projetos Magic xpa Podemos definir uma variaacutevel NET para uso em programas do Magic xpa e se o objeto for um controle podemos adicionaacute-lo agrave tela do programa e ajustar suas propriedades

Controlando Propriedades NET

Objetos NET possuem propriedades

e meacutetodos As propriedades satildeo

campos do objeto que podem ser

acessados para consulta eou

modificaccedilatildeo de algum atributo Estes

valores de atributos normalmente satildeo

usados em caacutelculos apresentaccedilatildeo

ao usuaacuterio e etc A relaccedilatildeo entre os

tipos de dados NET e os tipos de

dados Magic xpa pode ser observada

a seguir

Correspondecircncia 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 atraveacutes da palavra-chave this

Somente indexadores cujo iacutendice eacute numeacuterico (int) O Magic xpa soacute

converte vetores simples (sem multi dimensatildeo)

Usando a funccedilatildeo DNCast()

O Magic xpa possui uma funccedilatildeo chamada DNCast() para

conversatildeo expliacutecita de um tipo NET em outro quando

necessaacuterio

Usando a funccedilatildeo DNSet()

O Magic xpa possui uma funccedilatildeo chamada DNSet() para

realizar alteraccedilatildeo do conteuacutedo de propriedades de

objetos NET (NET=DN) Aleacutem disso objetos NET

podem ser acessados diretamente do editor de

expressotildees atraveacutes do prefixo DotNet

Usando Pseudocircnimos (Alias) NET

O sistema de nomeaccedilatildeo de tipos no

NET eacute longo e requer muita digitaccedilatildeo

O Magic xpa permite criar pseudocircnimos

para as bibliotecas carregadas afim de

facilitar o acesso aos tipos com menor

esforccedilo de digitaccedilatildeo Mesmo o Magic

xpa possuindo o recurso intelliSense

no acesso ao NET os pseudocircnimos

satildeo uma ferramenta bastante uacutetil

Usando Meacutetodos NET

Muitos objetos NET permitem executar accedilotildees atraveacutes de

seus meacutetodos (procedimentos ou funccedilotildees) e seus eventos O

Magic xpa permite invocar estes meacutetodos e tambeacutem

interceptar estes eventos

Como objetos NET podem disparar eventos durante a

execuccedilatildeo de programas o Magic xpa permite criar handlers

para estes eventos e definir accedilotildees a serem executadas

dentro destes handlers

Interceptando Eventos NET

Os desenvolvedores Magic xpa satildeo devem estar

familiarizados com o conceito de Evento e Handler de

Evento que eacute nativo da plataforma Vaacuterios objetos NET

expotildeem eventos que podem ser disparados durante a

execuccedilatildeo dos programas Especialmente controles NET

que possuem eventos como ldquoOnMouseClickrdquo O Magic

xpa permite a criaccedilatildeo de handlers para estes eventos

afim de se adicionar regras de negoacutecio a uma accedilatildeo que

ocorreu durante a execuccedilatildeo de um programa

Trabalhando com Construtores

Quando um objeto NET natildeo eacute colocado no formulaacuterio ele necessita

ser instanciado manualmente Isso eacute feito invocando-se o construtor

da classe Os construtores satildeo meacutetodos que possuem o mesmo nome

da classe e que retornam uma instacircncia de objeto da referida classe

Os construtores devem ser acionados pelo editor de expressotildees

usando-se o prefixo DotNet Por exemplo o construtor da classe

StringBuilder deve ser invocado desta forma DotNetStringBuilder()

Definindo Vetores NET

Um vetor (array) NET eacute similar a um vetor Magic xpa Ou

seja variaacuteveis que armazenam muacuteltiplos valores de um

mesmo tipo Mas ao contraacuterio de vetores Magic xpa que

possuem tamanho dinacircmico vetores NET precisam ter

seu tamanho maacuteximo definido na sua instanciaccedilatildeo

No Magic xpa um vetor NET eacute definido adicionando-se

ldquo[ ]rdquo na definiccedilatildeo do tipo O tamanho do vetor deve ser

definido na instanciaccedilatildeo do objeto

Manipulando Exceccedilotildees

Todas as exceccedilotildees que possam ocorrer no acesso a

objetos NET satildeo tratadas internamente pelo Magic xpa e

natildeo satildeo propagadas (throw) para os programas

As funccedilotildees DNExceptionOccurred() e DNException()

permitem consultar o status do uacuteltimo acesso ao NET

realizado pelo Magic xpa Se DNExceptionOccurred()

retornar verdadeiro o uacuteltimo acesso gerou uma

exceccedilatildeo NET Neste caso podemos usar

DNException() para ter acesso a este objeto que

descreve a exceccedilatildeo

Usando Coacutedigo NET

Aleacutem de manipular objetos NET nativamente nos

programas Magic xpa eacute possiacutevel tambeacutem escrever

trechos de coacutedigo NET diretamente em C ou VBNET e

utilizaacute-los Isso eacute feito atraveacutes do comando Invoke

NET

O coacutedigo escrito eacute compilado pelo NET CLR e o Magic

xpa Studio salva este coacutedigo como parte do programa

Durante a execuccedilatildeo o coacutedigo jaacute compilado eacute acionado

pelo Magic xpa Deployment

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 4: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Quem somos

bull NASDAQ (MGIC)

bull Fundada em 1983 (+30

anos)

bull 14 Escritoacuterios

mundialmente

bull Presente em mais de 50

paiacuteses

bull Parceiros +3000

Alguns Clientes Globais

Quem somos no Brasil

bull Fundada em 1992 (+20

anos)

bull Distribuidor exclusivo

local e na maior parte dos

paiacuteses da Ameacuterica do Sul

Alguns Clientes no Brasil

Alguns Parceiros no Brasil

Desafio Disponibilizar o

que haacute de mais avanccedilado e

praacutetico em termos de

tecnologia para nossos

clientesparceiros

desenvolvedores (Magic

xpa Magic mdm) e

integradores (Magic xpi)

A Magic potencializa seus clientes e parceiros em todo o mundo

com tecnologias mais inteligentes que oferecem uma experiecircncia

multicanal de processos loacutegica e dados empresariais

Magic xpa Plataforma

completa para criaccedilatildeo de

soluccedilotildees corporativas para

os ecossistemas Mobile

Desktop Servidores e

RIA

Integraccedilatildeo com NET

A Plataforma de Aplicaccedilotildees Magic xpa permite integraccedilatildeo com qualquer controle ou biblioteca NET

Vocecirc pode evoluir a experiecircncia do usuaacuterios em suas aplicaccedilotildees RIA ou ClienteServidor colocando controles NET diretamente nas interfaces (telas)

Vocecirc pode tambeacutem evoluir as funcionalidades da aplicaccedilatildeo atraveacutes de integraccedilatildeo com formulaacuterios ou bibliotecas NET

Para acessar essas funcionalidades NET eacute necessaacuterio ter o NET framework V20 SP1 (ou superior) instalado nas maacutequinas

Magic em Accedilatildeo

Definindo Variaacuteveis NET

Apoacutes carregar uma biblioteca NET na Plataforma de Aplicaccedilotildees Magic xpa todos seus objetos e meacutetodos estaratildeo acessiacuteveis As bibliotecas NET satildeo carregadas no repositoacuterio de componentes (CRR) dos projetos Magic xpa Podemos definir uma variaacutevel NET para uso em programas do Magic xpa e se o objeto for um controle podemos adicionaacute-lo agrave tela do programa e ajustar suas propriedades

Controlando Propriedades NET

Objetos NET possuem propriedades

e meacutetodos As propriedades satildeo

campos do objeto que podem ser

acessados para consulta eou

modificaccedilatildeo de algum atributo Estes

valores de atributos normalmente satildeo

usados em caacutelculos apresentaccedilatildeo

ao usuaacuterio e etc A relaccedilatildeo entre os

tipos de dados NET e os tipos de

dados Magic xpa pode ser observada

a seguir

Correspondecircncia 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 atraveacutes da palavra-chave this

Somente indexadores cujo iacutendice eacute numeacuterico (int) O Magic xpa soacute

converte vetores simples (sem multi dimensatildeo)

Usando a funccedilatildeo DNCast()

O Magic xpa possui uma funccedilatildeo chamada DNCast() para

conversatildeo expliacutecita de um tipo NET em outro quando

necessaacuterio

Usando a funccedilatildeo DNSet()

O Magic xpa possui uma funccedilatildeo chamada DNSet() para

realizar alteraccedilatildeo do conteuacutedo de propriedades de

objetos NET (NET=DN) Aleacutem disso objetos NET

podem ser acessados diretamente do editor de

expressotildees atraveacutes do prefixo DotNet

Usando Pseudocircnimos (Alias) NET

O sistema de nomeaccedilatildeo de tipos no

NET eacute longo e requer muita digitaccedilatildeo

O Magic xpa permite criar pseudocircnimos

para as bibliotecas carregadas afim de

facilitar o acesso aos tipos com menor

esforccedilo de digitaccedilatildeo Mesmo o Magic

xpa possuindo o recurso intelliSense

no acesso ao NET os pseudocircnimos

satildeo uma ferramenta bastante uacutetil

Usando Meacutetodos NET

Muitos objetos NET permitem executar accedilotildees atraveacutes de

seus meacutetodos (procedimentos ou funccedilotildees) e seus eventos O

Magic xpa permite invocar estes meacutetodos e tambeacutem

interceptar estes eventos

Como objetos NET podem disparar eventos durante a

execuccedilatildeo de programas o Magic xpa permite criar handlers

para estes eventos e definir accedilotildees a serem executadas

dentro destes handlers

Interceptando Eventos NET

Os desenvolvedores Magic xpa satildeo devem estar

familiarizados com o conceito de Evento e Handler de

Evento que eacute nativo da plataforma Vaacuterios objetos NET

expotildeem eventos que podem ser disparados durante a

execuccedilatildeo dos programas Especialmente controles NET

que possuem eventos como ldquoOnMouseClickrdquo O Magic

xpa permite a criaccedilatildeo de handlers para estes eventos

afim de se adicionar regras de negoacutecio a uma accedilatildeo que

ocorreu durante a execuccedilatildeo de um programa

Trabalhando com Construtores

Quando um objeto NET natildeo eacute colocado no formulaacuterio ele necessita

ser instanciado manualmente Isso eacute feito invocando-se o construtor

da classe Os construtores satildeo meacutetodos que possuem o mesmo nome

da classe e que retornam uma instacircncia de objeto da referida classe

Os construtores devem ser acionados pelo editor de expressotildees

usando-se o prefixo DotNet Por exemplo o construtor da classe

StringBuilder deve ser invocado desta forma DotNetStringBuilder()

Definindo Vetores NET

Um vetor (array) NET eacute similar a um vetor Magic xpa Ou

seja variaacuteveis que armazenam muacuteltiplos valores de um

mesmo tipo Mas ao contraacuterio de vetores Magic xpa que

possuem tamanho dinacircmico vetores NET precisam ter

seu tamanho maacuteximo definido na sua instanciaccedilatildeo

No Magic xpa um vetor NET eacute definido adicionando-se

ldquo[ ]rdquo na definiccedilatildeo do tipo O tamanho do vetor deve ser

definido na instanciaccedilatildeo do objeto

Manipulando Exceccedilotildees

Todas as exceccedilotildees que possam ocorrer no acesso a

objetos NET satildeo tratadas internamente pelo Magic xpa e

natildeo satildeo propagadas (throw) para os programas

As funccedilotildees DNExceptionOccurred() e DNException()

permitem consultar o status do uacuteltimo acesso ao NET

realizado pelo Magic xpa Se DNExceptionOccurred()

retornar verdadeiro o uacuteltimo acesso gerou uma

exceccedilatildeo NET Neste caso podemos usar

DNException() para ter acesso a este objeto que

descreve a exceccedilatildeo

Usando Coacutedigo NET

Aleacutem de manipular objetos NET nativamente nos

programas Magic xpa eacute possiacutevel tambeacutem escrever

trechos de coacutedigo NET diretamente em C ou VBNET e

utilizaacute-los Isso eacute feito atraveacutes do comando Invoke

NET

O coacutedigo escrito eacute compilado pelo NET CLR e o Magic

xpa Studio salva este coacutedigo como parte do programa

Durante a execuccedilatildeo o coacutedigo jaacute compilado eacute acionado

pelo Magic xpa Deployment

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 5: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Alguns Clientes Globais

Quem somos no Brasil

bull Fundada em 1992 (+20

anos)

bull Distribuidor exclusivo

local e na maior parte dos

paiacuteses da Ameacuterica do Sul

Alguns Clientes no Brasil

Alguns Parceiros no Brasil

Desafio Disponibilizar o

que haacute de mais avanccedilado e

praacutetico em termos de

tecnologia para nossos

clientesparceiros

desenvolvedores (Magic

xpa Magic mdm) e

integradores (Magic xpi)

A Magic potencializa seus clientes e parceiros em todo o mundo

com tecnologias mais inteligentes que oferecem uma experiecircncia

multicanal de processos loacutegica e dados empresariais

Magic xpa Plataforma

completa para criaccedilatildeo de

soluccedilotildees corporativas para

os ecossistemas Mobile

Desktop Servidores e

RIA

Integraccedilatildeo com NET

A Plataforma de Aplicaccedilotildees Magic xpa permite integraccedilatildeo com qualquer controle ou biblioteca NET

Vocecirc pode evoluir a experiecircncia do usuaacuterios em suas aplicaccedilotildees RIA ou ClienteServidor colocando controles NET diretamente nas interfaces (telas)

Vocecirc pode tambeacutem evoluir as funcionalidades da aplicaccedilatildeo atraveacutes de integraccedilatildeo com formulaacuterios ou bibliotecas NET

Para acessar essas funcionalidades NET eacute necessaacuterio ter o NET framework V20 SP1 (ou superior) instalado nas maacutequinas

Magic em Accedilatildeo

Definindo Variaacuteveis NET

Apoacutes carregar uma biblioteca NET na Plataforma de Aplicaccedilotildees Magic xpa todos seus objetos e meacutetodos estaratildeo acessiacuteveis As bibliotecas NET satildeo carregadas no repositoacuterio de componentes (CRR) dos projetos Magic xpa Podemos definir uma variaacutevel NET para uso em programas do Magic xpa e se o objeto for um controle podemos adicionaacute-lo agrave tela do programa e ajustar suas propriedades

Controlando Propriedades NET

Objetos NET possuem propriedades

e meacutetodos As propriedades satildeo

campos do objeto que podem ser

acessados para consulta eou

modificaccedilatildeo de algum atributo Estes

valores de atributos normalmente satildeo

usados em caacutelculos apresentaccedilatildeo

ao usuaacuterio e etc A relaccedilatildeo entre os

tipos de dados NET e os tipos de

dados Magic xpa pode ser observada

a seguir

Correspondecircncia 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 atraveacutes da palavra-chave this

Somente indexadores cujo iacutendice eacute numeacuterico (int) O Magic xpa soacute

converte vetores simples (sem multi dimensatildeo)

Usando a funccedilatildeo DNCast()

O Magic xpa possui uma funccedilatildeo chamada DNCast() para

conversatildeo expliacutecita de um tipo NET em outro quando

necessaacuterio

Usando a funccedilatildeo DNSet()

O Magic xpa possui uma funccedilatildeo chamada DNSet() para

realizar alteraccedilatildeo do conteuacutedo de propriedades de

objetos NET (NET=DN) Aleacutem disso objetos NET

podem ser acessados diretamente do editor de

expressotildees atraveacutes do prefixo DotNet

Usando Pseudocircnimos (Alias) NET

O sistema de nomeaccedilatildeo de tipos no

NET eacute longo e requer muita digitaccedilatildeo

O Magic xpa permite criar pseudocircnimos

para as bibliotecas carregadas afim de

facilitar o acesso aos tipos com menor

esforccedilo de digitaccedilatildeo Mesmo o Magic

xpa possuindo o recurso intelliSense

no acesso ao NET os pseudocircnimos

satildeo uma ferramenta bastante uacutetil

Usando Meacutetodos NET

Muitos objetos NET permitem executar accedilotildees atraveacutes de

seus meacutetodos (procedimentos ou funccedilotildees) e seus eventos O

Magic xpa permite invocar estes meacutetodos e tambeacutem

interceptar estes eventos

Como objetos NET podem disparar eventos durante a

execuccedilatildeo de programas o Magic xpa permite criar handlers

para estes eventos e definir accedilotildees a serem executadas

dentro destes handlers

Interceptando Eventos NET

Os desenvolvedores Magic xpa satildeo devem estar

familiarizados com o conceito de Evento e Handler de

Evento que eacute nativo da plataforma Vaacuterios objetos NET

expotildeem eventos que podem ser disparados durante a

execuccedilatildeo dos programas Especialmente controles NET

que possuem eventos como ldquoOnMouseClickrdquo O Magic

xpa permite a criaccedilatildeo de handlers para estes eventos

afim de se adicionar regras de negoacutecio a uma accedilatildeo que

ocorreu durante a execuccedilatildeo de um programa

Trabalhando com Construtores

Quando um objeto NET natildeo eacute colocado no formulaacuterio ele necessita

ser instanciado manualmente Isso eacute feito invocando-se o construtor

da classe Os construtores satildeo meacutetodos que possuem o mesmo nome

da classe e que retornam uma instacircncia de objeto da referida classe

Os construtores devem ser acionados pelo editor de expressotildees

usando-se o prefixo DotNet Por exemplo o construtor da classe

StringBuilder deve ser invocado desta forma DotNetStringBuilder()

Definindo Vetores NET

Um vetor (array) NET eacute similar a um vetor Magic xpa Ou

seja variaacuteveis que armazenam muacuteltiplos valores de um

mesmo tipo Mas ao contraacuterio de vetores Magic xpa que

possuem tamanho dinacircmico vetores NET precisam ter

seu tamanho maacuteximo definido na sua instanciaccedilatildeo

No Magic xpa um vetor NET eacute definido adicionando-se

ldquo[ ]rdquo na definiccedilatildeo do tipo O tamanho do vetor deve ser

definido na instanciaccedilatildeo do objeto

Manipulando Exceccedilotildees

Todas as exceccedilotildees que possam ocorrer no acesso a

objetos NET satildeo tratadas internamente pelo Magic xpa e

natildeo satildeo propagadas (throw) para os programas

As funccedilotildees DNExceptionOccurred() e DNException()

permitem consultar o status do uacuteltimo acesso ao NET

realizado pelo Magic xpa Se DNExceptionOccurred()

retornar verdadeiro o uacuteltimo acesso gerou uma

exceccedilatildeo NET Neste caso podemos usar

DNException() para ter acesso a este objeto que

descreve a exceccedilatildeo

Usando Coacutedigo NET

Aleacutem de manipular objetos NET nativamente nos

programas Magic xpa eacute possiacutevel tambeacutem escrever

trechos de coacutedigo NET diretamente em C ou VBNET e

utilizaacute-los Isso eacute feito atraveacutes do comando Invoke

NET

O coacutedigo escrito eacute compilado pelo NET CLR e o Magic

xpa Studio salva este coacutedigo como parte do programa

Durante a execuccedilatildeo o coacutedigo jaacute compilado eacute acionado

pelo Magic xpa Deployment

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 6: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Quem somos no Brasil

bull Fundada em 1992 (+20

anos)

bull Distribuidor exclusivo

local e na maior parte dos

paiacuteses da Ameacuterica do Sul

Alguns Clientes no Brasil

Alguns Parceiros no Brasil

Desafio Disponibilizar o

que haacute de mais avanccedilado e

praacutetico em termos de

tecnologia para nossos

clientesparceiros

desenvolvedores (Magic

xpa Magic mdm) e

integradores (Magic xpi)

A Magic potencializa seus clientes e parceiros em todo o mundo

com tecnologias mais inteligentes que oferecem uma experiecircncia

multicanal de processos loacutegica e dados empresariais

Magic xpa Plataforma

completa para criaccedilatildeo de

soluccedilotildees corporativas para

os ecossistemas Mobile

Desktop Servidores e

RIA

Integraccedilatildeo com NET

A Plataforma de Aplicaccedilotildees Magic xpa permite integraccedilatildeo com qualquer controle ou biblioteca NET

Vocecirc pode evoluir a experiecircncia do usuaacuterios em suas aplicaccedilotildees RIA ou ClienteServidor colocando controles NET diretamente nas interfaces (telas)

Vocecirc pode tambeacutem evoluir as funcionalidades da aplicaccedilatildeo atraveacutes de integraccedilatildeo com formulaacuterios ou bibliotecas NET

Para acessar essas funcionalidades NET eacute necessaacuterio ter o NET framework V20 SP1 (ou superior) instalado nas maacutequinas

Magic em Accedilatildeo

Definindo Variaacuteveis NET

Apoacutes carregar uma biblioteca NET na Plataforma de Aplicaccedilotildees Magic xpa todos seus objetos e meacutetodos estaratildeo acessiacuteveis As bibliotecas NET satildeo carregadas no repositoacuterio de componentes (CRR) dos projetos Magic xpa Podemos definir uma variaacutevel NET para uso em programas do Magic xpa e se o objeto for um controle podemos adicionaacute-lo agrave tela do programa e ajustar suas propriedades

Controlando Propriedades NET

Objetos NET possuem propriedades

e meacutetodos As propriedades satildeo

campos do objeto que podem ser

acessados para consulta eou

modificaccedilatildeo de algum atributo Estes

valores de atributos normalmente satildeo

usados em caacutelculos apresentaccedilatildeo

ao usuaacuterio e etc A relaccedilatildeo entre os

tipos de dados NET e os tipos de

dados Magic xpa pode ser observada

a seguir

Correspondecircncia 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 atraveacutes da palavra-chave this

Somente indexadores cujo iacutendice eacute numeacuterico (int) O Magic xpa soacute

converte vetores simples (sem multi dimensatildeo)

Usando a funccedilatildeo DNCast()

O Magic xpa possui uma funccedilatildeo chamada DNCast() para

conversatildeo expliacutecita de um tipo NET em outro quando

necessaacuterio

Usando a funccedilatildeo DNSet()

O Magic xpa possui uma funccedilatildeo chamada DNSet() para

realizar alteraccedilatildeo do conteuacutedo de propriedades de

objetos NET (NET=DN) Aleacutem disso objetos NET

podem ser acessados diretamente do editor de

expressotildees atraveacutes do prefixo DotNet

Usando Pseudocircnimos (Alias) NET

O sistema de nomeaccedilatildeo de tipos no

NET eacute longo e requer muita digitaccedilatildeo

O Magic xpa permite criar pseudocircnimos

para as bibliotecas carregadas afim de

facilitar o acesso aos tipos com menor

esforccedilo de digitaccedilatildeo Mesmo o Magic

xpa possuindo o recurso intelliSense

no acesso ao NET os pseudocircnimos

satildeo uma ferramenta bastante uacutetil

Usando Meacutetodos NET

Muitos objetos NET permitem executar accedilotildees atraveacutes de

seus meacutetodos (procedimentos ou funccedilotildees) e seus eventos O

Magic xpa permite invocar estes meacutetodos e tambeacutem

interceptar estes eventos

Como objetos NET podem disparar eventos durante a

execuccedilatildeo de programas o Magic xpa permite criar handlers

para estes eventos e definir accedilotildees a serem executadas

dentro destes handlers

Interceptando Eventos NET

Os desenvolvedores Magic xpa satildeo devem estar

familiarizados com o conceito de Evento e Handler de

Evento que eacute nativo da plataforma Vaacuterios objetos NET

expotildeem eventos que podem ser disparados durante a

execuccedilatildeo dos programas Especialmente controles NET

que possuem eventos como ldquoOnMouseClickrdquo O Magic

xpa permite a criaccedilatildeo de handlers para estes eventos

afim de se adicionar regras de negoacutecio a uma accedilatildeo que

ocorreu durante a execuccedilatildeo de um programa

Trabalhando com Construtores

Quando um objeto NET natildeo eacute colocado no formulaacuterio ele necessita

ser instanciado manualmente Isso eacute feito invocando-se o construtor

da classe Os construtores satildeo meacutetodos que possuem o mesmo nome

da classe e que retornam uma instacircncia de objeto da referida classe

Os construtores devem ser acionados pelo editor de expressotildees

usando-se o prefixo DotNet Por exemplo o construtor da classe

StringBuilder deve ser invocado desta forma DotNetStringBuilder()

Definindo Vetores NET

Um vetor (array) NET eacute similar a um vetor Magic xpa Ou

seja variaacuteveis que armazenam muacuteltiplos valores de um

mesmo tipo Mas ao contraacuterio de vetores Magic xpa que

possuem tamanho dinacircmico vetores NET precisam ter

seu tamanho maacuteximo definido na sua instanciaccedilatildeo

No Magic xpa um vetor NET eacute definido adicionando-se

ldquo[ ]rdquo na definiccedilatildeo do tipo O tamanho do vetor deve ser

definido na instanciaccedilatildeo do objeto

Manipulando Exceccedilotildees

Todas as exceccedilotildees que possam ocorrer no acesso a

objetos NET satildeo tratadas internamente pelo Magic xpa e

natildeo satildeo propagadas (throw) para os programas

As funccedilotildees DNExceptionOccurred() e DNException()

permitem consultar o status do uacuteltimo acesso ao NET

realizado pelo Magic xpa Se DNExceptionOccurred()

retornar verdadeiro o uacuteltimo acesso gerou uma

exceccedilatildeo NET Neste caso podemos usar

DNException() para ter acesso a este objeto que

descreve a exceccedilatildeo

Usando Coacutedigo NET

Aleacutem de manipular objetos NET nativamente nos

programas Magic xpa eacute possiacutevel tambeacutem escrever

trechos de coacutedigo NET diretamente em C ou VBNET e

utilizaacute-los Isso eacute feito atraveacutes do comando Invoke

NET

O coacutedigo escrito eacute compilado pelo NET CLR e o Magic

xpa Studio salva este coacutedigo como parte do programa

Durante a execuccedilatildeo o coacutedigo jaacute compilado eacute acionado

pelo Magic xpa Deployment

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 7: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Alguns Clientes no Brasil

Alguns Parceiros no Brasil

Desafio Disponibilizar o

que haacute de mais avanccedilado e

praacutetico em termos de

tecnologia para nossos

clientesparceiros

desenvolvedores (Magic

xpa Magic mdm) e

integradores (Magic xpi)

A Magic potencializa seus clientes e parceiros em todo o mundo

com tecnologias mais inteligentes que oferecem uma experiecircncia

multicanal de processos loacutegica e dados empresariais

Magic xpa Plataforma

completa para criaccedilatildeo de

soluccedilotildees corporativas para

os ecossistemas Mobile

Desktop Servidores e

RIA

Integraccedilatildeo com NET

A Plataforma de Aplicaccedilotildees Magic xpa permite integraccedilatildeo com qualquer controle ou biblioteca NET

Vocecirc pode evoluir a experiecircncia do usuaacuterios em suas aplicaccedilotildees RIA ou ClienteServidor colocando controles NET diretamente nas interfaces (telas)

Vocecirc pode tambeacutem evoluir as funcionalidades da aplicaccedilatildeo atraveacutes de integraccedilatildeo com formulaacuterios ou bibliotecas NET

Para acessar essas funcionalidades NET eacute necessaacuterio ter o NET framework V20 SP1 (ou superior) instalado nas maacutequinas

Magic em Accedilatildeo

Definindo Variaacuteveis NET

Apoacutes carregar uma biblioteca NET na Plataforma de Aplicaccedilotildees Magic xpa todos seus objetos e meacutetodos estaratildeo acessiacuteveis As bibliotecas NET satildeo carregadas no repositoacuterio de componentes (CRR) dos projetos Magic xpa Podemos definir uma variaacutevel NET para uso em programas do Magic xpa e se o objeto for um controle podemos adicionaacute-lo agrave tela do programa e ajustar suas propriedades

Controlando Propriedades NET

Objetos NET possuem propriedades

e meacutetodos As propriedades satildeo

campos do objeto que podem ser

acessados para consulta eou

modificaccedilatildeo de algum atributo Estes

valores de atributos normalmente satildeo

usados em caacutelculos apresentaccedilatildeo

ao usuaacuterio e etc A relaccedilatildeo entre os

tipos de dados NET e os tipos de

dados Magic xpa pode ser observada

a seguir

Correspondecircncia 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 atraveacutes da palavra-chave this

Somente indexadores cujo iacutendice eacute numeacuterico (int) O Magic xpa soacute

converte vetores simples (sem multi dimensatildeo)

Usando a funccedilatildeo DNCast()

O Magic xpa possui uma funccedilatildeo chamada DNCast() para

conversatildeo expliacutecita de um tipo NET em outro quando

necessaacuterio

Usando a funccedilatildeo DNSet()

O Magic xpa possui uma funccedilatildeo chamada DNSet() para

realizar alteraccedilatildeo do conteuacutedo de propriedades de

objetos NET (NET=DN) Aleacutem disso objetos NET

podem ser acessados diretamente do editor de

expressotildees atraveacutes do prefixo DotNet

Usando Pseudocircnimos (Alias) NET

O sistema de nomeaccedilatildeo de tipos no

NET eacute longo e requer muita digitaccedilatildeo

O Magic xpa permite criar pseudocircnimos

para as bibliotecas carregadas afim de

facilitar o acesso aos tipos com menor

esforccedilo de digitaccedilatildeo Mesmo o Magic

xpa possuindo o recurso intelliSense

no acesso ao NET os pseudocircnimos

satildeo uma ferramenta bastante uacutetil

Usando Meacutetodos NET

Muitos objetos NET permitem executar accedilotildees atraveacutes de

seus meacutetodos (procedimentos ou funccedilotildees) e seus eventos O

Magic xpa permite invocar estes meacutetodos e tambeacutem

interceptar estes eventos

Como objetos NET podem disparar eventos durante a

execuccedilatildeo de programas o Magic xpa permite criar handlers

para estes eventos e definir accedilotildees a serem executadas

dentro destes handlers

Interceptando Eventos NET

Os desenvolvedores Magic xpa satildeo devem estar

familiarizados com o conceito de Evento e Handler de

Evento que eacute nativo da plataforma Vaacuterios objetos NET

expotildeem eventos que podem ser disparados durante a

execuccedilatildeo dos programas Especialmente controles NET

que possuem eventos como ldquoOnMouseClickrdquo O Magic

xpa permite a criaccedilatildeo de handlers para estes eventos

afim de se adicionar regras de negoacutecio a uma accedilatildeo que

ocorreu durante a execuccedilatildeo de um programa

Trabalhando com Construtores

Quando um objeto NET natildeo eacute colocado no formulaacuterio ele necessita

ser instanciado manualmente Isso eacute feito invocando-se o construtor

da classe Os construtores satildeo meacutetodos que possuem o mesmo nome

da classe e que retornam uma instacircncia de objeto da referida classe

Os construtores devem ser acionados pelo editor de expressotildees

usando-se o prefixo DotNet Por exemplo o construtor da classe

StringBuilder deve ser invocado desta forma DotNetStringBuilder()

Definindo Vetores NET

Um vetor (array) NET eacute similar a um vetor Magic xpa Ou

seja variaacuteveis que armazenam muacuteltiplos valores de um

mesmo tipo Mas ao contraacuterio de vetores Magic xpa que

possuem tamanho dinacircmico vetores NET precisam ter

seu tamanho maacuteximo definido na sua instanciaccedilatildeo

No Magic xpa um vetor NET eacute definido adicionando-se

ldquo[ ]rdquo na definiccedilatildeo do tipo O tamanho do vetor deve ser

definido na instanciaccedilatildeo do objeto

Manipulando Exceccedilotildees

Todas as exceccedilotildees que possam ocorrer no acesso a

objetos NET satildeo tratadas internamente pelo Magic xpa e

natildeo satildeo propagadas (throw) para os programas

As funccedilotildees DNExceptionOccurred() e DNException()

permitem consultar o status do uacuteltimo acesso ao NET

realizado pelo Magic xpa Se DNExceptionOccurred()

retornar verdadeiro o uacuteltimo acesso gerou uma

exceccedilatildeo NET Neste caso podemos usar

DNException() para ter acesso a este objeto que

descreve a exceccedilatildeo

Usando Coacutedigo NET

Aleacutem de manipular objetos NET nativamente nos

programas Magic xpa eacute possiacutevel tambeacutem escrever

trechos de coacutedigo NET diretamente em C ou VBNET e

utilizaacute-los Isso eacute feito atraveacutes do comando Invoke

NET

O coacutedigo escrito eacute compilado pelo NET CLR e o Magic

xpa Studio salva este coacutedigo como parte do programa

Durante a execuccedilatildeo o coacutedigo jaacute compilado eacute acionado

pelo Magic xpa Deployment

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 8: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Alguns Parceiros no Brasil

Desafio Disponibilizar o

que haacute de mais avanccedilado e

praacutetico em termos de

tecnologia para nossos

clientesparceiros

desenvolvedores (Magic

xpa Magic mdm) e

integradores (Magic xpi)

A Magic potencializa seus clientes e parceiros em todo o mundo

com tecnologias mais inteligentes que oferecem uma experiecircncia

multicanal de processos loacutegica e dados empresariais

Magic xpa Plataforma

completa para criaccedilatildeo de

soluccedilotildees corporativas para

os ecossistemas Mobile

Desktop Servidores e

RIA

Integraccedilatildeo com NET

A Plataforma de Aplicaccedilotildees Magic xpa permite integraccedilatildeo com qualquer controle ou biblioteca NET

Vocecirc pode evoluir a experiecircncia do usuaacuterios em suas aplicaccedilotildees RIA ou ClienteServidor colocando controles NET diretamente nas interfaces (telas)

Vocecirc pode tambeacutem evoluir as funcionalidades da aplicaccedilatildeo atraveacutes de integraccedilatildeo com formulaacuterios ou bibliotecas NET

Para acessar essas funcionalidades NET eacute necessaacuterio ter o NET framework V20 SP1 (ou superior) instalado nas maacutequinas

Magic em Accedilatildeo

Definindo Variaacuteveis NET

Apoacutes carregar uma biblioteca NET na Plataforma de Aplicaccedilotildees Magic xpa todos seus objetos e meacutetodos estaratildeo acessiacuteveis As bibliotecas NET satildeo carregadas no repositoacuterio de componentes (CRR) dos projetos Magic xpa Podemos definir uma variaacutevel NET para uso em programas do Magic xpa e se o objeto for um controle podemos adicionaacute-lo agrave tela do programa e ajustar suas propriedades

Controlando Propriedades NET

Objetos NET possuem propriedades

e meacutetodos As propriedades satildeo

campos do objeto que podem ser

acessados para consulta eou

modificaccedilatildeo de algum atributo Estes

valores de atributos normalmente satildeo

usados em caacutelculos apresentaccedilatildeo

ao usuaacuterio e etc A relaccedilatildeo entre os

tipos de dados NET e os tipos de

dados Magic xpa pode ser observada

a seguir

Correspondecircncia 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 atraveacutes da palavra-chave this

Somente indexadores cujo iacutendice eacute numeacuterico (int) O Magic xpa soacute

converte vetores simples (sem multi dimensatildeo)

Usando a funccedilatildeo DNCast()

O Magic xpa possui uma funccedilatildeo chamada DNCast() para

conversatildeo expliacutecita de um tipo NET em outro quando

necessaacuterio

Usando a funccedilatildeo DNSet()

O Magic xpa possui uma funccedilatildeo chamada DNSet() para

realizar alteraccedilatildeo do conteuacutedo de propriedades de

objetos NET (NET=DN) Aleacutem disso objetos NET

podem ser acessados diretamente do editor de

expressotildees atraveacutes do prefixo DotNet

Usando Pseudocircnimos (Alias) NET

O sistema de nomeaccedilatildeo de tipos no

NET eacute longo e requer muita digitaccedilatildeo

O Magic xpa permite criar pseudocircnimos

para as bibliotecas carregadas afim de

facilitar o acesso aos tipos com menor

esforccedilo de digitaccedilatildeo Mesmo o Magic

xpa possuindo o recurso intelliSense

no acesso ao NET os pseudocircnimos

satildeo uma ferramenta bastante uacutetil

Usando Meacutetodos NET

Muitos objetos NET permitem executar accedilotildees atraveacutes de

seus meacutetodos (procedimentos ou funccedilotildees) e seus eventos O

Magic xpa permite invocar estes meacutetodos e tambeacutem

interceptar estes eventos

Como objetos NET podem disparar eventos durante a

execuccedilatildeo de programas o Magic xpa permite criar handlers

para estes eventos e definir accedilotildees a serem executadas

dentro destes handlers

Interceptando Eventos NET

Os desenvolvedores Magic xpa satildeo devem estar

familiarizados com o conceito de Evento e Handler de

Evento que eacute nativo da plataforma Vaacuterios objetos NET

expotildeem eventos que podem ser disparados durante a

execuccedilatildeo dos programas Especialmente controles NET

que possuem eventos como ldquoOnMouseClickrdquo O Magic

xpa permite a criaccedilatildeo de handlers para estes eventos

afim de se adicionar regras de negoacutecio a uma accedilatildeo que

ocorreu durante a execuccedilatildeo de um programa

Trabalhando com Construtores

Quando um objeto NET natildeo eacute colocado no formulaacuterio ele necessita

ser instanciado manualmente Isso eacute feito invocando-se o construtor

da classe Os construtores satildeo meacutetodos que possuem o mesmo nome

da classe e que retornam uma instacircncia de objeto da referida classe

Os construtores devem ser acionados pelo editor de expressotildees

usando-se o prefixo DotNet Por exemplo o construtor da classe

StringBuilder deve ser invocado desta forma DotNetStringBuilder()

Definindo Vetores NET

Um vetor (array) NET eacute similar a um vetor Magic xpa Ou

seja variaacuteveis que armazenam muacuteltiplos valores de um

mesmo tipo Mas ao contraacuterio de vetores Magic xpa que

possuem tamanho dinacircmico vetores NET precisam ter

seu tamanho maacuteximo definido na sua instanciaccedilatildeo

No Magic xpa um vetor NET eacute definido adicionando-se

ldquo[ ]rdquo na definiccedilatildeo do tipo O tamanho do vetor deve ser

definido na instanciaccedilatildeo do objeto

Manipulando Exceccedilotildees

Todas as exceccedilotildees que possam ocorrer no acesso a

objetos NET satildeo tratadas internamente pelo Magic xpa e

natildeo satildeo propagadas (throw) para os programas

As funccedilotildees DNExceptionOccurred() e DNException()

permitem consultar o status do uacuteltimo acesso ao NET

realizado pelo Magic xpa Se DNExceptionOccurred()

retornar verdadeiro o uacuteltimo acesso gerou uma

exceccedilatildeo NET Neste caso podemos usar

DNException() para ter acesso a este objeto que

descreve a exceccedilatildeo

Usando Coacutedigo NET

Aleacutem de manipular objetos NET nativamente nos

programas Magic xpa eacute possiacutevel tambeacutem escrever

trechos de coacutedigo NET diretamente em C ou VBNET e

utilizaacute-los Isso eacute feito atraveacutes do comando Invoke

NET

O coacutedigo escrito eacute compilado pelo NET CLR e o Magic

xpa Studio salva este coacutedigo como parte do programa

Durante a execuccedilatildeo o coacutedigo jaacute compilado eacute acionado

pelo Magic xpa Deployment

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 9: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Desafio Disponibilizar o

que haacute de mais avanccedilado e

praacutetico em termos de

tecnologia para nossos

clientesparceiros

desenvolvedores (Magic

xpa Magic mdm) e

integradores (Magic xpi)

A Magic potencializa seus clientes e parceiros em todo o mundo

com tecnologias mais inteligentes que oferecem uma experiecircncia

multicanal de processos loacutegica e dados empresariais

Magic xpa Plataforma

completa para criaccedilatildeo de

soluccedilotildees corporativas para

os ecossistemas Mobile

Desktop Servidores e

RIA

Integraccedilatildeo com NET

A Plataforma de Aplicaccedilotildees Magic xpa permite integraccedilatildeo com qualquer controle ou biblioteca NET

Vocecirc pode evoluir a experiecircncia do usuaacuterios em suas aplicaccedilotildees RIA ou ClienteServidor colocando controles NET diretamente nas interfaces (telas)

Vocecirc pode tambeacutem evoluir as funcionalidades da aplicaccedilatildeo atraveacutes de integraccedilatildeo com formulaacuterios ou bibliotecas NET

Para acessar essas funcionalidades NET eacute necessaacuterio ter o NET framework V20 SP1 (ou superior) instalado nas maacutequinas

Magic em Accedilatildeo

Definindo Variaacuteveis NET

Apoacutes carregar uma biblioteca NET na Plataforma de Aplicaccedilotildees Magic xpa todos seus objetos e meacutetodos estaratildeo acessiacuteveis As bibliotecas NET satildeo carregadas no repositoacuterio de componentes (CRR) dos projetos Magic xpa Podemos definir uma variaacutevel NET para uso em programas do Magic xpa e se o objeto for um controle podemos adicionaacute-lo agrave tela do programa e ajustar suas propriedades

Controlando Propriedades NET

Objetos NET possuem propriedades

e meacutetodos As propriedades satildeo

campos do objeto que podem ser

acessados para consulta eou

modificaccedilatildeo de algum atributo Estes

valores de atributos normalmente satildeo

usados em caacutelculos apresentaccedilatildeo

ao usuaacuterio e etc A relaccedilatildeo entre os

tipos de dados NET e os tipos de

dados Magic xpa pode ser observada

a seguir

Correspondecircncia 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 atraveacutes da palavra-chave this

Somente indexadores cujo iacutendice eacute numeacuterico (int) O Magic xpa soacute

converte vetores simples (sem multi dimensatildeo)

Usando a funccedilatildeo DNCast()

O Magic xpa possui uma funccedilatildeo chamada DNCast() para

conversatildeo expliacutecita de um tipo NET em outro quando

necessaacuterio

Usando a funccedilatildeo DNSet()

O Magic xpa possui uma funccedilatildeo chamada DNSet() para

realizar alteraccedilatildeo do conteuacutedo de propriedades de

objetos NET (NET=DN) Aleacutem disso objetos NET

podem ser acessados diretamente do editor de

expressotildees atraveacutes do prefixo DotNet

Usando Pseudocircnimos (Alias) NET

O sistema de nomeaccedilatildeo de tipos no

NET eacute longo e requer muita digitaccedilatildeo

O Magic xpa permite criar pseudocircnimos

para as bibliotecas carregadas afim de

facilitar o acesso aos tipos com menor

esforccedilo de digitaccedilatildeo Mesmo o Magic

xpa possuindo o recurso intelliSense

no acesso ao NET os pseudocircnimos

satildeo uma ferramenta bastante uacutetil

Usando Meacutetodos NET

Muitos objetos NET permitem executar accedilotildees atraveacutes de

seus meacutetodos (procedimentos ou funccedilotildees) e seus eventos O

Magic xpa permite invocar estes meacutetodos e tambeacutem

interceptar estes eventos

Como objetos NET podem disparar eventos durante a

execuccedilatildeo de programas o Magic xpa permite criar handlers

para estes eventos e definir accedilotildees a serem executadas

dentro destes handlers

Interceptando Eventos NET

Os desenvolvedores Magic xpa satildeo devem estar

familiarizados com o conceito de Evento e Handler de

Evento que eacute nativo da plataforma Vaacuterios objetos NET

expotildeem eventos que podem ser disparados durante a

execuccedilatildeo dos programas Especialmente controles NET

que possuem eventos como ldquoOnMouseClickrdquo O Magic

xpa permite a criaccedilatildeo de handlers para estes eventos

afim de se adicionar regras de negoacutecio a uma accedilatildeo que

ocorreu durante a execuccedilatildeo de um programa

Trabalhando com Construtores

Quando um objeto NET natildeo eacute colocado no formulaacuterio ele necessita

ser instanciado manualmente Isso eacute feito invocando-se o construtor

da classe Os construtores satildeo meacutetodos que possuem o mesmo nome

da classe e que retornam uma instacircncia de objeto da referida classe

Os construtores devem ser acionados pelo editor de expressotildees

usando-se o prefixo DotNet Por exemplo o construtor da classe

StringBuilder deve ser invocado desta forma DotNetStringBuilder()

Definindo Vetores NET

Um vetor (array) NET eacute similar a um vetor Magic xpa Ou

seja variaacuteveis que armazenam muacuteltiplos valores de um

mesmo tipo Mas ao contraacuterio de vetores Magic xpa que

possuem tamanho dinacircmico vetores NET precisam ter

seu tamanho maacuteximo definido na sua instanciaccedilatildeo

No Magic xpa um vetor NET eacute definido adicionando-se

ldquo[ ]rdquo na definiccedilatildeo do tipo O tamanho do vetor deve ser

definido na instanciaccedilatildeo do objeto

Manipulando Exceccedilotildees

Todas as exceccedilotildees que possam ocorrer no acesso a

objetos NET satildeo tratadas internamente pelo Magic xpa e

natildeo satildeo propagadas (throw) para os programas

As funccedilotildees DNExceptionOccurred() e DNException()

permitem consultar o status do uacuteltimo acesso ao NET

realizado pelo Magic xpa Se DNExceptionOccurred()

retornar verdadeiro o uacuteltimo acesso gerou uma

exceccedilatildeo NET Neste caso podemos usar

DNException() para ter acesso a este objeto que

descreve a exceccedilatildeo

Usando Coacutedigo NET

Aleacutem de manipular objetos NET nativamente nos

programas Magic xpa eacute possiacutevel tambeacutem escrever

trechos de coacutedigo NET diretamente em C ou VBNET e

utilizaacute-los Isso eacute feito atraveacutes do comando Invoke

NET

O coacutedigo escrito eacute compilado pelo NET CLR e o Magic

xpa Studio salva este coacutedigo como parte do programa

Durante a execuccedilatildeo o coacutedigo jaacute compilado eacute acionado

pelo Magic xpa Deployment

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 10: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

A Magic potencializa seus clientes e parceiros em todo o mundo

com tecnologias mais inteligentes que oferecem uma experiecircncia

multicanal de processos loacutegica e dados empresariais

Magic xpa Plataforma

completa para criaccedilatildeo de

soluccedilotildees corporativas para

os ecossistemas Mobile

Desktop Servidores e

RIA

Integraccedilatildeo com NET

A Plataforma de Aplicaccedilotildees Magic xpa permite integraccedilatildeo com qualquer controle ou biblioteca NET

Vocecirc pode evoluir a experiecircncia do usuaacuterios em suas aplicaccedilotildees RIA ou ClienteServidor colocando controles NET diretamente nas interfaces (telas)

Vocecirc pode tambeacutem evoluir as funcionalidades da aplicaccedilatildeo atraveacutes de integraccedilatildeo com formulaacuterios ou bibliotecas NET

Para acessar essas funcionalidades NET eacute necessaacuterio ter o NET framework V20 SP1 (ou superior) instalado nas maacutequinas

Magic em Accedilatildeo

Definindo Variaacuteveis NET

Apoacutes carregar uma biblioteca NET na Plataforma de Aplicaccedilotildees Magic xpa todos seus objetos e meacutetodos estaratildeo acessiacuteveis As bibliotecas NET satildeo carregadas no repositoacuterio de componentes (CRR) dos projetos Magic xpa Podemos definir uma variaacutevel NET para uso em programas do Magic xpa e se o objeto for um controle podemos adicionaacute-lo agrave tela do programa e ajustar suas propriedades

Controlando Propriedades NET

Objetos NET possuem propriedades

e meacutetodos As propriedades satildeo

campos do objeto que podem ser

acessados para consulta eou

modificaccedilatildeo de algum atributo Estes

valores de atributos normalmente satildeo

usados em caacutelculos apresentaccedilatildeo

ao usuaacuterio e etc A relaccedilatildeo entre os

tipos de dados NET e os tipos de

dados Magic xpa pode ser observada

a seguir

Correspondecircncia 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 atraveacutes da palavra-chave this

Somente indexadores cujo iacutendice eacute numeacuterico (int) O Magic xpa soacute

converte vetores simples (sem multi dimensatildeo)

Usando a funccedilatildeo DNCast()

O Magic xpa possui uma funccedilatildeo chamada DNCast() para

conversatildeo expliacutecita de um tipo NET em outro quando

necessaacuterio

Usando a funccedilatildeo DNSet()

O Magic xpa possui uma funccedilatildeo chamada DNSet() para

realizar alteraccedilatildeo do conteuacutedo de propriedades de

objetos NET (NET=DN) Aleacutem disso objetos NET

podem ser acessados diretamente do editor de

expressotildees atraveacutes do prefixo DotNet

Usando Pseudocircnimos (Alias) NET

O sistema de nomeaccedilatildeo de tipos no

NET eacute longo e requer muita digitaccedilatildeo

O Magic xpa permite criar pseudocircnimos

para as bibliotecas carregadas afim de

facilitar o acesso aos tipos com menor

esforccedilo de digitaccedilatildeo Mesmo o Magic

xpa possuindo o recurso intelliSense

no acesso ao NET os pseudocircnimos

satildeo uma ferramenta bastante uacutetil

Usando Meacutetodos NET

Muitos objetos NET permitem executar accedilotildees atraveacutes de

seus meacutetodos (procedimentos ou funccedilotildees) e seus eventos O

Magic xpa permite invocar estes meacutetodos e tambeacutem

interceptar estes eventos

Como objetos NET podem disparar eventos durante a

execuccedilatildeo de programas o Magic xpa permite criar handlers

para estes eventos e definir accedilotildees a serem executadas

dentro destes handlers

Interceptando Eventos NET

Os desenvolvedores Magic xpa satildeo devem estar

familiarizados com o conceito de Evento e Handler de

Evento que eacute nativo da plataforma Vaacuterios objetos NET

expotildeem eventos que podem ser disparados durante a

execuccedilatildeo dos programas Especialmente controles NET

que possuem eventos como ldquoOnMouseClickrdquo O Magic

xpa permite a criaccedilatildeo de handlers para estes eventos

afim de se adicionar regras de negoacutecio a uma accedilatildeo que

ocorreu durante a execuccedilatildeo de um programa

Trabalhando com Construtores

Quando um objeto NET natildeo eacute colocado no formulaacuterio ele necessita

ser instanciado manualmente Isso eacute feito invocando-se o construtor

da classe Os construtores satildeo meacutetodos que possuem o mesmo nome

da classe e que retornam uma instacircncia de objeto da referida classe

Os construtores devem ser acionados pelo editor de expressotildees

usando-se o prefixo DotNet Por exemplo o construtor da classe

StringBuilder deve ser invocado desta forma DotNetStringBuilder()

Definindo Vetores NET

Um vetor (array) NET eacute similar a um vetor Magic xpa Ou

seja variaacuteveis que armazenam muacuteltiplos valores de um

mesmo tipo Mas ao contraacuterio de vetores Magic xpa que

possuem tamanho dinacircmico vetores NET precisam ter

seu tamanho maacuteximo definido na sua instanciaccedilatildeo

No Magic xpa um vetor NET eacute definido adicionando-se

ldquo[ ]rdquo na definiccedilatildeo do tipo O tamanho do vetor deve ser

definido na instanciaccedilatildeo do objeto

Manipulando Exceccedilotildees

Todas as exceccedilotildees que possam ocorrer no acesso a

objetos NET satildeo tratadas internamente pelo Magic xpa e

natildeo satildeo propagadas (throw) para os programas

As funccedilotildees DNExceptionOccurred() e DNException()

permitem consultar o status do uacuteltimo acesso ao NET

realizado pelo Magic xpa Se DNExceptionOccurred()

retornar verdadeiro o uacuteltimo acesso gerou uma

exceccedilatildeo NET Neste caso podemos usar

DNException() para ter acesso a este objeto que

descreve a exceccedilatildeo

Usando Coacutedigo NET

Aleacutem de manipular objetos NET nativamente nos

programas Magic xpa eacute possiacutevel tambeacutem escrever

trechos de coacutedigo NET diretamente em C ou VBNET e

utilizaacute-los Isso eacute feito atraveacutes do comando Invoke

NET

O coacutedigo escrito eacute compilado pelo NET CLR e o Magic

xpa Studio salva este coacutedigo como parte do programa

Durante a execuccedilatildeo o coacutedigo jaacute compilado eacute acionado

pelo Magic xpa Deployment

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 11: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Magic xpa Plataforma

completa para criaccedilatildeo de

soluccedilotildees corporativas para

os ecossistemas Mobile

Desktop Servidores e

RIA

Integraccedilatildeo com NET

A Plataforma de Aplicaccedilotildees Magic xpa permite integraccedilatildeo com qualquer controle ou biblioteca NET

Vocecirc pode evoluir a experiecircncia do usuaacuterios em suas aplicaccedilotildees RIA ou ClienteServidor colocando controles NET diretamente nas interfaces (telas)

Vocecirc pode tambeacutem evoluir as funcionalidades da aplicaccedilatildeo atraveacutes de integraccedilatildeo com formulaacuterios ou bibliotecas NET

Para acessar essas funcionalidades NET eacute necessaacuterio ter o NET framework V20 SP1 (ou superior) instalado nas maacutequinas

Magic em Accedilatildeo

Definindo Variaacuteveis NET

Apoacutes carregar uma biblioteca NET na Plataforma de Aplicaccedilotildees Magic xpa todos seus objetos e meacutetodos estaratildeo acessiacuteveis As bibliotecas NET satildeo carregadas no repositoacuterio de componentes (CRR) dos projetos Magic xpa Podemos definir uma variaacutevel NET para uso em programas do Magic xpa e se o objeto for um controle podemos adicionaacute-lo agrave tela do programa e ajustar suas propriedades

Controlando Propriedades NET

Objetos NET possuem propriedades

e meacutetodos As propriedades satildeo

campos do objeto que podem ser

acessados para consulta eou

modificaccedilatildeo de algum atributo Estes

valores de atributos normalmente satildeo

usados em caacutelculos apresentaccedilatildeo

ao usuaacuterio e etc A relaccedilatildeo entre os

tipos de dados NET e os tipos de

dados Magic xpa pode ser observada

a seguir

Correspondecircncia 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 atraveacutes da palavra-chave this

Somente indexadores cujo iacutendice eacute numeacuterico (int) O Magic xpa soacute

converte vetores simples (sem multi dimensatildeo)

Usando a funccedilatildeo DNCast()

O Magic xpa possui uma funccedilatildeo chamada DNCast() para

conversatildeo expliacutecita de um tipo NET em outro quando

necessaacuterio

Usando a funccedilatildeo DNSet()

O Magic xpa possui uma funccedilatildeo chamada DNSet() para

realizar alteraccedilatildeo do conteuacutedo de propriedades de

objetos NET (NET=DN) Aleacutem disso objetos NET

podem ser acessados diretamente do editor de

expressotildees atraveacutes do prefixo DotNet

Usando Pseudocircnimos (Alias) NET

O sistema de nomeaccedilatildeo de tipos no

NET eacute longo e requer muita digitaccedilatildeo

O Magic xpa permite criar pseudocircnimos

para as bibliotecas carregadas afim de

facilitar o acesso aos tipos com menor

esforccedilo de digitaccedilatildeo Mesmo o Magic

xpa possuindo o recurso intelliSense

no acesso ao NET os pseudocircnimos

satildeo uma ferramenta bastante uacutetil

Usando Meacutetodos NET

Muitos objetos NET permitem executar accedilotildees atraveacutes de

seus meacutetodos (procedimentos ou funccedilotildees) e seus eventos O

Magic xpa permite invocar estes meacutetodos e tambeacutem

interceptar estes eventos

Como objetos NET podem disparar eventos durante a

execuccedilatildeo de programas o Magic xpa permite criar handlers

para estes eventos e definir accedilotildees a serem executadas

dentro destes handlers

Interceptando Eventos NET

Os desenvolvedores Magic xpa satildeo devem estar

familiarizados com o conceito de Evento e Handler de

Evento que eacute nativo da plataforma Vaacuterios objetos NET

expotildeem eventos que podem ser disparados durante a

execuccedilatildeo dos programas Especialmente controles NET

que possuem eventos como ldquoOnMouseClickrdquo O Magic

xpa permite a criaccedilatildeo de handlers para estes eventos

afim de se adicionar regras de negoacutecio a uma accedilatildeo que

ocorreu durante a execuccedilatildeo de um programa

Trabalhando com Construtores

Quando um objeto NET natildeo eacute colocado no formulaacuterio ele necessita

ser instanciado manualmente Isso eacute feito invocando-se o construtor

da classe Os construtores satildeo meacutetodos que possuem o mesmo nome

da classe e que retornam uma instacircncia de objeto da referida classe

Os construtores devem ser acionados pelo editor de expressotildees

usando-se o prefixo DotNet Por exemplo o construtor da classe

StringBuilder deve ser invocado desta forma DotNetStringBuilder()

Definindo Vetores NET

Um vetor (array) NET eacute similar a um vetor Magic xpa Ou

seja variaacuteveis que armazenam muacuteltiplos valores de um

mesmo tipo Mas ao contraacuterio de vetores Magic xpa que

possuem tamanho dinacircmico vetores NET precisam ter

seu tamanho maacuteximo definido na sua instanciaccedilatildeo

No Magic xpa um vetor NET eacute definido adicionando-se

ldquo[ ]rdquo na definiccedilatildeo do tipo O tamanho do vetor deve ser

definido na instanciaccedilatildeo do objeto

Manipulando Exceccedilotildees

Todas as exceccedilotildees que possam ocorrer no acesso a

objetos NET satildeo tratadas internamente pelo Magic xpa e

natildeo satildeo propagadas (throw) para os programas

As funccedilotildees DNExceptionOccurred() e DNException()

permitem consultar o status do uacuteltimo acesso ao NET

realizado pelo Magic xpa Se DNExceptionOccurred()

retornar verdadeiro o uacuteltimo acesso gerou uma

exceccedilatildeo NET Neste caso podemos usar

DNException() para ter acesso a este objeto que

descreve a exceccedilatildeo

Usando Coacutedigo NET

Aleacutem de manipular objetos NET nativamente nos

programas Magic xpa eacute possiacutevel tambeacutem escrever

trechos de coacutedigo NET diretamente em C ou VBNET e

utilizaacute-los Isso eacute feito atraveacutes do comando Invoke

NET

O coacutedigo escrito eacute compilado pelo NET CLR e o Magic

xpa Studio salva este coacutedigo como parte do programa

Durante a execuccedilatildeo o coacutedigo jaacute compilado eacute acionado

pelo Magic xpa Deployment

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 12: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Integraccedilatildeo com NET

A Plataforma de Aplicaccedilotildees Magic xpa permite integraccedilatildeo com qualquer controle ou biblioteca NET

Vocecirc pode evoluir a experiecircncia do usuaacuterios em suas aplicaccedilotildees RIA ou ClienteServidor colocando controles NET diretamente nas interfaces (telas)

Vocecirc pode tambeacutem evoluir as funcionalidades da aplicaccedilatildeo atraveacutes de integraccedilatildeo com formulaacuterios ou bibliotecas NET

Para acessar essas funcionalidades NET eacute necessaacuterio ter o NET framework V20 SP1 (ou superior) instalado nas maacutequinas

Magic em Accedilatildeo

Definindo Variaacuteveis NET

Apoacutes carregar uma biblioteca NET na Plataforma de Aplicaccedilotildees Magic xpa todos seus objetos e meacutetodos estaratildeo acessiacuteveis As bibliotecas NET satildeo carregadas no repositoacuterio de componentes (CRR) dos projetos Magic xpa Podemos definir uma variaacutevel NET para uso em programas do Magic xpa e se o objeto for um controle podemos adicionaacute-lo agrave tela do programa e ajustar suas propriedades

Controlando Propriedades NET

Objetos NET possuem propriedades

e meacutetodos As propriedades satildeo

campos do objeto que podem ser

acessados para consulta eou

modificaccedilatildeo de algum atributo Estes

valores de atributos normalmente satildeo

usados em caacutelculos apresentaccedilatildeo

ao usuaacuterio e etc A relaccedilatildeo entre os

tipos de dados NET e os tipos de

dados Magic xpa pode ser observada

a seguir

Correspondecircncia 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 atraveacutes da palavra-chave this

Somente indexadores cujo iacutendice eacute numeacuterico (int) O Magic xpa soacute

converte vetores simples (sem multi dimensatildeo)

Usando a funccedilatildeo DNCast()

O Magic xpa possui uma funccedilatildeo chamada DNCast() para

conversatildeo expliacutecita de um tipo NET em outro quando

necessaacuterio

Usando a funccedilatildeo DNSet()

O Magic xpa possui uma funccedilatildeo chamada DNSet() para

realizar alteraccedilatildeo do conteuacutedo de propriedades de

objetos NET (NET=DN) Aleacutem disso objetos NET

podem ser acessados diretamente do editor de

expressotildees atraveacutes do prefixo DotNet

Usando Pseudocircnimos (Alias) NET

O sistema de nomeaccedilatildeo de tipos no

NET eacute longo e requer muita digitaccedilatildeo

O Magic xpa permite criar pseudocircnimos

para as bibliotecas carregadas afim de

facilitar o acesso aos tipos com menor

esforccedilo de digitaccedilatildeo Mesmo o Magic

xpa possuindo o recurso intelliSense

no acesso ao NET os pseudocircnimos

satildeo uma ferramenta bastante uacutetil

Usando Meacutetodos NET

Muitos objetos NET permitem executar accedilotildees atraveacutes de

seus meacutetodos (procedimentos ou funccedilotildees) e seus eventos O

Magic xpa permite invocar estes meacutetodos e tambeacutem

interceptar estes eventos

Como objetos NET podem disparar eventos durante a

execuccedilatildeo de programas o Magic xpa permite criar handlers

para estes eventos e definir accedilotildees a serem executadas

dentro destes handlers

Interceptando Eventos NET

Os desenvolvedores Magic xpa satildeo devem estar

familiarizados com o conceito de Evento e Handler de

Evento que eacute nativo da plataforma Vaacuterios objetos NET

expotildeem eventos que podem ser disparados durante a

execuccedilatildeo dos programas Especialmente controles NET

que possuem eventos como ldquoOnMouseClickrdquo O Magic

xpa permite a criaccedilatildeo de handlers para estes eventos

afim de se adicionar regras de negoacutecio a uma accedilatildeo que

ocorreu durante a execuccedilatildeo de um programa

Trabalhando com Construtores

Quando um objeto NET natildeo eacute colocado no formulaacuterio ele necessita

ser instanciado manualmente Isso eacute feito invocando-se o construtor

da classe Os construtores satildeo meacutetodos que possuem o mesmo nome

da classe e que retornam uma instacircncia de objeto da referida classe

Os construtores devem ser acionados pelo editor de expressotildees

usando-se o prefixo DotNet Por exemplo o construtor da classe

StringBuilder deve ser invocado desta forma DotNetStringBuilder()

Definindo Vetores NET

Um vetor (array) NET eacute similar a um vetor Magic xpa Ou

seja variaacuteveis que armazenam muacuteltiplos valores de um

mesmo tipo Mas ao contraacuterio de vetores Magic xpa que

possuem tamanho dinacircmico vetores NET precisam ter

seu tamanho maacuteximo definido na sua instanciaccedilatildeo

No Magic xpa um vetor NET eacute definido adicionando-se

ldquo[ ]rdquo na definiccedilatildeo do tipo O tamanho do vetor deve ser

definido na instanciaccedilatildeo do objeto

Manipulando Exceccedilotildees

Todas as exceccedilotildees que possam ocorrer no acesso a

objetos NET satildeo tratadas internamente pelo Magic xpa e

natildeo satildeo propagadas (throw) para os programas

As funccedilotildees DNExceptionOccurred() e DNException()

permitem consultar o status do uacuteltimo acesso ao NET

realizado pelo Magic xpa Se DNExceptionOccurred()

retornar verdadeiro o uacuteltimo acesso gerou uma

exceccedilatildeo NET Neste caso podemos usar

DNException() para ter acesso a este objeto que

descreve a exceccedilatildeo

Usando Coacutedigo NET

Aleacutem de manipular objetos NET nativamente nos

programas Magic xpa eacute possiacutevel tambeacutem escrever

trechos de coacutedigo NET diretamente em C ou VBNET e

utilizaacute-los Isso eacute feito atraveacutes do comando Invoke

NET

O coacutedigo escrito eacute compilado pelo NET CLR e o Magic

xpa Studio salva este coacutedigo como parte do programa

Durante a execuccedilatildeo o coacutedigo jaacute compilado eacute acionado

pelo Magic xpa Deployment

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 13: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Magic em Accedilatildeo

Definindo Variaacuteveis NET

Apoacutes carregar uma biblioteca NET na Plataforma de Aplicaccedilotildees Magic xpa todos seus objetos e meacutetodos estaratildeo acessiacuteveis As bibliotecas NET satildeo carregadas no repositoacuterio de componentes (CRR) dos projetos Magic xpa Podemos definir uma variaacutevel NET para uso em programas do Magic xpa e se o objeto for um controle podemos adicionaacute-lo agrave tela do programa e ajustar suas propriedades

Controlando Propriedades NET

Objetos NET possuem propriedades

e meacutetodos As propriedades satildeo

campos do objeto que podem ser

acessados para consulta eou

modificaccedilatildeo de algum atributo Estes

valores de atributos normalmente satildeo

usados em caacutelculos apresentaccedilatildeo

ao usuaacuterio e etc A relaccedilatildeo entre os

tipos de dados NET e os tipos de

dados Magic xpa pode ser observada

a seguir

Correspondecircncia 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 atraveacutes da palavra-chave this

Somente indexadores cujo iacutendice eacute numeacuterico (int) O Magic xpa soacute

converte vetores simples (sem multi dimensatildeo)

Usando a funccedilatildeo DNCast()

O Magic xpa possui uma funccedilatildeo chamada DNCast() para

conversatildeo expliacutecita de um tipo NET em outro quando

necessaacuterio

Usando a funccedilatildeo DNSet()

O Magic xpa possui uma funccedilatildeo chamada DNSet() para

realizar alteraccedilatildeo do conteuacutedo de propriedades de

objetos NET (NET=DN) Aleacutem disso objetos NET

podem ser acessados diretamente do editor de

expressotildees atraveacutes do prefixo DotNet

Usando Pseudocircnimos (Alias) NET

O sistema de nomeaccedilatildeo de tipos no

NET eacute longo e requer muita digitaccedilatildeo

O Magic xpa permite criar pseudocircnimos

para as bibliotecas carregadas afim de

facilitar o acesso aos tipos com menor

esforccedilo de digitaccedilatildeo Mesmo o Magic

xpa possuindo o recurso intelliSense

no acesso ao NET os pseudocircnimos

satildeo uma ferramenta bastante uacutetil

Usando Meacutetodos NET

Muitos objetos NET permitem executar accedilotildees atraveacutes de

seus meacutetodos (procedimentos ou funccedilotildees) e seus eventos O

Magic xpa permite invocar estes meacutetodos e tambeacutem

interceptar estes eventos

Como objetos NET podem disparar eventos durante a

execuccedilatildeo de programas o Magic xpa permite criar handlers

para estes eventos e definir accedilotildees a serem executadas

dentro destes handlers

Interceptando Eventos NET

Os desenvolvedores Magic xpa satildeo devem estar

familiarizados com o conceito de Evento e Handler de

Evento que eacute nativo da plataforma Vaacuterios objetos NET

expotildeem eventos que podem ser disparados durante a

execuccedilatildeo dos programas Especialmente controles NET

que possuem eventos como ldquoOnMouseClickrdquo O Magic

xpa permite a criaccedilatildeo de handlers para estes eventos

afim de se adicionar regras de negoacutecio a uma accedilatildeo que

ocorreu durante a execuccedilatildeo de um programa

Trabalhando com Construtores

Quando um objeto NET natildeo eacute colocado no formulaacuterio ele necessita

ser instanciado manualmente Isso eacute feito invocando-se o construtor

da classe Os construtores satildeo meacutetodos que possuem o mesmo nome

da classe e que retornam uma instacircncia de objeto da referida classe

Os construtores devem ser acionados pelo editor de expressotildees

usando-se o prefixo DotNet Por exemplo o construtor da classe

StringBuilder deve ser invocado desta forma DotNetStringBuilder()

Definindo Vetores NET

Um vetor (array) NET eacute similar a um vetor Magic xpa Ou

seja variaacuteveis que armazenam muacuteltiplos valores de um

mesmo tipo Mas ao contraacuterio de vetores Magic xpa que

possuem tamanho dinacircmico vetores NET precisam ter

seu tamanho maacuteximo definido na sua instanciaccedilatildeo

No Magic xpa um vetor NET eacute definido adicionando-se

ldquo[ ]rdquo na definiccedilatildeo do tipo O tamanho do vetor deve ser

definido na instanciaccedilatildeo do objeto

Manipulando Exceccedilotildees

Todas as exceccedilotildees que possam ocorrer no acesso a

objetos NET satildeo tratadas internamente pelo Magic xpa e

natildeo satildeo propagadas (throw) para os programas

As funccedilotildees DNExceptionOccurred() e DNException()

permitem consultar o status do uacuteltimo acesso ao NET

realizado pelo Magic xpa Se DNExceptionOccurred()

retornar verdadeiro o uacuteltimo acesso gerou uma

exceccedilatildeo NET Neste caso podemos usar

DNException() para ter acesso a este objeto que

descreve a exceccedilatildeo

Usando Coacutedigo NET

Aleacutem de manipular objetos NET nativamente nos

programas Magic xpa eacute possiacutevel tambeacutem escrever

trechos de coacutedigo NET diretamente em C ou VBNET e

utilizaacute-los Isso eacute feito atraveacutes do comando Invoke

NET

O coacutedigo escrito eacute compilado pelo NET CLR e o Magic

xpa Studio salva este coacutedigo como parte do programa

Durante a execuccedilatildeo o coacutedigo jaacute compilado eacute acionado

pelo Magic xpa Deployment

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 14: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Definindo Variaacuteveis NET

Apoacutes carregar uma biblioteca NET na Plataforma de Aplicaccedilotildees Magic xpa todos seus objetos e meacutetodos estaratildeo acessiacuteveis As bibliotecas NET satildeo carregadas no repositoacuterio de componentes (CRR) dos projetos Magic xpa Podemos definir uma variaacutevel NET para uso em programas do Magic xpa e se o objeto for um controle podemos adicionaacute-lo agrave tela do programa e ajustar suas propriedades

Controlando Propriedades NET

Objetos NET possuem propriedades

e meacutetodos As propriedades satildeo

campos do objeto que podem ser

acessados para consulta eou

modificaccedilatildeo de algum atributo Estes

valores de atributos normalmente satildeo

usados em caacutelculos apresentaccedilatildeo

ao usuaacuterio e etc A relaccedilatildeo entre os

tipos de dados NET e os tipos de

dados Magic xpa pode ser observada

a seguir

Correspondecircncia 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 atraveacutes da palavra-chave this

Somente indexadores cujo iacutendice eacute numeacuterico (int) O Magic xpa soacute

converte vetores simples (sem multi dimensatildeo)

Usando a funccedilatildeo DNCast()

O Magic xpa possui uma funccedilatildeo chamada DNCast() para

conversatildeo expliacutecita de um tipo NET em outro quando

necessaacuterio

Usando a funccedilatildeo DNSet()

O Magic xpa possui uma funccedilatildeo chamada DNSet() para

realizar alteraccedilatildeo do conteuacutedo de propriedades de

objetos NET (NET=DN) Aleacutem disso objetos NET

podem ser acessados diretamente do editor de

expressotildees atraveacutes do prefixo DotNet

Usando Pseudocircnimos (Alias) NET

O sistema de nomeaccedilatildeo de tipos no

NET eacute longo e requer muita digitaccedilatildeo

O Magic xpa permite criar pseudocircnimos

para as bibliotecas carregadas afim de

facilitar o acesso aos tipos com menor

esforccedilo de digitaccedilatildeo Mesmo o Magic

xpa possuindo o recurso intelliSense

no acesso ao NET os pseudocircnimos

satildeo uma ferramenta bastante uacutetil

Usando Meacutetodos NET

Muitos objetos NET permitem executar accedilotildees atraveacutes de

seus meacutetodos (procedimentos ou funccedilotildees) e seus eventos O

Magic xpa permite invocar estes meacutetodos e tambeacutem

interceptar estes eventos

Como objetos NET podem disparar eventos durante a

execuccedilatildeo de programas o Magic xpa permite criar handlers

para estes eventos e definir accedilotildees a serem executadas

dentro destes handlers

Interceptando Eventos NET

Os desenvolvedores Magic xpa satildeo devem estar

familiarizados com o conceito de Evento e Handler de

Evento que eacute nativo da plataforma Vaacuterios objetos NET

expotildeem eventos que podem ser disparados durante a

execuccedilatildeo dos programas Especialmente controles NET

que possuem eventos como ldquoOnMouseClickrdquo O Magic

xpa permite a criaccedilatildeo de handlers para estes eventos

afim de se adicionar regras de negoacutecio a uma accedilatildeo que

ocorreu durante a execuccedilatildeo de um programa

Trabalhando com Construtores

Quando um objeto NET natildeo eacute colocado no formulaacuterio ele necessita

ser instanciado manualmente Isso eacute feito invocando-se o construtor

da classe Os construtores satildeo meacutetodos que possuem o mesmo nome

da classe e que retornam uma instacircncia de objeto da referida classe

Os construtores devem ser acionados pelo editor de expressotildees

usando-se o prefixo DotNet Por exemplo o construtor da classe

StringBuilder deve ser invocado desta forma DotNetStringBuilder()

Definindo Vetores NET

Um vetor (array) NET eacute similar a um vetor Magic xpa Ou

seja variaacuteveis que armazenam muacuteltiplos valores de um

mesmo tipo Mas ao contraacuterio de vetores Magic xpa que

possuem tamanho dinacircmico vetores NET precisam ter

seu tamanho maacuteximo definido na sua instanciaccedilatildeo

No Magic xpa um vetor NET eacute definido adicionando-se

ldquo[ ]rdquo na definiccedilatildeo do tipo O tamanho do vetor deve ser

definido na instanciaccedilatildeo do objeto

Manipulando Exceccedilotildees

Todas as exceccedilotildees que possam ocorrer no acesso a

objetos NET satildeo tratadas internamente pelo Magic xpa e

natildeo satildeo propagadas (throw) para os programas

As funccedilotildees DNExceptionOccurred() e DNException()

permitem consultar o status do uacuteltimo acesso ao NET

realizado pelo Magic xpa Se DNExceptionOccurred()

retornar verdadeiro o uacuteltimo acesso gerou uma

exceccedilatildeo NET Neste caso podemos usar

DNException() para ter acesso a este objeto que

descreve a exceccedilatildeo

Usando Coacutedigo NET

Aleacutem de manipular objetos NET nativamente nos

programas Magic xpa eacute possiacutevel tambeacutem escrever

trechos de coacutedigo NET diretamente em C ou VBNET e

utilizaacute-los Isso eacute feito atraveacutes do comando Invoke

NET

O coacutedigo escrito eacute compilado pelo NET CLR e o Magic

xpa Studio salva este coacutedigo como parte do programa

Durante a execuccedilatildeo o coacutedigo jaacute compilado eacute acionado

pelo Magic xpa Deployment

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 15: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Controlando Propriedades NET

Objetos NET possuem propriedades

e meacutetodos As propriedades satildeo

campos do objeto que podem ser

acessados para consulta eou

modificaccedilatildeo de algum atributo Estes

valores de atributos normalmente satildeo

usados em caacutelculos apresentaccedilatildeo

ao usuaacuterio e etc A relaccedilatildeo entre os

tipos de dados NET e os tipos de

dados Magic xpa pode ser observada

a seguir

Correspondecircncia 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 atraveacutes da palavra-chave this

Somente indexadores cujo iacutendice eacute numeacuterico (int) O Magic xpa soacute

converte vetores simples (sem multi dimensatildeo)

Usando a funccedilatildeo DNCast()

O Magic xpa possui uma funccedilatildeo chamada DNCast() para

conversatildeo expliacutecita de um tipo NET em outro quando

necessaacuterio

Usando a funccedilatildeo DNSet()

O Magic xpa possui uma funccedilatildeo chamada DNSet() para

realizar alteraccedilatildeo do conteuacutedo de propriedades de

objetos NET (NET=DN) Aleacutem disso objetos NET

podem ser acessados diretamente do editor de

expressotildees atraveacutes do prefixo DotNet

Usando Pseudocircnimos (Alias) NET

O sistema de nomeaccedilatildeo de tipos no

NET eacute longo e requer muita digitaccedilatildeo

O Magic xpa permite criar pseudocircnimos

para as bibliotecas carregadas afim de

facilitar o acesso aos tipos com menor

esforccedilo de digitaccedilatildeo Mesmo o Magic

xpa possuindo o recurso intelliSense

no acesso ao NET os pseudocircnimos

satildeo uma ferramenta bastante uacutetil

Usando Meacutetodos NET

Muitos objetos NET permitem executar accedilotildees atraveacutes de

seus meacutetodos (procedimentos ou funccedilotildees) e seus eventos O

Magic xpa permite invocar estes meacutetodos e tambeacutem

interceptar estes eventos

Como objetos NET podem disparar eventos durante a

execuccedilatildeo de programas o Magic xpa permite criar handlers

para estes eventos e definir accedilotildees a serem executadas

dentro destes handlers

Interceptando Eventos NET

Os desenvolvedores Magic xpa satildeo devem estar

familiarizados com o conceito de Evento e Handler de

Evento que eacute nativo da plataforma Vaacuterios objetos NET

expotildeem eventos que podem ser disparados durante a

execuccedilatildeo dos programas Especialmente controles NET

que possuem eventos como ldquoOnMouseClickrdquo O Magic

xpa permite a criaccedilatildeo de handlers para estes eventos

afim de se adicionar regras de negoacutecio a uma accedilatildeo que

ocorreu durante a execuccedilatildeo de um programa

Trabalhando com Construtores

Quando um objeto NET natildeo eacute colocado no formulaacuterio ele necessita

ser instanciado manualmente Isso eacute feito invocando-se o construtor

da classe Os construtores satildeo meacutetodos que possuem o mesmo nome

da classe e que retornam uma instacircncia de objeto da referida classe

Os construtores devem ser acionados pelo editor de expressotildees

usando-se o prefixo DotNet Por exemplo o construtor da classe

StringBuilder deve ser invocado desta forma DotNetStringBuilder()

Definindo Vetores NET

Um vetor (array) NET eacute similar a um vetor Magic xpa Ou

seja variaacuteveis que armazenam muacuteltiplos valores de um

mesmo tipo Mas ao contraacuterio de vetores Magic xpa que

possuem tamanho dinacircmico vetores NET precisam ter

seu tamanho maacuteximo definido na sua instanciaccedilatildeo

No Magic xpa um vetor NET eacute definido adicionando-se

ldquo[ ]rdquo na definiccedilatildeo do tipo O tamanho do vetor deve ser

definido na instanciaccedilatildeo do objeto

Manipulando Exceccedilotildees

Todas as exceccedilotildees que possam ocorrer no acesso a

objetos NET satildeo tratadas internamente pelo Magic xpa e

natildeo satildeo propagadas (throw) para os programas

As funccedilotildees DNExceptionOccurred() e DNException()

permitem consultar o status do uacuteltimo acesso ao NET

realizado pelo Magic xpa Se DNExceptionOccurred()

retornar verdadeiro o uacuteltimo acesso gerou uma

exceccedilatildeo NET Neste caso podemos usar

DNException() para ter acesso a este objeto que

descreve a exceccedilatildeo

Usando Coacutedigo NET

Aleacutem de manipular objetos NET nativamente nos

programas Magic xpa eacute possiacutevel tambeacutem escrever

trechos de coacutedigo NET diretamente em C ou VBNET e

utilizaacute-los Isso eacute feito atraveacutes do comando Invoke

NET

O coacutedigo escrito eacute compilado pelo NET CLR e o Magic

xpa Studio salva este coacutedigo como parte do programa

Durante a execuccedilatildeo o coacutedigo jaacute compilado eacute acionado

pelo Magic xpa Deployment

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 16: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Correspondecircncia 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 atraveacutes da palavra-chave this

Somente indexadores cujo iacutendice eacute numeacuterico (int) O Magic xpa soacute

converte vetores simples (sem multi dimensatildeo)

Usando a funccedilatildeo DNCast()

O Magic xpa possui uma funccedilatildeo chamada DNCast() para

conversatildeo expliacutecita de um tipo NET em outro quando

necessaacuterio

Usando a funccedilatildeo DNSet()

O Magic xpa possui uma funccedilatildeo chamada DNSet() para

realizar alteraccedilatildeo do conteuacutedo de propriedades de

objetos NET (NET=DN) Aleacutem disso objetos NET

podem ser acessados diretamente do editor de

expressotildees atraveacutes do prefixo DotNet

Usando Pseudocircnimos (Alias) NET

O sistema de nomeaccedilatildeo de tipos no

NET eacute longo e requer muita digitaccedilatildeo

O Magic xpa permite criar pseudocircnimos

para as bibliotecas carregadas afim de

facilitar o acesso aos tipos com menor

esforccedilo de digitaccedilatildeo Mesmo o Magic

xpa possuindo o recurso intelliSense

no acesso ao NET os pseudocircnimos

satildeo uma ferramenta bastante uacutetil

Usando Meacutetodos NET

Muitos objetos NET permitem executar accedilotildees atraveacutes de

seus meacutetodos (procedimentos ou funccedilotildees) e seus eventos O

Magic xpa permite invocar estes meacutetodos e tambeacutem

interceptar estes eventos

Como objetos NET podem disparar eventos durante a

execuccedilatildeo de programas o Magic xpa permite criar handlers

para estes eventos e definir accedilotildees a serem executadas

dentro destes handlers

Interceptando Eventos NET

Os desenvolvedores Magic xpa satildeo devem estar

familiarizados com o conceito de Evento e Handler de

Evento que eacute nativo da plataforma Vaacuterios objetos NET

expotildeem eventos que podem ser disparados durante a

execuccedilatildeo dos programas Especialmente controles NET

que possuem eventos como ldquoOnMouseClickrdquo O Magic

xpa permite a criaccedilatildeo de handlers para estes eventos

afim de se adicionar regras de negoacutecio a uma accedilatildeo que

ocorreu durante a execuccedilatildeo de um programa

Trabalhando com Construtores

Quando um objeto NET natildeo eacute colocado no formulaacuterio ele necessita

ser instanciado manualmente Isso eacute feito invocando-se o construtor

da classe Os construtores satildeo meacutetodos que possuem o mesmo nome

da classe e que retornam uma instacircncia de objeto da referida classe

Os construtores devem ser acionados pelo editor de expressotildees

usando-se o prefixo DotNet Por exemplo o construtor da classe

StringBuilder deve ser invocado desta forma DotNetStringBuilder()

Definindo Vetores NET

Um vetor (array) NET eacute similar a um vetor Magic xpa Ou

seja variaacuteveis que armazenam muacuteltiplos valores de um

mesmo tipo Mas ao contraacuterio de vetores Magic xpa que

possuem tamanho dinacircmico vetores NET precisam ter

seu tamanho maacuteximo definido na sua instanciaccedilatildeo

No Magic xpa um vetor NET eacute definido adicionando-se

ldquo[ ]rdquo na definiccedilatildeo do tipo O tamanho do vetor deve ser

definido na instanciaccedilatildeo do objeto

Manipulando Exceccedilotildees

Todas as exceccedilotildees que possam ocorrer no acesso a

objetos NET satildeo tratadas internamente pelo Magic xpa e

natildeo satildeo propagadas (throw) para os programas

As funccedilotildees DNExceptionOccurred() e DNException()

permitem consultar o status do uacuteltimo acesso ao NET

realizado pelo Magic xpa Se DNExceptionOccurred()

retornar verdadeiro o uacuteltimo acesso gerou uma

exceccedilatildeo NET Neste caso podemos usar

DNException() para ter acesso a este objeto que

descreve a exceccedilatildeo

Usando Coacutedigo NET

Aleacutem de manipular objetos NET nativamente nos

programas Magic xpa eacute possiacutevel tambeacutem escrever

trechos de coacutedigo NET diretamente em C ou VBNET e

utilizaacute-los Isso eacute feito atraveacutes do comando Invoke

NET

O coacutedigo escrito eacute compilado pelo NET CLR e o Magic

xpa Studio salva este coacutedigo como parte do programa

Durante a execuccedilatildeo o coacutedigo jaacute compilado eacute acionado

pelo Magic xpa Deployment

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 17: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Usando a funccedilatildeo DNCast()

O Magic xpa possui uma funccedilatildeo chamada DNCast() para

conversatildeo expliacutecita de um tipo NET em outro quando

necessaacuterio

Usando a funccedilatildeo DNSet()

O Magic xpa possui uma funccedilatildeo chamada DNSet() para

realizar alteraccedilatildeo do conteuacutedo de propriedades de

objetos NET (NET=DN) Aleacutem disso objetos NET

podem ser acessados diretamente do editor de

expressotildees atraveacutes do prefixo DotNet

Usando Pseudocircnimos (Alias) NET

O sistema de nomeaccedilatildeo de tipos no

NET eacute longo e requer muita digitaccedilatildeo

O Magic xpa permite criar pseudocircnimos

para as bibliotecas carregadas afim de

facilitar o acesso aos tipos com menor

esforccedilo de digitaccedilatildeo Mesmo o Magic

xpa possuindo o recurso intelliSense

no acesso ao NET os pseudocircnimos

satildeo uma ferramenta bastante uacutetil

Usando Meacutetodos NET

Muitos objetos NET permitem executar accedilotildees atraveacutes de

seus meacutetodos (procedimentos ou funccedilotildees) e seus eventos O

Magic xpa permite invocar estes meacutetodos e tambeacutem

interceptar estes eventos

Como objetos NET podem disparar eventos durante a

execuccedilatildeo de programas o Magic xpa permite criar handlers

para estes eventos e definir accedilotildees a serem executadas

dentro destes handlers

Interceptando Eventos NET

Os desenvolvedores Magic xpa satildeo devem estar

familiarizados com o conceito de Evento e Handler de

Evento que eacute nativo da plataforma Vaacuterios objetos NET

expotildeem eventos que podem ser disparados durante a

execuccedilatildeo dos programas Especialmente controles NET

que possuem eventos como ldquoOnMouseClickrdquo O Magic

xpa permite a criaccedilatildeo de handlers para estes eventos

afim de se adicionar regras de negoacutecio a uma accedilatildeo que

ocorreu durante a execuccedilatildeo de um programa

Trabalhando com Construtores

Quando um objeto NET natildeo eacute colocado no formulaacuterio ele necessita

ser instanciado manualmente Isso eacute feito invocando-se o construtor

da classe Os construtores satildeo meacutetodos que possuem o mesmo nome

da classe e que retornam uma instacircncia de objeto da referida classe

Os construtores devem ser acionados pelo editor de expressotildees

usando-se o prefixo DotNet Por exemplo o construtor da classe

StringBuilder deve ser invocado desta forma DotNetStringBuilder()

Definindo Vetores NET

Um vetor (array) NET eacute similar a um vetor Magic xpa Ou

seja variaacuteveis que armazenam muacuteltiplos valores de um

mesmo tipo Mas ao contraacuterio de vetores Magic xpa que

possuem tamanho dinacircmico vetores NET precisam ter

seu tamanho maacuteximo definido na sua instanciaccedilatildeo

No Magic xpa um vetor NET eacute definido adicionando-se

ldquo[ ]rdquo na definiccedilatildeo do tipo O tamanho do vetor deve ser

definido na instanciaccedilatildeo do objeto

Manipulando Exceccedilotildees

Todas as exceccedilotildees que possam ocorrer no acesso a

objetos NET satildeo tratadas internamente pelo Magic xpa e

natildeo satildeo propagadas (throw) para os programas

As funccedilotildees DNExceptionOccurred() e DNException()

permitem consultar o status do uacuteltimo acesso ao NET

realizado pelo Magic xpa Se DNExceptionOccurred()

retornar verdadeiro o uacuteltimo acesso gerou uma

exceccedilatildeo NET Neste caso podemos usar

DNException() para ter acesso a este objeto que

descreve a exceccedilatildeo

Usando Coacutedigo NET

Aleacutem de manipular objetos NET nativamente nos

programas Magic xpa eacute possiacutevel tambeacutem escrever

trechos de coacutedigo NET diretamente em C ou VBNET e

utilizaacute-los Isso eacute feito atraveacutes do comando Invoke

NET

O coacutedigo escrito eacute compilado pelo NET CLR e o Magic

xpa Studio salva este coacutedigo como parte do programa

Durante a execuccedilatildeo o coacutedigo jaacute compilado eacute acionado

pelo Magic xpa Deployment

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 18: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Usando a funccedilatildeo DNSet()

O Magic xpa possui uma funccedilatildeo chamada DNSet() para

realizar alteraccedilatildeo do conteuacutedo de propriedades de

objetos NET (NET=DN) Aleacutem disso objetos NET

podem ser acessados diretamente do editor de

expressotildees atraveacutes do prefixo DotNet

Usando Pseudocircnimos (Alias) NET

O sistema de nomeaccedilatildeo de tipos no

NET eacute longo e requer muita digitaccedilatildeo

O Magic xpa permite criar pseudocircnimos

para as bibliotecas carregadas afim de

facilitar o acesso aos tipos com menor

esforccedilo de digitaccedilatildeo Mesmo o Magic

xpa possuindo o recurso intelliSense

no acesso ao NET os pseudocircnimos

satildeo uma ferramenta bastante uacutetil

Usando Meacutetodos NET

Muitos objetos NET permitem executar accedilotildees atraveacutes de

seus meacutetodos (procedimentos ou funccedilotildees) e seus eventos O

Magic xpa permite invocar estes meacutetodos e tambeacutem

interceptar estes eventos

Como objetos NET podem disparar eventos durante a

execuccedilatildeo de programas o Magic xpa permite criar handlers

para estes eventos e definir accedilotildees a serem executadas

dentro destes handlers

Interceptando Eventos NET

Os desenvolvedores Magic xpa satildeo devem estar

familiarizados com o conceito de Evento e Handler de

Evento que eacute nativo da plataforma Vaacuterios objetos NET

expotildeem eventos que podem ser disparados durante a

execuccedilatildeo dos programas Especialmente controles NET

que possuem eventos como ldquoOnMouseClickrdquo O Magic

xpa permite a criaccedilatildeo de handlers para estes eventos

afim de se adicionar regras de negoacutecio a uma accedilatildeo que

ocorreu durante a execuccedilatildeo de um programa

Trabalhando com Construtores

Quando um objeto NET natildeo eacute colocado no formulaacuterio ele necessita

ser instanciado manualmente Isso eacute feito invocando-se o construtor

da classe Os construtores satildeo meacutetodos que possuem o mesmo nome

da classe e que retornam uma instacircncia de objeto da referida classe

Os construtores devem ser acionados pelo editor de expressotildees

usando-se o prefixo DotNet Por exemplo o construtor da classe

StringBuilder deve ser invocado desta forma DotNetStringBuilder()

Definindo Vetores NET

Um vetor (array) NET eacute similar a um vetor Magic xpa Ou

seja variaacuteveis que armazenam muacuteltiplos valores de um

mesmo tipo Mas ao contraacuterio de vetores Magic xpa que

possuem tamanho dinacircmico vetores NET precisam ter

seu tamanho maacuteximo definido na sua instanciaccedilatildeo

No Magic xpa um vetor NET eacute definido adicionando-se

ldquo[ ]rdquo na definiccedilatildeo do tipo O tamanho do vetor deve ser

definido na instanciaccedilatildeo do objeto

Manipulando Exceccedilotildees

Todas as exceccedilotildees que possam ocorrer no acesso a

objetos NET satildeo tratadas internamente pelo Magic xpa e

natildeo satildeo propagadas (throw) para os programas

As funccedilotildees DNExceptionOccurred() e DNException()

permitem consultar o status do uacuteltimo acesso ao NET

realizado pelo Magic xpa Se DNExceptionOccurred()

retornar verdadeiro o uacuteltimo acesso gerou uma

exceccedilatildeo NET Neste caso podemos usar

DNException() para ter acesso a este objeto que

descreve a exceccedilatildeo

Usando Coacutedigo NET

Aleacutem de manipular objetos NET nativamente nos

programas Magic xpa eacute possiacutevel tambeacutem escrever

trechos de coacutedigo NET diretamente em C ou VBNET e

utilizaacute-los Isso eacute feito atraveacutes do comando Invoke

NET

O coacutedigo escrito eacute compilado pelo NET CLR e o Magic

xpa Studio salva este coacutedigo como parte do programa

Durante a execuccedilatildeo o coacutedigo jaacute compilado eacute acionado

pelo Magic xpa Deployment

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 19: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Usando Pseudocircnimos (Alias) NET

O sistema de nomeaccedilatildeo de tipos no

NET eacute longo e requer muita digitaccedilatildeo

O Magic xpa permite criar pseudocircnimos

para as bibliotecas carregadas afim de

facilitar o acesso aos tipos com menor

esforccedilo de digitaccedilatildeo Mesmo o Magic

xpa possuindo o recurso intelliSense

no acesso ao NET os pseudocircnimos

satildeo uma ferramenta bastante uacutetil

Usando Meacutetodos NET

Muitos objetos NET permitem executar accedilotildees atraveacutes de

seus meacutetodos (procedimentos ou funccedilotildees) e seus eventos O

Magic xpa permite invocar estes meacutetodos e tambeacutem

interceptar estes eventos

Como objetos NET podem disparar eventos durante a

execuccedilatildeo de programas o Magic xpa permite criar handlers

para estes eventos e definir accedilotildees a serem executadas

dentro destes handlers

Interceptando Eventos NET

Os desenvolvedores Magic xpa satildeo devem estar

familiarizados com o conceito de Evento e Handler de

Evento que eacute nativo da plataforma Vaacuterios objetos NET

expotildeem eventos que podem ser disparados durante a

execuccedilatildeo dos programas Especialmente controles NET

que possuem eventos como ldquoOnMouseClickrdquo O Magic

xpa permite a criaccedilatildeo de handlers para estes eventos

afim de se adicionar regras de negoacutecio a uma accedilatildeo que

ocorreu durante a execuccedilatildeo de um programa

Trabalhando com Construtores

Quando um objeto NET natildeo eacute colocado no formulaacuterio ele necessita

ser instanciado manualmente Isso eacute feito invocando-se o construtor

da classe Os construtores satildeo meacutetodos que possuem o mesmo nome

da classe e que retornam uma instacircncia de objeto da referida classe

Os construtores devem ser acionados pelo editor de expressotildees

usando-se o prefixo DotNet Por exemplo o construtor da classe

StringBuilder deve ser invocado desta forma DotNetStringBuilder()

Definindo Vetores NET

Um vetor (array) NET eacute similar a um vetor Magic xpa Ou

seja variaacuteveis que armazenam muacuteltiplos valores de um

mesmo tipo Mas ao contraacuterio de vetores Magic xpa que

possuem tamanho dinacircmico vetores NET precisam ter

seu tamanho maacuteximo definido na sua instanciaccedilatildeo

No Magic xpa um vetor NET eacute definido adicionando-se

ldquo[ ]rdquo na definiccedilatildeo do tipo O tamanho do vetor deve ser

definido na instanciaccedilatildeo do objeto

Manipulando Exceccedilotildees

Todas as exceccedilotildees que possam ocorrer no acesso a

objetos NET satildeo tratadas internamente pelo Magic xpa e

natildeo satildeo propagadas (throw) para os programas

As funccedilotildees DNExceptionOccurred() e DNException()

permitem consultar o status do uacuteltimo acesso ao NET

realizado pelo Magic xpa Se DNExceptionOccurred()

retornar verdadeiro o uacuteltimo acesso gerou uma

exceccedilatildeo NET Neste caso podemos usar

DNException() para ter acesso a este objeto que

descreve a exceccedilatildeo

Usando Coacutedigo NET

Aleacutem de manipular objetos NET nativamente nos

programas Magic xpa eacute possiacutevel tambeacutem escrever

trechos de coacutedigo NET diretamente em C ou VBNET e

utilizaacute-los Isso eacute feito atraveacutes do comando Invoke

NET

O coacutedigo escrito eacute compilado pelo NET CLR e o Magic

xpa Studio salva este coacutedigo como parte do programa

Durante a execuccedilatildeo o coacutedigo jaacute compilado eacute acionado

pelo Magic xpa Deployment

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 20: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Usando Meacutetodos NET

Muitos objetos NET permitem executar accedilotildees atraveacutes de

seus meacutetodos (procedimentos ou funccedilotildees) e seus eventos O

Magic xpa permite invocar estes meacutetodos e tambeacutem

interceptar estes eventos

Como objetos NET podem disparar eventos durante a

execuccedilatildeo de programas o Magic xpa permite criar handlers

para estes eventos e definir accedilotildees a serem executadas

dentro destes handlers

Interceptando Eventos NET

Os desenvolvedores Magic xpa satildeo devem estar

familiarizados com o conceito de Evento e Handler de

Evento que eacute nativo da plataforma Vaacuterios objetos NET

expotildeem eventos que podem ser disparados durante a

execuccedilatildeo dos programas Especialmente controles NET

que possuem eventos como ldquoOnMouseClickrdquo O Magic

xpa permite a criaccedilatildeo de handlers para estes eventos

afim de se adicionar regras de negoacutecio a uma accedilatildeo que

ocorreu durante a execuccedilatildeo de um programa

Trabalhando com Construtores

Quando um objeto NET natildeo eacute colocado no formulaacuterio ele necessita

ser instanciado manualmente Isso eacute feito invocando-se o construtor

da classe Os construtores satildeo meacutetodos que possuem o mesmo nome

da classe e que retornam uma instacircncia de objeto da referida classe

Os construtores devem ser acionados pelo editor de expressotildees

usando-se o prefixo DotNet Por exemplo o construtor da classe

StringBuilder deve ser invocado desta forma DotNetStringBuilder()

Definindo Vetores NET

Um vetor (array) NET eacute similar a um vetor Magic xpa Ou

seja variaacuteveis que armazenam muacuteltiplos valores de um

mesmo tipo Mas ao contraacuterio de vetores Magic xpa que

possuem tamanho dinacircmico vetores NET precisam ter

seu tamanho maacuteximo definido na sua instanciaccedilatildeo

No Magic xpa um vetor NET eacute definido adicionando-se

ldquo[ ]rdquo na definiccedilatildeo do tipo O tamanho do vetor deve ser

definido na instanciaccedilatildeo do objeto

Manipulando Exceccedilotildees

Todas as exceccedilotildees que possam ocorrer no acesso a

objetos NET satildeo tratadas internamente pelo Magic xpa e

natildeo satildeo propagadas (throw) para os programas

As funccedilotildees DNExceptionOccurred() e DNException()

permitem consultar o status do uacuteltimo acesso ao NET

realizado pelo Magic xpa Se DNExceptionOccurred()

retornar verdadeiro o uacuteltimo acesso gerou uma

exceccedilatildeo NET Neste caso podemos usar

DNException() para ter acesso a este objeto que

descreve a exceccedilatildeo

Usando Coacutedigo NET

Aleacutem de manipular objetos NET nativamente nos

programas Magic xpa eacute possiacutevel tambeacutem escrever

trechos de coacutedigo NET diretamente em C ou VBNET e

utilizaacute-los Isso eacute feito atraveacutes do comando Invoke

NET

O coacutedigo escrito eacute compilado pelo NET CLR e o Magic

xpa Studio salva este coacutedigo como parte do programa

Durante a execuccedilatildeo o coacutedigo jaacute compilado eacute acionado

pelo Magic xpa Deployment

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 21: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Interceptando Eventos NET

Os desenvolvedores Magic xpa satildeo devem estar

familiarizados com o conceito de Evento e Handler de

Evento que eacute nativo da plataforma Vaacuterios objetos NET

expotildeem eventos que podem ser disparados durante a

execuccedilatildeo dos programas Especialmente controles NET

que possuem eventos como ldquoOnMouseClickrdquo O Magic

xpa permite a criaccedilatildeo de handlers para estes eventos

afim de se adicionar regras de negoacutecio a uma accedilatildeo que

ocorreu durante a execuccedilatildeo de um programa

Trabalhando com Construtores

Quando um objeto NET natildeo eacute colocado no formulaacuterio ele necessita

ser instanciado manualmente Isso eacute feito invocando-se o construtor

da classe Os construtores satildeo meacutetodos que possuem o mesmo nome

da classe e que retornam uma instacircncia de objeto da referida classe

Os construtores devem ser acionados pelo editor de expressotildees

usando-se o prefixo DotNet Por exemplo o construtor da classe

StringBuilder deve ser invocado desta forma DotNetStringBuilder()

Definindo Vetores NET

Um vetor (array) NET eacute similar a um vetor Magic xpa Ou

seja variaacuteveis que armazenam muacuteltiplos valores de um

mesmo tipo Mas ao contraacuterio de vetores Magic xpa que

possuem tamanho dinacircmico vetores NET precisam ter

seu tamanho maacuteximo definido na sua instanciaccedilatildeo

No Magic xpa um vetor NET eacute definido adicionando-se

ldquo[ ]rdquo na definiccedilatildeo do tipo O tamanho do vetor deve ser

definido na instanciaccedilatildeo do objeto

Manipulando Exceccedilotildees

Todas as exceccedilotildees que possam ocorrer no acesso a

objetos NET satildeo tratadas internamente pelo Magic xpa e

natildeo satildeo propagadas (throw) para os programas

As funccedilotildees DNExceptionOccurred() e DNException()

permitem consultar o status do uacuteltimo acesso ao NET

realizado pelo Magic xpa Se DNExceptionOccurred()

retornar verdadeiro o uacuteltimo acesso gerou uma

exceccedilatildeo NET Neste caso podemos usar

DNException() para ter acesso a este objeto que

descreve a exceccedilatildeo

Usando Coacutedigo NET

Aleacutem de manipular objetos NET nativamente nos

programas Magic xpa eacute possiacutevel tambeacutem escrever

trechos de coacutedigo NET diretamente em C ou VBNET e

utilizaacute-los Isso eacute feito atraveacutes do comando Invoke

NET

O coacutedigo escrito eacute compilado pelo NET CLR e o Magic

xpa Studio salva este coacutedigo como parte do programa

Durante a execuccedilatildeo o coacutedigo jaacute compilado eacute acionado

pelo Magic xpa Deployment

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 22: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Trabalhando com Construtores

Quando um objeto NET natildeo eacute colocado no formulaacuterio ele necessita

ser instanciado manualmente Isso eacute feito invocando-se o construtor

da classe Os construtores satildeo meacutetodos que possuem o mesmo nome

da classe e que retornam uma instacircncia de objeto da referida classe

Os construtores devem ser acionados pelo editor de expressotildees

usando-se o prefixo DotNet Por exemplo o construtor da classe

StringBuilder deve ser invocado desta forma DotNetStringBuilder()

Definindo Vetores NET

Um vetor (array) NET eacute similar a um vetor Magic xpa Ou

seja variaacuteveis que armazenam muacuteltiplos valores de um

mesmo tipo Mas ao contraacuterio de vetores Magic xpa que

possuem tamanho dinacircmico vetores NET precisam ter

seu tamanho maacuteximo definido na sua instanciaccedilatildeo

No Magic xpa um vetor NET eacute definido adicionando-se

ldquo[ ]rdquo na definiccedilatildeo do tipo O tamanho do vetor deve ser

definido na instanciaccedilatildeo do objeto

Manipulando Exceccedilotildees

Todas as exceccedilotildees que possam ocorrer no acesso a

objetos NET satildeo tratadas internamente pelo Magic xpa e

natildeo satildeo propagadas (throw) para os programas

As funccedilotildees DNExceptionOccurred() e DNException()

permitem consultar o status do uacuteltimo acesso ao NET

realizado pelo Magic xpa Se DNExceptionOccurred()

retornar verdadeiro o uacuteltimo acesso gerou uma

exceccedilatildeo NET Neste caso podemos usar

DNException() para ter acesso a este objeto que

descreve a exceccedilatildeo

Usando Coacutedigo NET

Aleacutem de manipular objetos NET nativamente nos

programas Magic xpa eacute possiacutevel tambeacutem escrever

trechos de coacutedigo NET diretamente em C ou VBNET e

utilizaacute-los Isso eacute feito atraveacutes do comando Invoke

NET

O coacutedigo escrito eacute compilado pelo NET CLR e o Magic

xpa Studio salva este coacutedigo como parte do programa

Durante a execuccedilatildeo o coacutedigo jaacute compilado eacute acionado

pelo Magic xpa Deployment

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 23: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Definindo Vetores NET

Um vetor (array) NET eacute similar a um vetor Magic xpa Ou

seja variaacuteveis que armazenam muacuteltiplos valores de um

mesmo tipo Mas ao contraacuterio de vetores Magic xpa que

possuem tamanho dinacircmico vetores NET precisam ter

seu tamanho maacuteximo definido na sua instanciaccedilatildeo

No Magic xpa um vetor NET eacute definido adicionando-se

ldquo[ ]rdquo na definiccedilatildeo do tipo O tamanho do vetor deve ser

definido na instanciaccedilatildeo do objeto

Manipulando Exceccedilotildees

Todas as exceccedilotildees que possam ocorrer no acesso a

objetos NET satildeo tratadas internamente pelo Magic xpa e

natildeo satildeo propagadas (throw) para os programas

As funccedilotildees DNExceptionOccurred() e DNException()

permitem consultar o status do uacuteltimo acesso ao NET

realizado pelo Magic xpa Se DNExceptionOccurred()

retornar verdadeiro o uacuteltimo acesso gerou uma

exceccedilatildeo NET Neste caso podemos usar

DNException() para ter acesso a este objeto que

descreve a exceccedilatildeo

Usando Coacutedigo NET

Aleacutem de manipular objetos NET nativamente nos

programas Magic xpa eacute possiacutevel tambeacutem escrever

trechos de coacutedigo NET diretamente em C ou VBNET e

utilizaacute-los Isso eacute feito atraveacutes do comando Invoke

NET

O coacutedigo escrito eacute compilado pelo NET CLR e o Magic

xpa Studio salva este coacutedigo como parte do programa

Durante a execuccedilatildeo o coacutedigo jaacute compilado eacute acionado

pelo Magic xpa Deployment

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 24: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Manipulando Exceccedilotildees

Todas as exceccedilotildees que possam ocorrer no acesso a

objetos NET satildeo tratadas internamente pelo Magic xpa e

natildeo satildeo propagadas (throw) para os programas

As funccedilotildees DNExceptionOccurred() e DNException()

permitem consultar o status do uacuteltimo acesso ao NET

realizado pelo Magic xpa Se DNExceptionOccurred()

retornar verdadeiro o uacuteltimo acesso gerou uma

exceccedilatildeo NET Neste caso podemos usar

DNException() para ter acesso a este objeto que

descreve a exceccedilatildeo

Usando Coacutedigo NET

Aleacutem de manipular objetos NET nativamente nos

programas Magic xpa eacute possiacutevel tambeacutem escrever

trechos de coacutedigo NET diretamente em C ou VBNET e

utilizaacute-los Isso eacute feito atraveacutes do comando Invoke

NET

O coacutedigo escrito eacute compilado pelo NET CLR e o Magic

xpa Studio salva este coacutedigo como parte do programa

Durante a execuccedilatildeo o coacutedigo jaacute compilado eacute acionado

pelo Magic xpa Deployment

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 25: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Usando Coacutedigo NET

Aleacutem de manipular objetos NET nativamente nos

programas Magic xpa eacute possiacutevel tambeacutem escrever

trechos de coacutedigo NET diretamente em C ou VBNET e

utilizaacute-los Isso eacute feito atraveacutes do comando Invoke

NET

O coacutedigo escrito eacute compilado pelo NET CLR e o Magic

xpa Studio salva este coacutedigo como parte do programa

Durante a execuccedilatildeo o coacutedigo jaacute compilado eacute acionado

pelo Magic xpa Deployment

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 26: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Controles NET com ldquoDataView=Yesrdquo

Alguns controles NET possuem uma propriedade

chamada ldquoDataSourcerdquo 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

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 27: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Controles NET com ldquoDataBindrdquo

Quando os controles NET possuem a regra de DataBind

definida alteraccedilotildees nas variaacuteveis Magic xpa satildeo

refletidas automaticamente no controle NET e vice-

versa alteraccedilotildees no controle NET se refletem na

variaacutevel Magic xpa

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 28: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Lidando com a interface IDisposable

Objetos NET que implementam a interface ldquoIDisposablerdquosinalizam que estatildeo trabalhando com recursos criacuteticos do sistema operacional e que devem ser liberados o mais raacutepido possiacutevel

Isso pode ser feito invocando-se o meacutetodo Dispose() do objeto instanciado

No Magic xpa isso tambeacutem deve ser realizado pelo desenvolvedor por exemplo na Task Suffix

Exemplo objeto FileStream

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 29: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Migrando Controles ActiveX

Controles ActiveX natildeo podem ser utilizados diretamente

em formulaacuterios de programas do Magic xpa porque

estes formulaacuterios satildeo do tipo NET

Estes controles precisam primeiro ser convertidos em

ldquoNET User Controlsrdquo

Isso eacute feito com o utilitaacuterio AxImp da MicroSoft

Aleacutem da biblioteca gerada durante a conversatildeo o

controle ActiveX ainda precisa estar instalado nas

maacutequinas

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr

Page 30: Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07

Obrigado e ateacute o proacuteximo

httpmssmagicsoftwarecombr