Pergunta

Estou iniciando um projeto utilizando ASP.NET MVC e já comecei a criar meus modelos.Desde que eu sei alguns Ruby On Rails e gostaria de usar um sistema semelhante ao Rails Registro Ativo que possível.

Alguém já usou Registro ativo de projetos de castelo em uma aplicação ASP.NET MVC (ou qualquer aplicação relevante) e tem alguma experiência para compartilhar?

MVC e Castle Active Record são o caminho certo a seguir ou você sugere que eu use LinqToSql.

Por favor, compartilhe quaisquer pensamentos e experiências que você possa ter adquirido.

Editar:Esclarecer;Eu venho de uma longa experiência em ASP.NET e C#, mas olhei um pouco para Rails e adorei como você pode criar facilmente o ORM

Foi útil?

Solução

Eu usei o Castle Active Record com asp.net MVC. Eu encorajo esse modelo, pois o ActiveRecord/Nhibernate é muito mais maduro que o LINQ para SQL ou a estrutura da entidade.

Eu acho que o ASP.NET MVC tem um futuro brilhante e o recomendaria sobre o monotrilho para novos projetos. No entanto, como eu disse, o ActiveRecord é (na minha opinião) um ORM superior ao linqtosql.

Outras dicas

Vindo de um plano de fundo do Rails, o Castle Project AR se sentirá mais próximo do que você está acostumado, mas o LINQ para SQL é melhor integrado a todo o ecossistema da Microsoft e você pode achar que isso vale o esforço extra para aprendê -lo.

Linq to SQL tem algumas peças importantes faltando, notáveis ​​muitos para muitos relacionamentos.Se você estiver seguindo a rota "pura" da Microsoft, consulte .net 3.5 sp1 e Linq to Entities, que usa o novo ADO.net Entity Framework.

Eu usei o ActiveRecord do Castle com o monotrilho e é bastante fácil de usar e intuitivo, embora os problemas inúteis que você encontraremos geralmente são difíceis de diagnosticar. Sua documentação também não é a melhor (como em muitos projetos de código aberto). Por padrão, ele usa o Nibernate ORM por baixo, e se você estivesse especificamente após o uso de uma estrutura ORM, acredito que houve algum esforço para apoiar o LINQ com o Nibernate, não tem idéia até onde está longe.

Eu acho que também depende do tamanho do aplicativo, se é um projeto rápido que não será necessariamente mantido fortemente, então a facilidade de uso que o ACTIRECORD dá pode ser útil, mas o LINQ também parece muito fácil e interessante. Se fosse um aplicativo maior, eu consideraria rolar sua própria camada de dados usando o Nibernate, novamente se for especificamente o ORM que você deseja.

Você precisa que o ORM seja gratuito (como em cerveja)/código aberto?

Se não o fizer, eu recomendo expressar objetos persistentes de Devexpress.

Caso contrário, então não acho que Linq seja semelhante, não usei o ActiveRecord do castelo, mas acho que é o mais parecido com o ROR

O MVC não sabe o que ORM você está usando ou há até uma ferramenta ORM atrás. O controlador/ação deve enviar referências de objeto para visualização, para que o objeto possa ser simples int, matriz de string, conjunto de dados, objeto LINQ, objeto ActiveRecord, qualquer que seja, não importa para visualizar como algum objeto é preenchido com dados!

Prefira o Nibernate como sua camada de persistência.

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