Onde coloco minhas implementações de exemplo em minha estrutura?

5

Eu criei uma estrutura de templates bem simples e tenho implementações padrão para algumas das minhas interfaces usadas para passar informações. Eu os armazeno no namespace MyFramework.Default

No entanto, não tenho certeza de onde colocar implementações de exemplo, como um modelo que cria uma classe concreta. Este modelo parece ser útil para pessoas que usam meu framework, mas não tenho certeza se ele pertence a um assembly separado, ou talvez a um namespace dentro do framework.

Se é um namespace, existe alguma convenção para o seu nome?

    
por James 08.08.2012 / 16:44
fonte

3 respostas

1

Não há regras rígidas que conheço, mas a prática comum em C # seria colocar suas implementações padrão no mesmo pacote da interface. Por exemplo, IList e Lista ambas estão no system.collections.generic namespace.

Se a implementação for suficientemente especializada, talvez você queira colocá-la em um sub-pacote. O principal, porém, especialmente se o seu framework possui um número significativo de pacotes, é ser consistente.

Tente pensar sobre isso do ponto de vista de alguém que usará sua estrutura: idealmente, você quer que eles possam descobrir suas aulas sem precisar consultar a documentação.

    
por 08.08.2012 / 18:23
fonte
1

Assembléia Separada?

A resposta aqui depende de como você pretende que os exemplos sejam usados.
Se eles forem modelos que podem ser reutilizados diretamente por outras pessoas na estrutura, inclua-os na montagem. Se a intenção for um exercício do tipo copiar e colar, coloque-os em uma montagem separada.

Namespace

Aqui, sugiro que você use um namespace separado, independentemente de como os exemplos devem ser usados. Em geral, você esperaria que os usuários de sua estrutura tivessem seus próprios namespaces em torno de seu trabalho e se integrassem ao namespace de sua estrutura. Tornará o exemplo mais válido seguindo esse modelo você mesmo.
Da mesma forma, inverta esse conselho se você realmente pretende que eles estendam o espaço de nomes do seu framework.

    
por 08.08.2012 / 16:55
fonte
1

Suas implementações de exemplo devem estar em seu assembly de teste de unidade (você realmente deve ter um, é a maneira mais fácil de testar qualquer tipo de biblioteca geral que você esteja criando). Exemplos de uso de uma biblioteca geralmente servem bem como algum tipo de teste e vice-versa. Como o seu assembly de teste de unidade está vinculado à sua estrutura de teste (que você normalmente não deseja implantar), ele deve ser um assembly separado.

No que diz respeito ao namespace, concordo totalmente com o GlenH7.

    
por 08.08.2012 / 17:15
fonte