Quindi, sto valutando Entity Framework e NHibernate (non sto cercando una battaglia contro EF contro NH qui, però!).
Una cosa che vedo molto spesso è che NHibernate è raccomandato per i progetti di database "legacy" / brownfield, e le ORM più leggere (Dapper, ecc.) sono a volte raccomandate per i nuovi db.
Applicherò il mio ORM a un database brownfield. Quali caratteristiche specifiche di NHibernate lo rendono così ampiamente raccomandato per dbs "legacy". (Non ho mai sentito nessuno dire "ecco perché NHibernate è migliore per i legacy DB - Voglio davvero saperlo, così posso valutare NHibernate in modo appropriato)
E a proposito, qual è la definizione di legacy qui? Le persone significano
- "database non ben normalizzati"?
(O) - "database a cui si accede tramite mezzi non ORM, come query SQL o processi memorizzati? (O)
- non parla affatto del database, ma si riferisce ai classici sistemi di videosorveglianza a 2 livelli (o alle applicazioni web a 2 livelli, dove c'è stato di sessione spessa e nessun livello di applicazione)?
(O) - Qualsiasi database che non è un database noSQL?
Se è di qualche utilità la discussione. Userò questo ORM per creare software distribuito e multilivello. Quindi penso che molte delle funzionalità stateful in ORM - come il rilevamento delle modifiche, ecc. Non mi riguarderanno molto.