Domanda

Questa risposta dice che Linq è rivolto a un leggermente diverso gruppo di sviluppatori di NHibernate, Castello, etc.

Essendo piuttosto nuovo per C#, nevermind tutti i DB cose che lo circondano:

  • Ci sono altre importanti, per mancanza di un termine migliore, SQL wrapper di NHibernate, Castello, Linq?
  • Quali sono le differenze tra di loro?
  • Che tipo di sviluppatori o di sviluppo sono diretto?

-Adam

È stato utile?

Soluzione

Quando dici Castello presumo che dire del Castello di Record Attivo?

La differenza è NHibernate è un O/M e è rivolto a sviluppatori che vogliono concentrarsi sul dominio piuttosto che del database.Con linq to sql, database pre-esistente e sei rapporti e alcune di programmazione sarà guidato da come il tuo database è definito.

Ora tra NHibernate e il Castello di ActiveRecord -- sono simili a che si guida la progettazione dell'applicazione dal dominio ma con NHibernate è fornire una mappatura dei file xml (o mappatura classi con fluente conoscenza NHibernate) dove nel Record Attivo si utilizza la convenzione sulla configurazione (utilizzando gli attributi per definire le impostazioni e colonne che non si adattano naturalmente).Castello di Active record è ancora utilizzando NHibernate in background.

Uno O/M non è necessariamente il " solo vero modo di andare.Dipende dal tuo ambiente, l'applicazione per il vostro sviluppo e la tua squadra.

Si potrebbe anche voler controllare Subsonico.È grande per il record attivo ma non è per il progetto in cui si desidera concentrarsi principalmente sul vostro Dominio.A seconda del progetto, di solito uso o NHibernate (con il Castello di Record Attivo) o Subsonico

Altri suggerimenti

LINQ è solo un insieme di nuovi C# caratteristiche:i metodi di estensione, le espressioni lambda, oggetto di inizializzatori di tipi anonimi, etc.

"LINQ to SQL", invece, è qualcosa che si può confrontare con altre SQL wrapper.

In realtà noi usiamo sia Linq e NHibernate insieme (con Fluente).Se si dispone di un po ' di pazienza con la curva di apprendimento, allora si sarà rapidamente cadere in amore.

NHibernate e Linq To Sql sono Object/Relational Mapper progettato per facilità di trattare con l'impedenza di mancata corrispondenza trovato tra gli oggetti e RDBMS.Se si desidera ottenere un testabile, persistente ignorante applicazione, NHibernate è la strada da percorrere.Raccomando sempre NHibernate su Linq To Sql.Entrambi gli strumenti sono volti all'eliminazione di trattare con l'accesso ai dati.Quante volte non si ha realmente bisogno di scrivere codice di accesso ai dati?

Il castello è una struttura di applicazione e Inversion of Control container e di non fornire i dati di accesso.Fornisce servizi per l'utilizzo di NHibernate, rendendo meno attrito, e fornisce anche un implemenation del Actuve modello di Record utilizzando NHibernate.

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