Pergunta

Eu estou tentando vir acima com as melhores práticas em estrutura de diretório do projeto.

meu último pensamento é que não deve haver classes no diretório raiz de um projeto. Todas as classes devem ir sob um dos seguintes diretórios

  • UI
  • BusinessObjects
  • BusinessLogic
  • DataAccess

eu gostaria de ouvir outras pessoas pensaram em se existem casos de uso para colocar as coisas no nível da raiz ou encontrar classes que não se encaixam em

Foi útil?

Solução

Se você está falando sobre C #, então eu iria separar o seu DAL, BLL, GUI para diferentes projetos em vez de um projeto. E ter uma solução. Isto irá forçar cada arquivo de código para estar dentro de um dos projectos.

Eu adicionei um exemplo:

  • Solução: ProjectName
    • Project: DAL (Namespace: ProjectName.DAL)
      • Pasta: Repositórios (namespace: ProjectName.DAL.Repositories)
      • pasta: Contratos (namespace: ProjectName.DAL.Contracts)
      • Files: Seu Mapeamento Entidade de configuração
    • Project: BLL (Namespace: ProjectName.BLL)
      • Pasta: Serviços (namespace: Project.BLL.Services)
      • pasta: Entidades (namespace: Project.BLL.Entities)
      • Files: classes de configuração IOC / geral de lógica de negócios
    • Project: Partilhada (Namespace: ProjectName.Shared)
      • Arquivos: General compartilhada lógica throught toda a sua aplicação (por exemplo, uma constante InvalidIdentifier) ??
      • Este projeto não deve fazer referência a outros projetos na solução ..
    • Project: Website (Namespace: ProjectName.Website)
      • Seu site asp.net UI
    • Projeto: WinForms (Namespace: ProjectName.Winforms)
      • Seus winforms UI

Se possível, deve dar o site e winforms projetar um nome em relação à sua aplicação.

Outras dicas

Este blogue deve fornecê-lo com alguma leitura interessante, apesar de ser três anos . Pode dar-lhe ideias além dos da estrutura de diretórios apenas.

Os únicos arquivos que eu colocar pasta raiz são Program.cs e Program.ico (se é executável da aplicação).

Eu não fazê-lo, mas não tem nada a ver com a estrutura de diretório (para mim). tudo que eu quero o meu código em namespaces significativas.

Eu sempre colocar a classe base para meus projetos exceções na raiz.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top