Clipper On Line • Ver Tópico - estou migrando um sistema legado de mais de 20anos

estou migrando um sistema legado de mais de 20anos

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

estou migrando um sistema legado de mais de 20anos

Mensagempor Trazom » 10 Jun 2019 14:38

Obrigado pela paciência em me explicar
Me ajuddem por favor a conceituar melhor porque ainda estou meio perdido nessas ferramentas
Primeiro: a linguagem geral que eu estou usando pra posicionar os objetos em tela por exemplo, isso é linguagem harbour ?
Segundo: com relação aos compiladores, as diversas ferramentas minigui, hmg são todas distribuiçao difeerente de harbour ? elas já incluem o harbour na instalação, acho que sim
Terceiro: tem como usar somente harbour puro ? ou melhor escolher uma ferramenta baseado no suporte da comunidade envolvida ?

Agora vou tentar criar os posts nas seções corretas
Imagem

Harbour 3.2 HMG 1.2a NSX
Evandro
Pelo fato de exercitar bem a própria arte,
cada um pretendia ser sapientíssimo também nas
outras coisas de maior importância,
e esse erro obscurecia o seu saber

Platão, Apologia de Sócrates
Avatar de usuário

Trazom
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 260
Data de registro: 14 Ago 2003 01:01
Cidade/Estado: Maceió/AL
Curtiu: 0 vez
Mens.Curtidas: 1 vez

estou migrando um sistema legado de mais de 20anos

Mensagempor JoséQuintas » 10 Jun 2019 16:13

O Harbour puro, de um modo geral é console.
Mas no Harbour tem contribuições, um misto que pode misturar console e gráfico: GTWVG e GTWVW.
Existem bibliotecas externas - não fazem parte do Harbour.

QTContribs - QT - Windows/Linux
minigui - HMG3, HMG Extended e OOHG ( HMG "orientada a objeto") - Windows
hwgui - Windows/Linux
E outras menos usadas.

Cada uma tem seus comandos/funções, e não são iguais, por isso são tratadas em separado

Algumas das LIBs são direcionadas a Harbour/xHarbour, e acabam não aproveitando recursos que já existem no Harbour.
Algumas funcionam em qualquer compilador C, outras limitam a somente alguns.
E também a maioria é direcionada a Harbour 3.2, e não 3.4.

Algumas das LIBs criam um pacote pra ser baixado, com um Harbour próximo ao original - mas não exatamente igual, pode faltar alguma coisa.
Nada impede de usar um Harbour diferente do que vém no pacote, basta configurar e recompilar tudo.

Basicamente é isso.
Essa coisa toda acaba dividindo o mundo Harbour em várias partes.
Mas querendo ou não, tem que dividir pelo menos em Linux, Windows, OS/2, Android....
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

estou migrando um sistema legado de mais de 20anos

Mensagempor Trazom » 12 Jun 2019 15:43

Ola amigos,

vou relatar o que estou fazendo pra gente compartilhar a felicidade que eu to sentindo
Percebi que eu ainda estou meio confuso com linguagem, distribuição, fui bro básico e consegui compilar em harbour direto tenho a versao 3.2 e to usando borland c, quero aprender sobre as distribuições, mas por enquanto ja tenho a versao original em clipper compilada em harbour rodando em 64bits direto sem emulador, e tenho a versão que eu to reescrevendo por enquanto em hmg]]
todos os executáveis rodam na mesma pasta, compartilhando os dados e os índices sem nenhum problema
pois bem era issso que eu tinha pra dizer e muito obrigado a todos voces
Imagem

Harbour 3.2 HMG 1.2a NSX
Evandro
Pelo fato de exercitar bem a própria arte,
cada um pretendia ser sapientíssimo também nas
outras coisas de maior importância,
e esse erro obscurecia o seu saber

Platão, Apologia de Sócrates
Avatar de usuário

Trazom
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 260
Data de registro: 14 Ago 2003 01:01
Cidade/Estado: Maceió/AL
Curtiu: 0 vez
Mens.Curtidas: 1 vez

estou migrando um sistema legado de mais de 20anos

Mensagempor JoséQuintas » 12 Jun 2019 18:45

Trazom escreveu:mas por enquanto ja tenho a versao original em clipper compilada em harbour rodando em 64bits direto sem emulador
todos os executáveis rodam na mesma pasta, compartilhando os dados e os índices sem nenhum problema


Uma coisa é rodar na máquina sozinho e outra é rodar na rede do cliente.
Pode ser interessante colocar pra rodar no cliente, assim já não tem imprevistos depois.

