Como melhor dividir minha solução em projetos
Vamos desenvolver uma solução que irá conter os seguintes módulos:
- Financeiro (Cadastro e controle de caixas, bancos, ctas a receber, cheques, etc)
- Estoque (Gestão de estoque, Compras, vendas, Orçamentos, Etc.)
- Produção (Gestão Industrial)
- Serviços (Ordens de Serviços e Gestão de prestação de serviços)
- Academia (Controle de turmas, modalidades, agendamentos, controle de alunos, etc.)
- Frota (Cadastro de veículos, motoristas, gestão de fretes e ordens de frete, manutenção de veículo, etc.)
Esta solução será desenvolvida utilizando o Visual Studio 2008 e C#, todos estes módulos apresentados acima serão integrados por um único executável e chamados em um único menu (formulário principal).
Os módulos deverão interagir entre sim. (todos utilizaram o módulo financeiro e a maioria utilizará o de estoque).
Todos os módulos deverão herdar formulários de um projeto principal, devem estes tbm utilizar funções comuns deste projeto principal
O Banco de dados será um só arquivo (SQL Server)
Precisamos criar projetos dentro desta solução para que atenda os seguintes requisitos:
- O Sistema completo deve ficar leve e pequeno;
- Para a programação os módulos devem se comunicar
- O Desenvolvedor/Programador que participa de um projeto/módulo, não deve ter acesso ao fonte de outro módulo;
- O Desenvolvedor de um projeto/módulo, pode chamar funções/métodos de outros projetos quando este for publico.
- Os desenvolvedores Utilizarão o Visual SourceSafe para controlar a versão do software
Como poderíamos criar a solução no Visual Studio 2008 e integra-la o Visual Source Safe da melhor forma para atendermos estas necessidades?
Obrigado!
Alex Mazur
Curtidas 0
Respostas
Fabio Mans
16/12/2008
Minha sugestão é criar uma solução para cada projeto, não sei se você trabalha em camadas mas é o ideal.
Vamos ao exemplo
Primeiro defina uma Namespace – Suampresa.Financeiro. Business / Entity / Persistence
Desenvolva um projeto Class Library para cada módulo. Por exemplo, as propriedades da classe Financeiro devem ficar na Entity, outro camada com os chamados aos métodos do banco na camada Persistence. Como você mesmo disse, o programador só vai ter acesso ao módulo se a classe ou método for público.
No SourceSafe você irá restringir os projetos por programador, o que ele pode ver ou não, e esta troca será feita através da DLL.
O programador que está desenvolvendo o módulo Academia, pode utilizar a DLL (camada) Persistence da Produção para ler uma base de dados por exemplo.
Outra dica é criar um projeto Framework onde você irá ter as principais ferramentas, como uma camada de acesso a dados, uma ferramenta de envio de email, outra de criptografia, assim os módulos serão parecidos, procure padronizar tudo, os métodos, as procedures e os nomes das variáveis, banco e tabelas, caso um programador vá dar manutenção em um módulo que nunca trabalhou ele não irá se perder.
GOSTEI 0
Alex Mazur
16/12/2008
Ok! mas desta forma eu poderei criar uma solução crincipal e dela chamar um formulario do projeto de frotas por exemplo?
se sim, como isso será possivel?
GOSTEI 0
Fabio Mans
16/12/2008
Você vai reaproveitar a DLL, ou seja métodos e classes.
Nos Forms você pode criar uma Master Page (Leia este artigo) e sempre herdar dela, se você estiver falando de Designer, é isso?
Também é possível você criar UserControl e utilizar em vários projetos.
https://www.devmedia.com.br/articles/viewcomp.asp?comp=5108
https://www.devmedia.com.br/articles/viewcomp.asp?comp=5108
GOSTEI 0
Alex Mazur
16/12/2008
Isso poderia tbm ser utilizado para windows forms?
GOSTEI 0
Fabio Mans
16/12/2008
Não o contecei de Master Pages e User Control é o para Web.
Sobre este conceito que te falei utilizar camadas é que você pode a dll tanto para web quanto para Windows.
Estes projetos que estamos conversar serão Web ou Windows?
GOSTEI 0
Alex Mazur
16/12/2008
Na verdade será em windows... apenas alguns relatórios e modulos básivos em .net
GOSTEI 0
Fabio Mans
16/12/2008
Sem problemas, fazendo sua aplicação em camadas você pode utilizar tanto Web quanto Windows.
Tem mais alguma dúvida?
GOSTEI 0
Alex Mazur
16/12/2008
Sim! em windows, disponibilizando meus formularios padrões para herança no projeto principal (este ficará em dll) consiguirei herdar destes em outros projetos? como?
GOSTEI 0
Fabio Mans
16/12/2008
Para Windows Forms existem alguns artigos que mostram como herdar.
Herdar de controles existentes Windows Forms
http://msdn.microsoft.com/pt-br/library/5h0k2e6x.aspx
Using inheritance to create Windows Forms dialogs. / Windows Forms / C#
http://netcode.ru/dotnet/?lang=&katID=30&skatID=283&artID=7858
Sobre consumir uma dll para herdar formulários eu nunca vi, e não achei nenhum artigo sobre o assunto.
GOSTEI 0
Fabio Mans
16/12/2008
Mas alguma dúvida?
O post anterior ficou vago, te passei somente um link, porque Windows não faz parte do escopo desta consultoria, caso seja Web repito procure os vídeos e artigos sobre Master Pages e User Control, ambos podem ser reaproveitados em seu projeto.
GOSTEI 0
Alex Mazur
16/12/2008
Teria uma consultoria destinada a windows forms?
GOSTEI 0
Fabio Mans
16/12/2008
Vou verificar e te falo, você viu os artigos que te passei no Link, sobre reaproveitamento do Forms.
GOSTEI 0
Fabio Mans
16/12/2008
Alex eu me informei não existe consultoria para Windows Forms .NET
GOSTEI 0
Alex Mazur
16/12/2008
Ok! mto obrigado!
GOSTEI 0
Fabio Mans
16/12/2008
Olá eu gostaria de saber se você tem mais alguma dúvida sobre como dividir sua solução, se entendeu como criar as projetos do tipo Class Library, se tem dúvidas de como utilizar Master Pages e User Control?
Sobre Master Pages e User Control na site da DevMedia tem vários artigos e vídeos, inclusive alguns vídeos que eu mesmo fiz.
Master Pages com VS 2008
https://www.devmedia.com.br/articles/viewcomp.asp?comp=6278
User Control
https://www.devmedia.com.br/articles/viewcomp.asp?comp=5310
Lembro que dividir sua aplicação será um ótimo negócio, com suas camadas poderá utlizar tanto nos projetos Windows quanto Web.
Dúvidas entre em contato.
GOSTEI 0