Pergunta

Eu estou trabalhando em um relativamente pequeno aplicativo asp.net web e estou querendo saber se há realmente a necessidade de empregar arquitetura n-tier completo. Para uma idéia do tamanho; há cerca de 20 tabelas de banco de dados.

No passado, eu usei uma abordagem 2-tier, onde a lógica de negócios e acesso a dados são agrupados em uma única biblioteca de classe com foi uma aplicação web asp.net formando a camada de interface do usuário e este parecia trabalho OK.

Existe um tamanho limite ou alguma regra de ouro, onde você deve empregar n-tier?

Foi útil?

Solução

Pode ser relativamente pequeno agora, mas você acha que pode crescer no futuro? Do seu curso você tem que ser pragmática, mas se você já tem separações naturais de interesse dentro do seu conjunto único, então é bastante fácil de dividir isso em duas ou mais montagens. Se as próprias classes combinam a lógica de negócios e acesso a dados, então você tem mais trabalho em suas mãos. No entanto, eu diria que é quase não mais trabalho para escrever sua lógica de acesso a dados em um único conjunto e sua lógica de negócio no outro, em paralelo, se necessário, do que escrever tudo em um só lugar, em primeiro lugar.

Outras dicas

Se você antecipar o crescimento ou mudança de qualquer tipo, ele iria ajudar a reforçar tiers explícitas agora. Mas se este é o seu próprio projeto e você não se importa ponying o custo da mudança ou o código totalmente integrado, em seguida, basta cortar fora a ele como uma camada.

É tudo sobre custo futuro. No presente, apenas programação que você vá é de longe o mais barato, mas não responde a alterações muito bem. Com o planejamento camadas, há um custo inicial, mas ele pode lidar com a mudança e arrancando implementações camada inteira melhor que o primeiro pode se aproximar.

Assim, sua regra de ouro é governado por quem vai pagar para a mudança e quando.

Sim, vale a pena. O que você está propondo é cortar um conjunto solução. Eu não posso te dizer quantas vezes isso trouxe dor me e sofrimento. O outro lado da moeda é desenvolvedores Astronaught que overbuild suas soluções. Você quer evitar isso também.

Ser simples, construir suas três camadas, eu sugiro que você experimente o LINQ to SQL, faz construir o DAL um piscar de olhos, e então você pode se concentrar na construção de uma UI magro, e uma BLL que irá lidar com o trabalho pesado. Ele não vai te levar muito mais tempo para fazê-lo e ele vai permitir testes unitários mais tarde.

Existe um tamanho limite ou alguma regra de ouro, onde você deve empregar n-tier?

Não que eu estou ciente de, mas eu vou jogar isso fora: se há uma chance de este aplicativo web pode crescer (ou backends de mudança) e / ou outra pessoa pode acabar mantê-lo, eu iria considerar ir com uma abordagem n-tier.

Basta mantê-lo possível. É provavelmente um exagero, mas agora não escreva-se em uma situação onde é impossível. Refatoração em grande escala irá demorar mais tempo do que reconstruí-lo a partir do zero (e provavelmente vai ser apenas isso, reconstruir a partir do zero).

O último projeto em que trabalhei (veio no final) foi escrito de uma forma que romper as camadas era praticamente impossível. lógica de dados entrelaçados com lógica de negócios entrelaçada com a lógica de apresentação. No curto prazo, que era tão bom quanto ele nunca ia ser, porque corrigi-lo teria levado vários meses.

Não é muito difícil de manter tudo separado assim como eu disse anteriormente, apenas mantê-la possível.

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