passando dados em um aplicativo ntier

Como você passa dados para camadas em um aplicativo de n camadas? Mapeei três métodos diferentes.

UMA .net genérico objetos tabelas de dados genéricos, tabelas de hash, conjuntos de dados genéricos, seqüências de caracteres, ints etc ... e depois usar os conjuntos de dados para preencher seus objetos de negócios que são enviados para a camada da interface do usuári

alt text http://img11.imageshack.us/img11/460/generic.pn

http: //dabbleboard.com/draw? b = eiu165 & i = 26 & c = 54eef6f1ac01f03c85919518f4a24e798e57e133

Pró Não são necessárias camadas extrasVigarista Tem que trabalhar com conjuntos de dados e tabelas genéricos na camada de negócios

B) usando uma camada de entidades à qual as outras camadas se refeririam. Essa camada conteria conjuntos de dados com tipos fortes ou Objetos C Antigos Simples. Os objetos seriam principalmente dados de contêiner e muito pouca lógica. esses seriam os mesmos objetos enviados para a camada da interface do usuário.

alt text http://img8.imageshack.us/img8/6454/entities.pn

http: //dabbleboard.com/draw? b = eiu165 & i = 6 & c = d0c2b346894a96b12bd3867f630e474a2af098fa

Pró trabalhando com as mesmas classes em todas as camadasVigarista adicionando uma referência a entity.dll a todas as camadas

C) use objetos de transferência de dados (apenas objetos conatiner) definidos na camada DataAccess. depois, use esses objetos para preencher objetos de negócios que são enviados para a camada da interface do usuári

alt text http://img43.imageshack.us/img43/1236/transferp.pn

http: //dabbleboard.com/draw? b = eiu165 & i = 27 & c = f886efa3f9d5eb4b45ddb02361c79cdcdaec0a9b

Pró a camada de negócios não precisaria trabalhar com classes genéricasVigarista trabalhando com dois tipos de objetos e você teria que hidratar os objetos de negócios com os objetos de transferência

Tivemos uma discussão no trabalho e queríamos ver o que a comunidade pensava. Eu também adicionei um link para o dabbleboard. copie e crie em vez de editar.
Obrigad

questionAnswers(8)

yourAnswerToTheQuestion