Quando fui de Clipper pra Harbour, tive que alterar o esquema de controlar a numeração do cadastro.
No Clipper o último número + 1 raramente dava problema, e no Harbour isso ficou frequente.
Mas só colocando em prática que deu pra ver isso.

Criei um controle melhor pra essa numeração, e não tive mais problemas.
Se tivesse feito isso na época do Clipper, nem precisaria ajustar nada.

Ou seja... tudo depende dos seus fontes.
Pode ser que já tinha tomado providências antes no Clipper, pode ser que vai fazer depois.
Por isso é interessante colocar pra rodar já nessa etapa, assim vai ficar tranquilo no restante, sem surpresas.
E o cliente já vai sentir muito mais velocidade, então vai ser melhor pra ele também.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

estou migrando um sistema legado de mais de 20anos

Mensagempor Trazom » 13 Jun 2019 09:27

Obrigado pelas dicas
Já estou escovando mais os sistemas pra colocar em funcionamento, pois tive que anular muitas rotinas que usam funções de terceiros (nada que o harbour ja tenha), só assim vi que o sistema ja tem mais de 2.000 prgs, na primeira compilalçao aparecem mais de tres mil erros.
Por enquanto ainda não tive problema com índices pra dizer a verdade nunca tive depois que passei a usar nsx, e olha que vendi mais de duas mil cópias em clipper e tem usuário com dbfs gigantescos que nem consegue reindexar. Agora preciso otimizar o compilador, aprender um pouco mais sobre o arquivo hbp, como compilar somente o que foi alterado, essas coisas.
Outra coisa é que uso win10 e a janela DOS fica com uma configuração como se estive com 43 linhas e umas 120colunas aí a tela do sistema fica usando só um cantinho da tela DOS, onde configuro isso alguma coisa como setmode(25,80)
Outra coisa que gostaria de saber é se o harbour tem acesso a webservices
Nesse momento estou completamente empenhado nisso até porque vim pra Amazônia atender esse cliente, o objetivo inicial já foi alcançado que era compilar pra 64bits agora quero aproveitar e deixar uma versao for win também, já estou aqui desde maio e tenho até o fim do mês pra terminar, acho que dá tempo aprender com os amigos ajudando !
Imagem

Harbour 3.2 HMG 1.2a NSX
Evandro
Pelo fato de exercitar bem a própria arte,
cada um pretendia ser sapientíssimo também nas
outras coisas de maior importância,
e esse erro obscurecia o seu saber

Platão, Apologia de Sócrates
Avatar de usuário

Trazom
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 260
Data de registro: 14 Ago 2003 01:01
Cidade/Estado: Maceió/AL
Curtiu: 0 vez
Mens.Curtidas: 1 vez

estou migrando um sistema legado de mais de 20anos

Mensagempor JoséQuintas » 13 Jun 2019 12:53

Trazom escreveu: só assim vi que o sistema ja tem mais de 2.000 prgs, na primeira compilalçao aparecem mais de tres mil erros.


Por default, o Harbour compila usando -w3 -es2, isso também existia no Clipper, mas poucos usavam por não ser default.
O equivalente talvez seja compilar usando -w0 -es0.
São checagens adicionais, obrigando a declarar variáveis, por exemplo, o que facilita depois fazer manutenção, e até encontrar erros antes de executar.
Não é rápido ajustar pra compilar usando -w3 -es2, mas pode ser feito aos poucos, até um fonte de cada vez ou menos. Se tem muitos usuários do mesmo aplicativo, vale a pena fazer isso.

Trazom escreveu:Outra coisa é que uso win10 e a janela DOS fica com uma configuração como se estive com 43 linhas e umas 120colunas aí a tela do sistema fica usando só um cantinho da tela DOS, onde configuro isso alguma coisa como setmode(25,80)


Sim, exatamente igual no Clipper, mas... no Clipper era opcional e assumia um default de 25 x 80 quando fosse inválido.
Mas no Clipper também poderia ser usado 28 x 80, 43 x 80 e 50 x 80 - limitação do DOS e não do Clipper.
No Harbour não tem nenhuma limitação, você decide usando SetMode() ou ele assume o default da janela Windows.
Pode ser interessante usar 30 X 100, pra ter mais espaço em tela, e porque as telas atuais deixaram de ser quadradas.
Se usar GTWVG (basta adicionar na compilação GTWVG.HBC) o aplicativo vai se ajustar automático conforme o tamanho de tela, e vai deixar de ser console/texto - isso pode ser útil para Windows 10, onde o console não é mais o mesmo.

Trazom escreveu:Outra coisa que gostaria de saber é se o harbour tem acesso a webservices


