Eu trabalho na empresa filha de um banco onde nosso "sistema de TI desenvolvido internamente" está sendo escrito em VBA - anos atrás, o banco simplesmente nos impôs restrições quanto ao idioma que podemos ou não usar.
Ultimamente, a quantidade de negócios que realizamos aumentou e algumas tarefas automáticas diárias já levam aproximadamente. 6 horas, mesmo que algumas operações demoradas estejam sendo feitas em C ++ por meio de uma DLL. Eventualmente, chegaremos a um ponto em que as tarefas diárias levarão mais de 24 horas; nesse ponto, isso se tornará um absurdo.
Portanto, a questão é: o que podemos fazer para acelerar as coisas. Eu estava pensando no sentido de mudar o idioma. O que eu gostaria é a possibilidade de
- perfil nosso código (muito limitado em VBA)
- mais rápido que o VBA (ou seja, compilado)
- possibilidade de interoperabilidade entre o idioma e o Excel
- possibilidade de chamar funções armazenadas na DLL a partir do idioma
- as pessoas no banco conhecem apenas o VBA, portanto, quanto mais próxima a linguagem do VBA, melhor (ou seja, reescrever tudo no Qt / C ++ não é uma solução)
Pensei no VSTO, mas algumas postagens no SO parecem bastante desanimadoras. Que opções temos? Atualmente, temos aprox. 50K linhas de código, portanto, não são alguns arquivos do Excel.
Qualquer ajuda é muito apreciada, Daniel
fonte
Respostas:
Esta pergunta provavelmente pertence ao stackoverflow, e não ao superusuário.
No entanto, até uma mudança ...
A etapa mais lógica seria o uso do Visual Basic em um ambiente do Visual Studio. Isso fornece acesso total à pilha de desenvolvimento do Office, facilita o desenvolvimento (ish) de suplementos do Excel e fornece um caminho de migração do código VBA atual.
O VB costumava ser muito semelhante ao VBA, mas hoje em dia ele se transformou em algo bastante diferente, pois é um membro de primeira classe das linguagens .NET. No entanto, ele ainda mantém algumas de suas raízes e, portanto, alguma familiaridade.
Isso também abrirá a possibilidade de envolver novos desenvolvedores com habilidades que podem estar em idiomas mais comuns, como C #, para desenvolvimentos futuros.
O uso de aplicativos Excel permanece notavelmente comum em bancos e finanças e essa é uma solução comum para o problema.
Talvez eu devesse ter mencionado também algumas abordagens alternativas possíveis. Os arquivos do Excel podem ser acessados de outros idiomas, embora de maneira realista, apenas os dados brutos e não qualquer lógica incorporada. Tanto o PHP quanto o Node.JS, por exemplo, têm bibliotecas disponíveis para o processamento de planilhas, e eu as usei no passado para fazer o processamento de planilhas com base no servidor antes de passar para o uso humano. Suspeito, no entanto, que isso possa não ser tão útil nessa situação.
Talvez a resposta real seja morder a bala e começar a refazer as planilhas em um ambiente mais adequado. Você pode começar migrando os dados em um banco de dados SQL vinculado de volta às planilhas de processamento. Em seguida, comece a migrar a lógica de negócios para os processos do servidor diretamente no servidor SQL ou em aplicativos de lógica de negócios em execução no back-end.
fonte