2009-06-28 17 views
7

Avviare un nuovo progetto è il 100% di nuovo sviluppo rispetto a un database legacy molto grande (300 tabelle). Il database non corrisponde molto bene al modello di business, quindi le mie prime riflessioni su dove utilizzare un ORM.Sono necessari consigli per un grande livello di accesso ai dati .net

Ho ottenuto un proof of concept che funziona con NHibernate piuttosto bene ... ma ho ottenuto MOLTA spinta di gestione sull'uso dello strumento "open source" "non supportato".

Qualche consiglio su altre soluzioni ORM da utilizzare? o consigli sull'argomento NHibernate?

Grazie mille.

+2

Se si utilizza NHibernate o qualcos'altro, vorrei sicuramente spiegare al management che l'uso di strumenti open source "non supportati" non rappresenta un rischio maggiore rispetto all'utilizzo di prodotti commerciali. È compito del tuo manager capire come funziona open-source e valutare correttamente i rischi nello sviluppo. I manager incompetenti non sono una scusa per passare a un prodotto inferiore (a meno che tu non sia Dilbert, ovviamente). – Paco

+0

Chiming in quel NHProf è uno strumento estremamente utile se si utilizza NHibernate. – jfar

+2

Solo un aggiornamento ... siamo andati sulla rotta NHibernate !!! Abbiamo fatto una dimostrazione del concetto usando un paio dei principali orm e NHibernate vinti. Ha semplicemente dichiarato i fatti alla gestione dei rischi e dei premi e ha approvato la decisione. – Todd

risposta

1

Ho usato Entity Framework sui miei ultimi due progetti, questi hanno avuto un numero simile di tabelle. Ha funzionato bene per noi. Abbiamo diviso le tabelle in diversi modelli di Entity Framework, max ca. 80 tabelle in un modello.

Entity Framework è più facile da vendere alla gestione poiché è Microsoft.

+1

re: "X è più facile da vendere alla gestione poiché è Microsoft." ... Vorrei che questo fosse vero per ragioni reali, e non solo perché Microsoft è grande e ha molti soldi. A volte le loro cose non sono così nitide. –

6

Se la vostra gestione è disposta a pagare per un ORM commerciale, allora sarebbe saggio considerare tale percorso.

Una limitazione che si può avere (attualmente) con NHibernate (a meno che non si desideri utilizzare il codice Alpha dal progetto NHibernateContrib) è che attualmente non si ha il lusso di usare un meccanismo LINQ/IQueryable per interrogare usando il sintassi LINQ sempre più familiare. Avrai ancora i meccanismi molto flessibili di Criteria e HQL, dipende solo se vuoi iniziare a investire nel fare tutto 'il modo LINQ' o no?

Dalla mia ricerca finora avete alcune opzioni abbastanza (tutto il sostegno LINQ interrogazione):

Raw Entity Framework (ci sono i partner commerciali che sono l'aggiunta di utensili e le caratteristiche su di esso troppo.)

Lightspeed sembra una specie di LINQ-to- [molti DB] con un buon supporto del tempo di progettazione.

Telerik OpenAccess è simile a Lightspeed.

IdeaBlade DevForce è costruito su EntityFrmework ma aggiunge alcune caratteristiche di usabilità. Se non si utilizza SQL Server, l'uso di IdeaBlade richiede ANCHE l'acquisto di un provider ORACLE-EF da un fornitore separato come DevArt o DataDirect.

LLBLGen Pro Buona gamma di funzioni e sviluppo attivo. Sono stato in giro per molto tempo.

DevArt fanno anche buoni strumenti di accesso ai dati e fornitori specifici per LINQ.

[UPDATE]Production-ready LINQ support è ora disponibile in NHibernate!

4

Perché non chiedi alla direzione questo?

Quante soluzioni di accesso ai dati sono state create e eliminate da Microsoft nel periodo in cui Hibernate/NHibernate sono in circolazione?

  • ADO
  • ADO.NET
  • DataSet fortemente tipizzato
  • Linq2Sql
  • Entity Framework
  • Entity Framework V2

Durante questo tempo Hibernate/NHibernate sono state diventando sempre più maturo. Non sta andando via.

+0

Plus NHProf è un punto di forza, si chiama Microsoft ORM con il proprio strumento di supporto? – jfar

+0

Upvote per NHibernate. Nonostante ciò, sto disperatamente aspettando il supporto LINQ. ^^ –

Problemi correlati