Miguel Palaoro Administrador do Forum
Registrado: 28/08/06 Mensagens: 1385 Localização: Porto Alegre, RS
|
Enviada: Ter Abr 12, 2016 10:53 am Assunto: Entrevista: Usando Rotinas VBA em Máquinas 64-bit |
|
|
Entrevista: Usando Rotinas VBA em Máquinas 64-bit
Usando Rotinas VBA em 64-bit
Para Continuar a Utilizar rotinas VBA em sistemas de 64-bit há algumas alternativas de uso que podem fazer economizar bastante tempo de desenvolvimento.
Fizemos uma entrevista com o experiente desenvolvedor Ferdinand Janssens, da equipe central de desenvolvimento da Bricsys, sediada na Bélgica, que tem uma sólida experiência no uso das novas linguagens de programação suportadas pela plataforma do BricsCAD. Entre suas especialidades está a plataforma dotNet que é aqui também mencionada como um modelo de passo-a-seguir para quem tem rotinas VBA e as deseja seguir utilizando. Ferdinand tem trabalhado como instrutor de treinamento e tomarei a liberdade de tratá-lo como um professor no uso dessas novas linguagens.
Questões iniciais ao professor Ferdinand Janssens:
Vários de nossos clientes relatam que têm utilizado VBA por muitos anos. O suporte da Microsoft à linguagem VBA somente é fornecido para máquinas 32-bit, e não há notícias à vista sobre a evolução deste suporte técnico para máquinas 64-bit.
Alguns usuários têm material desenvolvido em VBA, e gostariam de dar-lhes uso em máquinas de 64-bit. Outros desejam reutilizar o conhecimento e receber sugestões de como podem aproveitar o trabalho já executado, e como poderão dar passos a seguir, para utilizar o conhecimento já adquirido, fazendo uso de outras linguagens.
Nós gostaríamos de compartilhar esses comentários com clientes interessados na área e também com desenvolvedores independentes.
Existe algum conselho a ser entregue a clientes e desenvolvedores que gostariam de dar sequencia ao uso de suas rotinas em VBA para novas linguagens, como .net?
Será necessário recriar muito dessas rotinas ?
Aplicações em VBA podem ser transportadas, ou convertidas, em .net ?
Resposta:
Você escreveu: "Temos vários clientes que nos relatam que têm vindo a utilizar VBA por muitos anos. Alguns têm o material desenvolvido em VBA e gostaria de usá-lo em máquinas de 64-bit."
1. Como eu tenho certeza que você está ciente, tal usuário poderia naturalmente instalar um BricsCAD 32-bit (mesmo em máquinas de 64-bit); em tal instalação, VBA está disponível para que seus aplicativos e rotinas VBA existentes estaria disponível imediatamente...
2. Outra alternativa é portar o código VBA existente, por exemplo, utilizando o Visual Studio, criando um projeto VB.net que faz referência às DLLs BricsCAD COM. Esta abordagem funciona hoje, e o projeto sendo construído pode ter como destino tanto operar em BricsCAD 32-bit como versões BricsCAD 64-bit. Ao contrário do VBA, em tal projeto VB.net você necessita definir as referências às DLLs por você mesmo, e alguns objetos típicos VBA como "ThisDrawing" (Este Desenho) não são fornecidos automaticamente. Mas, isto pode ser facilmente contornado, conforme é mostrado no projeto BricsCadPrimer.zip que eu adiciono a esta solicitação de suporte. Este projeto VB.net, que é feito em Visual Studio usa apenas (faz referência) a duas DLLs (axbricscadapp1.dll e axbricscaddb1.dll). A abordagem ou o alcance do que está disponível é quase idêntica ao que está disponível em VBA.
3. É claro que, se os seus usuários consideram usar o Visual Studio, eles poderiam também fazer "o caminho completo", e criar códigos .Net verdadeiramente 'gerenciados'. Esse código .Net, então pode ser carregado diretamente no BricsCAD com uso do comando 'netload' sem alteração.
Normalmente tais projetos .Net criam uma biblioteca de classes (=significando uma .dll) que pode ser carregada "(net)load" no BricsCAD. Uma vez carregada, todos os 'comandos' definidos no projeto (os 'comandos' expostos pelos .dlls compilados) tornam-se disponíveis para BricsCAD. Assim esses comandos ficam disponíveis para BricsCAD (como se fossem comandos 'nativos' BricsCAD) e podem ser alcançados através da linha de comando do BricsCAD, ou através de menus, barras de ferramentas, ribbon/faixa de opções, lisp ...etc).
A instalação BricsCAD inclui exemplos/amostras de tais projetos .Net (tanto nas linguagens em C# e VB) (ver C:\Program Files\Bricsys\BricsCAD V16 pt_BR\API\dotNet).
Embora tal projeto .Net normalmente apenas faça referência (=apenas necessite) as seguintes duas dll's 'BrxMgd.dll' e 'TD_Mgd.dll', as amostras acima mencionadas também fazem referência às dll's do BricsCAD COM API 'axbricscadapp1.dll' e 'axbricscaddb1.dll'. Isto foi feito como um 'extra' e como uma prova de conceito para demonstrar que ambos, o 'código gerenciado' e código 'COM', podem conviver, executar e ser mantidos num mesmo projeto .Net ...
Aqui pode baixar cópia do exemplo mencionado acima, BricsCadPrimer.zip
http://www.tecnoline.com.br/down/bricscad/dotnet/BricsCadPrimer.zip
Nova pergunta:
Obrigado pela sua resposta abrangente. Referente à sua nota #1, existe um problema que não pode ser ignorado. Alguns desses usuários precisam também usar os recursos do motor 64-bit, incluindo executar algumas aplicações que só funcionam em máquinas com capacidade de 64-bit.
Para os tópicos #2 e #3 eu gostaria de perguntar se você tem conhecimento de "tutoriais" para orientar um usuário menos experiente a obter esse resultado ?
Mesmo sabendo que alguém que costume se aventurar no desenvolvimento de software deve ser conhecedor do idioma inglês, existe uma fronteira onde se encontrará vários profissionais que gostariam de entender o mecanismo de programação e ousariam se aproximar desta área.
Resposta:
#1: Sim, de fato este é uma armadilha do tipo 'catch 22' (sem saída). Tanto quanto eu posso ver é precisamente por isso que a Microsoft parou de dar suporte ao VBA...
Para o item #2 (em parte), e, certamente, #3:
Eu não estou ciente de "tutoriais" como tal, mas abaixo forneço uma lista de alguns dos recursos na web que eu uso pessoalmente, e extensivamente:
- Through the Interface, por Kean Walmsley, http://through-the-interface.typepad.com/
- The Swamp, https://www.theswamp.org/
Na secção Code Red, os tópicos:
• AutoLISP (Vanilla / Visual)
• VB(A)
• .NET (Exploiting the Common Language Runtime? C'mon in)
- SpiderInNet, http://spiderinnet1.typepad.com/
As páginas web acima mencionadas se destinam (ou até são hospedadas por) AutoCAD, mas, como sabemos a separação entre ACAD/BCAD é uma linha muito fina. Isto torna particularmente disponível para a automatização em ambas as plataformas.
Uma vez que você tenha configurado para BricsCAD (significando uma vez que você criou seu primeiro projeto .Net que se destine ao BricsCAD, e se sente confortável com projetos Visual Studio) é incrível como são "portáveis" (com uso de copy/paste...) os códigos que estão disponíveis nos sites aqui acima. Em muitos casos, simplesmente será uma questão de pesquisar na web e ao identificar um código interessante, bastará simplesmente usar o recurso de copiar/colar do código web encontrado, para dentro do projeto no qual você está trabalhando.
Também, a quantidade de informações e recursos que estão disponíveis sobre .Net na Web é enorme e valiosa.
Finalmente, é claro, se você sentir que seus clientes poderiam se beneficiar de tutoriais localizados, feitos sob medida, eu gostaria de encorajá-los a fazer isso.
Talvez o primeiro passo seja gravar ou tomar notas das suas próprias conclusões e tentativas e erros, quando iniciar o uso desta tecnologia atualizada.
Atenciosamente,
Ferdinand Janssens
Observação local: Você sempre poderá encaminhar consultas técnicas para a Bricsys, em torno das questões que giram sobre o BricsCAD, fazendo uso diretamente do serviço de Suporte Técnico Global Bricsys. Conheça mais sobre o Canal de Suporte Técnico Global Bricsys aqui mesmo: http://www.tecnoline.com.br/viewtopic.php?t=1961 _________________ Miguel Jorge Palaoro - Engenheiro
Porto Alegre, RS |
|