Domanda

Attualmente sto usando NetTiers per generare il mio livello di accesso ai dati e livello di servizio.Sono stato con NetTiers per oltre 2 anni e hanno trovato per essere molto utile.Ad un certo punto ho bisogno di guardare LINQ quindi le mie domande sono...

  1. Chiunque altro ha passato da NetTiers a LINQ to SQL?
  2. È stato questo passaggio una cosa buona o cattiva?
  3. C'è qualcosa che dovrei essere a conoscenza?
  4. Vorresti raccomandare questo switch?

Fondamentalmente vorrei il benvenuto a qualsiasi pensiero .

È stato utile?

Soluzione

  1. No
  2. Vedere #1
  3. Si deve diffidare di standard di astrazione sopra la testa.Inoltre è molto basato su SQL Server nel suo stato attuale.
  4. Si utilizza SQL Server, allora forse.Se si sta utilizzando LINQ per altre cose, più che di dati XML (grande), Oggetto di dati, set di dati, allora sì, si dovrebbe potrebbe passare per un uniforme di dati sintassi per tutti loro.Come lagerdalek menzionato se non è rotto non aggiustarlo.Dal rapido sguardo .netTiers Application Framework, direi che se si dispone già di un investimento con la soluzione sembra dare molto di più di un semplice Livello di Accesso ai Dati e si dovrebbe attaccare con esso.

Dalla mia esperienza LINQ to SQL è una soluzione per le piccole e medie progetti.Si tratta di un ORM che è un ottimo modo per migliorare la produttività.Anche dovrebbe darà un altro livello di astrazione che permette di modificare il livello al di sotto qualcos'altro.Il designer di Visual Studio (e credo VS Express) è molto facile e semplice da usare.Ti dà il comune di trascinamento e proprietà di base di modifica del mapping di oggetto.

@ Jason Jackson - Il Progettista non consentono di aggiungere proprietà da parte, tuttavia, è necessario specificare gli attributi della proprietà, ma è la prima volta, si potrebbe prendere 3 minuti in più rispetto a quella iniziale di trascinamento della tabella nella finestra di progettazione, tuttavia, è necessario solo una volta al cambiamento nel database stesso.Questo non è troppo diverso da altri Orm, però è giusto che si potrebbe fare questo molto più facile, e trovare solo le proprietà che hanno cambiato, o anche implementare un qualche tipo di refactoring, lo strumento per questo tipo di esigenze.

Risorse:

Nota che Parallel LINQ è stato sviluppato per consentire molto maggiore di prestazioni multi-core macchine.

Altri suggerimenti

Ho provato a utilizzare Linq to SQL su un piccolo progetto, e pensare che volevo qualcosa che mi potrebbe generare rapidamente.Mi sono imbattuto in un sacco di problemi nel designer.Per esempio, ogni volta che si desidera aggiungere una colonna a una tabella in sostanza, è necessario rimuovere e aggiungere nuovamente la definizione della tabella nella finestra di progettazione.Se si dispone di impostare tutte le proprietà sul tavolo e poi è necessario re-impostare le proprietà.Per me questo è davvero rallentato il processo di sviluppo.

LINQ to SQL è bello.Mi piace molto l'estensibilità.Se si può migliorare il designer potrei provare di nuovo.Penso che il quadro sarebbe beneficiare di un po ' di più la funzionalità volte a scollegato, come modello di sviluppo web.

Check out Scott Guthrie LINQ to SQL serie di post di blog per alcuni grandi esempi di come usarlo.

NetTiers è molto buono per la generazione di un pesante e robusto DAL, e noi utilizzare internamente per le librerie di base e quadri.

Per come la vedo io, LINQ (in tutte le sue incarnazioni, ma specificamente come penso che tu stai chiedendo di SQL) è fantastico per un rapido accesso ai dati, e noi in genere lo uso per più agile casi.

Entrambe le tecnologie sono abbastanza rigide a modifiche senza rigenerazione del codice o dbml livello.

Detto questo, usato correttamente LINQ 2 di SQL è abbastanza una soluzione robusta, e si potrebbe anche iniziare ad usarlo per lo sviluppo futuro, a causa della facilità di utilizzo, ma non vorrei buttare la DAL per - se non è rotto ...

La mia esperienza mi dice che utilizzando linq è possibile ottenere le cose fatte più velocemente, tuttavia le azioni effettive per il database sono più lenti.

Quindi...se si dispone di un piccolo database, dico andare per esso.Se non, vorrei aspettare per alcuni miglioramenti prima di cambiare

Sto utilizzando LINQ to SQL abbastanza grande progetto (circa 150 tavole) e si sta lavorando molto bene per me.L'ultimo ORM che ho usato era IBatis e ha funzionato bene, ma ha avuto un sacco di noia per ottenere il mapping di fatto.LINQ to SQL funziona molto bene per me e finora ha dimostrato di essere molto facile da usare, fuori dalla scatola.Ci sono sicuramente alcune differenze che è necessario superare in transizione, ma mi sento di raccomandare l'uso.

Nota a margine, io non ho mai usato o leggere su NetTiers in modo che io non sconto la sua efficacia, ma LINQ to SQL, in generale, ha dimostrato di essere un estremamente valida ORM.

Il nostro team ha utilizzato per uso NetTiers e trovato per essere utile.MA...il più abbiamo, più abbiamo trovato mal di testa e il dolore dei punti.Per esempio, ogni volta che si apporta una modifica al database, è necessario ri-generare il DAL con CodeSmith che ha coinvolto:

  • ri-generazione di migliaia di righe di codice in 3 progetti distinti
  • ri-generare centinaia di stored procedure

Forse ci sono altri modi per farlo, ma questo è quello che abbiamo dovuto fare.Il re-gen del codice sorgente è stato ok, spaventoso, ma ok.Il vero problema è venuto con le stored procedure.Non pulire qualsiasi inutilizzati stored procedure in modo se si è rimosso il gioco dal tuo schema e ri-gened il DAL, la stored procedure per la tabella non vengono rimossi.Inoltre, questo è diventato un bel mal di testa per la modifica di database, script, dove abbiamo dovuto confrontare la vecchia struttura di database per il nuovo e creare un cambiamento script per aggiornare le installazioni client.Questo script può essere eseguito in decine di migliaia di righe di codice sql e se ci fosse un problema di esecuzione, che ci invariabilmente, era piuttosto un dolore per risolvere il problema.

Poi la luce si accese, NHibernate come un ORM.Certamente ha un tempo di salita della rampa, ma ne vale la pena.C'è un sacco di supporto in modo che se c'è qualcosa che devi fare, più che probabile che è stato fatto prima.È estremamente flessibile e permette di controllare ogni aspetto di esso e poi alcuni.Diventa anche più facile e più facile da usare.Fluente Nhibernate e arrivando come un ottimo modo per sbarazzarsi dei file di mapping xml che sono necessari e NHibernate Profiler è dotato di un'ottima interfaccia per vedere cosa sta succedendo dietro le quinte per aumentare l'efficienza e rimuovere la ridondanza.

Muovendo da NetTiers per NHibernate è stata dolorosa, ma in un buon modo.Ci ha costretti a muoversi in una migliore architettura e ri-valutare le esigenze funzionali.NetTiers fornito tonnellate di codice di accesso ai dati, ottenere questo ente in base al suo id, ottenere questo ente il vincolo di chiave, ottenere una tlist e vlist di questo e quello, ma la maggior parte dei quali inutili e inutilizzati.NHibernate con un generico e di repository repository personalizzati solo ridotto tonnellate di codice non utilizzato e davvero maggiore leggibilità e affidabilità.

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