Boa tarde.

Estou desenvolvendo já faz uns 3 meses um software em Delphi 2010 para 
ERP, não é um ERP muito grande mas a idéia é atender vários ramos de 
atividade, é um projeto importantíssimo para min, este software estou 
desenvolvendo sozinho, como nunca fiz um projeto grande assim de delphi, 
gostaria da opinião de vocês sobre alguns assuntos.

Estou com muita dificuldade em definir a arquitetura do software (o 
modelo), por exemplo, o que fiz até agora foi:

1 - Criar um DM para conexão com o Firebird usando SqlConnection.
3 - Criar três formulários genéricos que serão herdados para a geração 
de outros (herança de formulários). Nesses formulários coloquei um 
DataSource.
4 - Criei um cadastro de clientes herdando do formulário genério do item 
3, neste cadastro, coloquei um SqlQuery, um DataSerProvider, um 
ClientDataSet e um DataSource, onde ligo um no outro e o coloco o 
DataSource igual ao do  Form genérico, lá no form genérico faço todos os 
comandos de CRUD e também navigator usando o datasource 
(dsrCadastros.DataSet as TClientDataSet). Isso achei legal pois quando 
crio um novo formulário herdando do genérico só me preocupo em enviar 
alguns parâmetros como: Nome da tabela, campos chave etc..
5 - Como viram no item 4, estou usando os componentes de conexão dentro 
do formulário e não estou usando um DataModule separado para isso (EU 
achei melhor, aceito sujestões).

Gostaria de saber de vocês se isso que estou fazendo está certo, se é 
isso que acontece na prática, trabalho com programação em linguagem 
própria e estou no segundo ano de informática, nunca trabalhei com 
delphi em nenhuma empresa por isso estou com essas dificuldades. Já 
tenho alguns projetos prontos em delphi mas nada se compara a este.

Ainda tenho que colocar no sistema:

1 - Parte multiusuário: Como vocês fazem isso com firebird? Tentei 
colocar DataSnap no meu projeto mas vi que teria que mudar toda a 
estrutura que já fiz, ia dar muito trabalho, então somente fiz um arqivo 
.ini que o usuário indica onde é o servidor e o arquivo do firebird 
(*.fdb;*.gdb).
2 - Permissão de usuário nas telas: Quero fazer uma tela principal com 
botoes, gráficos, atalhos para relatórios, etc. Mas como vou fazer o 
gerenciamento disso, por exemplo, o usuário A não pode ver as vendas do 
mês e na tela principal tem um botão la que mostra as vendas por mês.

OBSERVAÇÃO: Eu até sei como resolver a maioria desses problemas, a parte 
da lógica é facil, o que estou com dificuldades é COMO resolver esses 
problemas, como definir uma estrutura que quando o projeto crescer não 
terei que fazer uma mudança grande para atender um requisito, quero 
reaproveitamento de código.

Abraços.....

-- 
Att.

Rodrigo Rossi
Skype: rodrigotrentinrossi
MSN: rdrg_ro...@hotmail.com
Fone: (45) 9963-1897
Cascavel - PR

Responder a