Array
(
)

Arquitetura de projeto

Rodrigo Cezar
   - 02 abr 2013

Boas
Bom, como todo começo, o ruim é formar uma arquitetura boa em um projeto.
Irei começar um projeto de TCC e também quem sabe uma futura aplicação para uso comercial...
Bom, irei utilizar ASP.NET MVC4 com Fluent Nhibernate
Aí vem a dúvida, como organizar o projeto?
Pensei assim, deixo claro que não tenho experiência com arquitetura rsrsrs
Projeto.Core (Conterá algumas helper/repository,dto)
Projeto.Persistence (projeto apenas para o mapping do nhibernate
Projeto.Entities - as entities
Projeto.Web - parte web
Projeto.Test - test
Mas aí vem, eu gostaria de separar por modulos do meu sistema e cada modulo um projeto
Por exemplo
Projeto.Estoque
Projeto.Financeiro
Etc...
Mas não sei como criar uma arquitetura elegante...
Gostaria de opiniões, sugestões, se trabalham com uma arquitetura boa, poderia tirar um print e mostrar-me como está a estrutura...O que vier para me auxiliar, fico muito grato.

Att
Rodrigo

Robson Robsonalves.net
   - 03 abr 2013

Acredito que sua ideia seja o ideal.

Separar os módulos por projeto pensando em arquitetura e na pasta ele fica em pastas distintas.

Fica organizado e no meu ponto de vista, correto.

Rodrigo Cezar
   - 03 abr 2013


Citação:
Acredito que sua ideia seja o ideal.

Separar os módulos por projeto pensando em arquitetura e na pasta ele fica em pastas distintas.

Fica organizado e no meu ponto de vista, correto.


Pois é, aí eu separaria com Folder Solution né?
Lib
projeto.core
projeto.persistence

plugins
projeto.financeiro
projeto.estoque

web
projeto.web

test
projeto.test

Algo assim...Mas ainda não sei se é o correto

Robson Robsonalves.net
   - 03 abr 2013

Minha opinião.

Para ter a certeza de ser correto ou não, você tem que seguir uma diretriz.

O que seria essa diretriz?

- Seria uma metodologia, um pattern ou uma estrutura fixa pré-determinada por algum especialista.

Por que cheguei nesse ponto?

- A estrutura do seu sistema tem que atender as necessidades do mesmo. Você quer algo modular, então separando em projetos e subsequente os projetos em pastas, você pode realizar a referência dos módulos quando se fizer necessário.

Vai parecer estranho, mas se isso atende sua requisição, isso é uma arquitetura.

Um pattern é um padrão elegante para resolução de um ou N propósitos, mas nunca é a solução do mundo.

Abraços

Rodrigo Cezar
   - 03 abr 2013


Citação:
Minha opinião.

Para ter a certeza de ser correto ou não, você tem que seguir uma diretriz.

O que seria essa diretriz?

- Seria uma metodologia, um pattern ou uma estrutura fixa pré-determinada por algum especialista.

Por que cheguei nesse ponto?

- A estrutura do seu sistema tem que atender as necessidades do mesmo. Você quer algo modular, então separando em projetos e subsequente os projetos em pastas, você pode realizar a referência dos módulos quando se fizer necessário.

Vai parecer estranho, mas se isso atende sua requisição, isso é uma arquitetura.

Um pattern é um padrão elegante para resolução de um ou N propósitos, mas nunca é a solução do mundo.

Abraços


Entendi, mas aí vem mais uma dúvida, por exemplo, eu crio projeto do tipo dll para projeto.estoque, etc
Ou eu uso projeto do tipo website, para isso? como seria melhor será?

Robson Robsonalves.net
   - 03 abr 2013

Eu tmb tive essa dúvida.

Por se modular, os projetos que estarão particionados, eles serão do tipo Class Library.
Neles conterá a lógica daquele módulo. Suas telas estarão dentro do projeto Web e em pastas ou como achar melhor organizar.

Essas telas farão o consumo da inteligência da camada correspondente!

Pensando:

Neste caso entra outra parte de estudo do seu negócio.

Já que você visa vender, tem que ver qual a melhor estratégia.
Vc vai programar configurações para tornar a modularidade do projeto mais configurável ou não?

Fui categórico na resposta, mas irá depender do rumo que você desejar!

Abraços.

Rodrigo Cezar
   - 03 abr 2013


Citação:
Eu tmb tive essa dúvida.

Por se modular, os projetos que estarão particionados, eles serão do tipo Class Library.
Neles conterá a lógica daquele módulo. Suas telas estarão dentro do projeto Web e em pastas ou como achar melhor organizar.

Essas telas farão o consumo da inteligência da camada correspondente!

Pensando:

Neste caso entra outra parte de estudo do seu negócio.

Já que você visa vender, tem que ver qual a melhor estratégia.
Vc vai programar configurações para tornar a modularidade do projeto mais configurável ou não?

Fui categórico na resposta, mas irá depender do rumo que você desejar!

Abraços.

Obrigado pelas respostas, bom, irei analisar e fazer alguns testes de como posso fazer, a principio seria algo mais configuravel, aonde o cliente "compra" o modulo que quer, e vai apenas o modulo que ele quer, para isso, uma dll não seria o ideal, já que todas as telas, controllers irão ficar no projeto Web...