Domanda

Sono all'avvio di un progetto usando ASP.NET MVC e ho iniziato a creare i miei modelli. Dal momento che conosco alcuni Ruby On Rails e vorrei usare un sistema il più possibile simile a Rails Record attivo .

Qualcuno ha usato Castle Projects Active Record in un'applicazione ASP.NET MVC (o un'applicazione pertinente) e ha qualche esperienza da condividere?

MVC e Castle Active Record sono la strada giusta o suggerisci di usare invece LinqToSql.

Per favore, condividi eventuali pensieri ed esperienze che potresti avere acquisito.

Modifica: per chiarire; Vengo da un lungo background di ASP.NET e C # ma ho guardato un po 'a Rails e adoro quanto sia facile creare l'ORM

È stato utile?

Soluzione

Ho usato Castle Active Record con ASP.NET MVC. Consiglio vivamente questo modello, poiché ActiveRecord / NHibernate sono molto più maturi di LINQ to SQL o Entity Framework.

Penso che ASP.NET MVC abbia un futuro brillante e lo consiglierei su Monorail per nuovi progetti. Tuttavia, come ho detto, ActiveRecord è (a mio avviso) un ORM superiore a LinqToSQL.

Altri suggerimenti

Proveniente da un background di Rails, Castle Project AR si sentirà più vicino a ciò a cui sei abituato, ma Linq to SQL è meglio integrato con l'intero ecosistema Microsoft e potresti scoprire che vale la pena di apprenderlo.

Linq to SQL ha alcuni pezzi mancanti importanti, tra cui molte o molte relazioni. Se stai andando al "puro" Microsoft route guarda .net 3.5 sp1 e Linq to Entities, che utilizza il nuovo ADO.net Entity Framework.

Ho usato Castle ActiveRecord con MonoRail ed è abbastanza facile da usare e intuitivo, anche se i problemi inevitabili che incontrerai sono spesso difficili da diagnosticare. Anche la sua documentazione non è la migliore (come con molti progetti open source). Per impostazione predefinita utilizza NHibernate ORM sottostante e, se in particolare dopo aver utilizzato un framework ORM, credo che ci sia stato qualche sforzo per supportare LINQ con NHibernate, non ho idea di quanto sia lontano.

Penso che dipenda anche dalle dimensioni dell'applicazione, se è un progetto rapido che non sarà necessariamente mantenuto pesantemente, la facilità d'uso di ActiveRecord potrebbe essere utile, ma anche LINQ sembra abbastanza facile e pulito . Se fosse un'applicazione più grande prenderei in considerazione la possibilità di eseguire il rollup del tuo livello dati utilizzando NHibernate, sempre se si tratta specificamente dell'ORM che desideri.

È necessario che l'ORM sia gratuito (come nella birra) / open source?

In caso contrario, consiglio vivamente eXpress Persistent Objects di DevExpress.

In caso contrario, non penso che LINQ sia simile, non ho usato ActiveRecord da Castle ma immagino che sia il più simile a RoR

MVC non sa quale ORM stai usando o c'è anche qualche strumento ORM dietro. Controller / Azione devono inviare riferimenti a oggetti a View, in modo che l'oggetto possa essere semplice int, array di stringhe, DataSet, oggetto Linq, oggetto ActiveRecord, qualunque cosa, non importa per View come un oggetto è pieno di dati!

Preferisci NHibernate come livello di persistenza.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top