O Harbour faz tudo o que qualquer outro programa Windows faz, ou diretamente, ou com ajuda de LIBs, ou com ajuda de OLE.
Pra webservice, o Harbour tem a LIB hbtip com limitações, a libCurl muito conhecida em Linux e PHP, MSXML da Microsoft/Windows através de OLE, e outros

Dá pra separar as coisas em alguns níveis:

- Tem coisa que já faz parte de qualquer Harbour - hbtip, harupdf, hbzip, GTWVG, GTWVW, GTWVT por exemplo
- Tem coisa que faz parte do Harbour, mas é opcional, depende de arquivos adicionais pra gerar a LIB - libcurl, openssl, hbmysql por exemplo
- Tem coisa que é por OLE, a função win_OleCreateObject() - MSXML, Capicom, ADO, Excel por exemplo
- Tem coisa parecida com OLE, com acesso mais direto - RMChart por exemplo
- E tem coisa que é LIB adicional, um pacote adicional a ser baixado/instalado de outro local diferente do Harbour - HMG, HWGUI por exemplo

E tem o Harbour distribuído com HMG por exemplo, que pode vir com opcionais prontos, ou com montagem diferente da original.
É bom saber disso, porque não sei se os opcionais vão ficar prontos ao recompilar.

É sempre bom que faça seus testes, porque muita coisa é atualizada e fica mais fácil.
E muitos usuários podem usar o modo mais complicado, e vai acabar usando complicado se copiar fonte de algum deles, ou achando que tem que ser exatamente como fizeram e não precisaria.

O que fiz nos meus clientes foi uma atualização on-line.
Uma vez com o Harbour instalado, o próprio Harbour poderia fazer isso, ou um aplicativo em outra linguagem de programação.
A vantagem: óbvio, ir fazendo e já deixando disponível aos clientes, assim, de certa forma, vão estar conferindo o seu trabalho.
De repente, baseado nos resultados, pode corrigir alguma coisa antes de cometer o mesmo erro em outros módulos, ou confirmar se está no caminho certo - o cliente pode indicar algo que ficou pior ao invés de melhorar.
E com a atualização on-line, pode alterar o que quiser, na hora de quiser, ou fazer correções, e colocar em prática.
Como eu já disse, vai de cada um.
Eu uso essa forma até hoje, então corrijo algum problema que aconteceu em algum lugar, e já corrijo de todos antes que percebam.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

estou migrando um sistema legado de mais de 20anos

Mensagempor JoséQuintas » 13 Jun 2019 13:06

Faltou dizer:

o HBP nada mais é do que a lista do que entra na compilação.
E parâmetros adicionais que possam interessar

-w3 -es2 ou -w0 -es0 pra fazer checagens adicionais ou não
-onome.exe pra definir um nome para o EXE, caso seja diferente do primeiro nome indicado
-compr pra compactar o EXE (precisa UPX instalado e no Path)
-lnome pra adicionar lib
nome.hbc pra adicionar conjunto de instruções para determinada lib (GTWVG.hbc por exemplo)
-m igual no clipper, pra compilar um fonte de cada vez sem puxar automático
-n igual no clipper, pra não considerar o nome do PRG e considerar apenas o que tem dentro (PROCEDURE,FUNCTION)

E outras coisas mais.
Uma lista gigante das opções pode ser encontrada digitando hbmk2 -help
Pode gerar LIB, EXE, DLL, pode até criar um projeto com subprojetos

Vai longe, e vai de cada um.
Comece pelo básico e vá expandindo aos poucos, senão vai ficar perdido com tanta opção.

-inc
Essa é a que comentou: incremental, pra compilar somente a parte alterada

-rebuild
pode ser necessário, pra reconstruir tudo, como se fosse a primeira vez
geralmente usado na linha de comando, e não dentro do hbp

Por último:
Os parâmetros não precisam estar dentro do HBP, pode colocar na linha de comando, pra testar ou para o que quiser - qualquer um deles.

hbmk2 test.prg
hbmk2 test.prg test2.prg
hbmk2 test.prg test2.prg -m -n -w0 -es0 -compr -rebuild
hbmk2 projeto.hbp -compr -rebuild -ooutronome.exe

O HBP nada mais é do que os mesmos parâmetros que poderia digitar na linha de comando.
Só cria o HBP pra não ter que ficar digitando tudo toda vez que for compilar.

Mas lógico... a vantagem é que o HBP vai indicar exatamente o que entra no seu projeto.
Isso organiza seu trabalho/projeto.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Anterior



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 7 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro