120 messaggi dal 24 febbraio 2006
Il tuo articolo è interessante e (per quel che mi riguarda) cade a fagiolo..Ora però mi viene il dubbio: quale strada scegliere a questo punto per avere un buon sistema ORM? C'è una strada buona tra gli strumenti microsoft o devo puntare su ORM di terze parti?
ciao grazie

Frederick@CityOfCastle
se ti interessa rimanere nella proposta fatta da microsoft, con tutti i limiti attuali e quelli futuri di EF, direi di sì. se invece non ti interessa (e non vuoi robe tipo l'integrazione con il compilatore/LINQ) allora un ORM di terze parti, tipo tanto per fare un nome NHibernate, non è una soluzione da scartare a priori dal punto di vista tecnico.
ovvio che investendo su EF ci si garantiscono i benefici del fatto che, tanto per fare un esempio, la policy che alcuni clienti hanno di non usare software open source venga onorata, perchè è dentro il framework stesso.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
575 messaggi dal 23 giugno 2003
www.padovaboy.it
W Nhibernate ;)
Gratuito, opensource e "storico" (con la versione java avrà 20anni) ;)
Per fortuna all'epoca ho ascoltato Riccardo Golia che nella sua infinita generosità unt professionalità mi consigliò nh per il mio progetto.
E RI-Pà fortuna che non ho seguito un altro che credeva ciecamente il linq 2 sql (vabbè era appena uscito e in effetti l'idea di usare tecnologia M$ con prospettive future non era malvagia) :P

PS: se posso aggiungere una nota su nh: ma davvero c'è ancora chi crede che non sia un progetto solido? No perché ogni tanto sento "ma è opensource".." magari domani lo chiudono perché non hanno i fondi"..: ben per questo dovresti scegliere un progetto opensource! Metti che l'azienda che ti fornisce il tuo ORM commerciale chiude o fa dei bracking-change tra una main e l'altra tali per cui il tuo progetto deve essere rifatto...che fai? ...con un progetto open questi problemi non si presentano: ti apri il tuo bel codice e modifichi dove serve ;)

E tanto per fare spam (no dai spero che non sia fuori dalle politiche del sito) indico il ng italiano:
http://groups.google.com/group/nh-it?hl=it

www.padovaboy.it dal 2001 con furore :D
PadovaBoy wrote:
PS: se posso aggiungere una nota su nh: ma davvero c'è ancora chi crede che non sia un progetto solido? No perché ogni tanto sento "ma è opensource".." magari domani lo chiudono perché non hanno i fondi"..: ben per questo dovresti scegliere un progetto opensource!

il fatto che sia open source è un deterrente in tutte le aziende medio-grandi, per il semplice fatto che non c'è un vendor da pagare (e pagare vuol dire che se fanno quello che tu citi più in basso smettono di ricevere i miei (generalmente tanti) soldi) e con cui "incazzarsi". non si parla di solidità, ma di pacchetto "all-in-one".

Metti che l'azienda che ti fornisce il tuo ORM commerciale chiude o fa dei bracking-change tra una main e l'altra tali per cui il tuo progetto deve essere rifatto...che fai? ..con un progetto open questi problemi non si presentano: ti apri il tuo bel codice e modifichi dove serve

si, nella fantasia. all'atto pratico fare una cosa del genere ha un costo che se sei uno "smanettone" che lavora per sè è giustificato dal tuo ego (guarda quanto sono figo, mi chiudo i bug da solo) e che per un'azienda che lavora sulle risorse e sui costi di questi ultimi è solo tempo (aka soldi) sprecati.
ecco perchè tendenzialmente queste aziende vanno su un prodotto commerciale del vendor a cui si sono già affidati per l'application framework. nel caso specifico, se microsoft fa un ORM che fa più schifo di uno open source, ma lo fa microsft che fa anche il framework e che per certo non cambia le API per sport, io azienda X che ragiona come sopra investo in microsoft e non in open source perchè microsoft la pago e sono certo che non mi farà niente di quello che tu dici. anche se so che probabilmente dovrò aspettare 2-3 versioni per avere tutto quello che dall'altra parte ho già. ragionare come un'azienda è diverso che ragionare come singolo dev "entusiasta".

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
575 messaggi dal 23 giugno 2003
www.padovaboy.it
Quel che dici è completamente vero.
Difatti l'ORM, come molte altre componenti, va scelto in base al progetto/cliente.
Se il cliente vuole mettere mano al progetto e mette un paletto "si usa pacchetti commerciali" e tiene conto del costo...benissimo, si usa il pacchetto commerciale..è una sua richiesta!
Pure io psicologicamente tendo ad affidarmi di più a tecnologie di M$ SOLO perché prodotte da lei (dio fa che mssql non sia un bagno di bug come mysql :P ..periodo in cui voglio migrare ;)) ma questa è n'altra storia ;)

La parte sullo smanettone/ego mi sembra un pò esagerata ;)
Tieni anche conto che sui progetti open solitamente ci lavorano parecchie persone..nh ne è un esempio: quindi se il tuo ego è particolarmente ridotto (come nel mio caso :P) prima ci provi e poi segnali il bug..

Tieni anche presente che di sono situazioni e situazioni: parlando di cose NON ORM ci possono essere prodotti iper-costosi che poi chiudono e ti lasciano in braghe di tela.
Ne parlavo l'altro giorno con un amico che fa sistemi di automatismo nelle petroliere e dopo alcune spiacevoli vicissitudini, ora scelgono (se possono) prodotti opensource perché gli garantiscono un tempo di vita più lungo delle applicazioni (del resto un team di laureati/certificati vuoi che non sappia indossare la maschera "dello smanettone" e correggere eventuali bug dei prodotti open a cui si son affidati?) :P
All'azienda a quel punto costa meno perché punta sulla stabilità e vita del progetto che NON può essere garantita da una sotfware house esterna che produce codice closed.

Cmq al solito: scelte!

www.padovaboy.it dal 2001 con furore :D
37 messaggi dal 30 maggio 2008
Ciao PadovaBoy,
io programma da pochi mesi quindi ho letto il tuo articolo e mi e nato una domanda(spero che non sia banale).
Mi piace WPF quindi lo sto studiando al momento se un domani mi capita di fare un progetto dove devo usare Wpf con un database qual'è la migliore scelta come ORM da usare con WPF.
Grazie dell'attenzione.
Ciao
575 messaggi dal 23 giugno 2003
www.padovaboy.it
1) non esiste la "miglior soluzione"
2) non sono un esperto di ORM e onestamente ho usato solo Nh
3) non sono proprio un esperto ;) ;)
4) WPF è una tecnologia per la presentazione e siccome è buona norma oggi giorno (in generale) creare progetti "layerizzati" ovvero "presentazione"-"business"-"persistenza" che appunto separano fisicamente "i compiti" di un'applicazione, che tu usi Nh o che usi un ORM commericale o fatto in casa, non dovrebbe mai cambiarti la vita rispetto alla tecnologia di presentazione che usi.
Es: se tu usi Nh per un progetto che ha sia un sito web sia una winform, lo strato di codice per la persistenza nel database di nh non dovrebbe cambiare (se non alcuni ovvi accorgimenti) tra la versione web e quella windows.

All'atto pratico poi non so se tu possa avere facilitazioni da un ORM piuttosto che un altro per lavorare con WPF ;)

www.padovaboy.it dal 2001 con furore :D
padovaboy ha scritto:
All'atto pratico poi non so se tu possa avere facilitazioni da un ORM piuttosto che un altro per lavorare con WPF ;)


fintanto che usano/ti fanno usare INotifyPropertyChanged sono tutti ugualmente "comodi" con WPF. il problema è che attualmente scegliendo EF ti leghi ad una soluzione (aka, ti porti dietro le referenze a qualcosa), perchè non supporta (ancora) POCO (cioè la persistence ignorance) anche se qualcosa si può comunque avere (vedi http://blogs.msdn.com/jkowalski/archive/2008/09/09/persistence-ignorance-poco-adapter-for-entity-framework-v1.aspx)

in definitiva, imho la risposta universale a "cosa scegliere" non c'è. c'è la risposta universale a non investire su LINQ to SQL se si comincia un progetto ora che abbia serie e concrete possibilità di sopravvivere nei prossimi anni.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.