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
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.