orientação de aplicação composta (Prism) e Modelos
Pergunta
Onde na solução / projetos, devo colocar os modelos para a camada de acesso a dados. Por exemplo, se eu tiver um módulo de login que precisa usar uma tabela de usuários em um banco de dados, e eu tenho um modelo User.cs. Onde é que esse arquivo ir. Se outros módulos precisam ser capazes de acessar este User.cs para obter informações, então eu não posso colocá-lo no módulo. Mas então eu não vejo como isso pode permanecer baixo acoplamento.
Solução
Para o acoplamento, você normalmente armazenar uma interface para esses objetos em um conjunto separado para todos os outros projectos para se referir a. Na minha empresa nós chamamos isso de "Contratos" montagem e que, geralmente, contém apenas interfaces ou tipos simples .
Quanto , onde o modelo deve ir, se você manter suas interfaces em uma DLL separada para que todos possam usar, você pode colocar o seu modelo onde quiser . Geralmente eu considero tanto meus contratos WCF ou meu ORM (como Linq2Sql, etc) tipos para ser o meu modelo e eu armazená-los onde quer que eu normalmente armazenar esses tipos de coisas. O "modelo" que eu considero ser um pouco mais fluido ... onde quer que se sente bem.
Eu sou mais rígida sobre Visualizações e ViewModels estar em namespaces que terminam com "Visualizações" e "ViewModels"
Espero que isso ajude.