Alternativa ao VBA em um ambiente bancário [fechado]

1

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

  1. perfil nosso código (muito limitado em VBA)
  2. mais rápido que o VBA (ou seja, compilado)
  3. possibilidade de interoperabilidade entre o idioma e o Excel
  4. possibilidade de chamar funções armazenadas na DLL a partir do idioma
  5. 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

Daniel Bencik
fonte
Votei em fechar como fora de tópico - isso está além do escopo deste site de perguntas e respostas. Eu realmente sugiro que você obtenha uma solução melhor com sua empresa-mãe - provavelmente um ERP ou pelo menos algum tipo de banco de dados.
Raystafarian
O pessoal da matriz é o gerente de risco que conhece um pouco de VBA e Excel; eles não são as pessoas que têm uma solução para esse problema.
precisa
11
A empresa controladora é quem administra a TI para você? Há uma razão para você estar restrito, certo? Caso contrário, você teria seu próprio departamento de TI que o ajudaria com uma solução. Vamos considerar também os regulamentos do seu setor e / ou país (s) em relação ao tipo de informação que você lida com. Um pequeno erro pode custar muito em termos de tempo, clientes, multas e relações públicas. Se você é o responsável por essa decisão, gostaria de contratar um consultor com experiência na área.
Raystafarian
A empresa controladora administra nossa TI em termos de fornecimento de servidores para aplicativos que compramos de outras empresas de software, etc. Do meu ponto de vista, mesmo empurrando a TI para obter um servidor de banco de dados seria algo quase impossível. Eu e meu colega de risco somos os desenvolvedores. A razão pela qual estamos restritos é que poucas pessoas podem programar no banco, isso não tem nada a ver com regulamentação (quanto mais seguro é o VBA do que qualquer outra coisa). Então a pergunta é realmente como eu escrevi - o que é próximo ao VBA, mas consideravelmente mais rápido.
precisa

Respostas:

1

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.

Julian Knight
fonte
SiddhartRout me disse para mover a questão de SO para SU :)
Daniel Bencik
Hum, tudo bem. Para ser honesto, qualquer resposta fará parte da opinião. Minha resposta é baseada na experiência nos setores financeiro e bancário do Reino Unido.
Julian Knight
O problema com a abordagem C # é que é uma linguagem totalmente nova, o pessoal do banco nem considerará essa possibilidade. Os cálculos do lado do servidor estão ainda mais no território impossível.
precisa
Concordou que o C # parece ser um grande passo, e é por isso que recomendo o VB primeiro. Quando você está nesse espaço, o VS e o .NET oferecem opções para o uso de outras linguagens .NET, caso você precise de ajuda externa. Você pode querer ser um pouco otimista com sua gerência, já que eles correm o risco de arruinar seus negócios colocando a cabeça na areia por causa do problema. Aumente o risco e tente estimar alguns custos financeiros por não fazer nada agora, que podem levá-los a tomar nota.
Julian Knight
As pessoas em SO muitas vezes não têm idéia do que está acontecendo em outro lugar.
Journeyman Geek