Crad's .NET Blog

L'UGIblog di Marco De Sanctis
posts - 190, comments - 457, trackbacks - 70

NHibernate

Un eccezionale ORM open source
[NHibernate] Mapping di un dictionary

Non mi stancherò mai di decantare la versatilità di NHibernate nel supportare domain model eterogenei. Esempio pratico: il nostro sito internet ha un sacco di pagine pressoché statiche, tipo il classico "Chi siamo", "Mission dell'Azienda", ecc.ecc. Vogliamo permettere all'amministratore di inserire questi dati nel DB, ma vogliamo anche lasciarci la strada aperta ad aggiunte future, così se domani il cliente si sveglia e vuole anche una bella pagina con i contatti, possiamo aggiungerla senza modificare lo schema. Un'idea può essere quella di contenere tutti questi dati all'interno di un bel Dictionary, ma come lo mappiamo con NHibernate? Presto detto, basta...

posted @ martedì 5 febbraio 2008 02:12 | Feedback (8) | Filed Under [ NHibernate ]

Un buon esempio di IoC e separation of concerns

Parlo di Cuyahoga, il noto CMS basato su Castle Windsor e NHibernate. Incuriosito da questo post di Ayende ieri ne ho spulciato un po' i sorgenti. E visto che li considero didatticamente interessanti, ve li consiglio. Certo, non è da prendere tutto come oro colato (il modulo del Forum, ad esempio, espone tutti i servizi in una grande, enorme, monolitica classe, che accede direttamente a NHibernate, brrrrr...) però può essere una buona sorgente per qualche idea. Tanto per dirne una, mi è piaciuta la strutturazione del Data Access Layer che sfrutta la "trasversalità" di NHibernate: IUserDao espone solo i servizi specifici dell'utente...

posted @ giovedì 29 novembre 2007 13:12 | Feedback (4) | Filed Under [ NHibernate Architettura ]

Automatic Properties di C# 3.0: servono davvero?

C# 3.0 permette una notazione compatta per le proprietà che si limitano semplicemente a wrappare un corrispondente field: 1: public string Descrizione { get; set; } Sulle prime mi è sembrata un'innovazione piuttosto utile, se non altro per le entity di dominio, che notoriamente non hanno logica e che risultano essere parecchio più veloci da scrivere e leggibili. Così utili che ho anche realizzato un accessor per farle supportare da NHibernate (lo trovate qui). Poi ho iniziato a sperimentare un po' e... beh... mi convincono fino ad un certo punto. Perchè? Beh, ovviamente devono avere...

posted @ mercoledì 8 agosto 2007 23:47 | Feedback (2) | Filed Under [ NHibernate Visual Studio Misc ]

NHibernate su Aspitalia.com

Oramai non ne faccio più mistero: chiacchierare di NHibernate mi piace dannatamente, cercare di contribuire alla sua diffusione ancora di più, sfruttarlo per scopi professionali è poi una vera goduria. Fatto sta che ho rotto talmente le scatole a qualcuno, che alla fine abbiamo convenuto che era meglio mettere nero su bianco e vedere cosa si riusciva a tirar fuori. Risultato? Oltre le più rosee aspettative: un articolo introduttivo e *MOLTO* pratico, pubblicato oggi su Aspitalia.com, e addirittura uno speciale su quello che è un po' l'ORM del momento. Ringrazio tantissimo Daniele, Ricky, Ugo e Marco di Aspitalia.com che mi hanno supportato...

posted @ martedì 19 giugno 2007 15:01 | Feedback (3) | Filed Under [ NHibernate ]

[NH e le feature semisconosciute] La cache di 2° livello

E' innegabile che, nell'ultimo anno, si faccia un gran parlare in rete di O/RM ed in particolare di NHibernate. Capita sempre più spesso di leggere un post qui, un articolo lì e soprattuto tante, tantissime domande su forum e newsgroup di persone in qualche modo affascinate o incuriosite da questo modo relativamente nuovo di gestire le problematiche di persistenza. Ciò che mi ha sempre colpito è come, a ragion veduta, in molti vedano in NHibernate un qualcosa che finalmente si occupa di scrivere SQL al posto nostro. Ma in realtà c'è molto, molto di più in quel dannato assembly, features che tante volte...

posted @ giovedì 7 giugno 2007 22:57 | Feedback (2) | Filed Under [ NHibernate ]

NHibernate Search

Come segnalato da Ayende, è oramai praticamente completo NHibernate.Search. Cos'è? E' l'integrazione con NHibernate del famoso full-text search engine Lucene. La documentazione non è ancora disponibile, ma il funzionamento è assolutamente analogo a quello della controparte Java, che si trova qui. Non vedo l'ora di dargli un'occhiata.   Technorati tags: NHibernate

posted @ lunedì 2 aprile 2007 15:34 | Feedback (0) | Filed Under [ NHibernate ]

Stasera la chat sugli ORM

Ancora grazie ad Emanuele per aver pensato a questa iniziativa. Farò di tutto per non mancare, perché l'argomento mi appassiona tantissimo (oltre che essere di estrema attualità). Appuntamento alle ore 21, le modalità di partecipazione sono descritte in qui.

posted @ lunedì 22 gennaio 2007 12:58 | Feedback (0) | Filed Under [ NHibernate Architettura Misc ]

[NHibernate] Session.Get o Session.Load ?

L'interfaccia ISession di NHibernate mette a disposizione due metodi per recuperare una entity da DB a partire dal suo identificativo, ossia ISession.Get e ISession.Load. La prima differenza che salta all'occhio è che, nel caso l'oggetto voluto non esista, Get ritorna una null-reference, mentre Load solleva una ObjectNotFoundException. Molto più importante, secondo me, è però il fatto che, nel caso in cui il tipo sia configurato come Lazy Initializable (quindi attributo Lazy="true" nel mapping della classe), Session.Load restituisce il proxy e non l'oggetto stesso. E' un aspetto molto comodo tutte le volte in cui abbiamo bisogno di una reference ad...

posted @ martedì 16 gennaio 2007 17:03 | Feedback (0) | Filed Under [ NHibernate ]

[NHibernate] Nuovo connection model, cosa cambia?

Janky ha scritto in questo post che una delle novità della nuova beta di NHiberante 1.2.0 è il nuovo connection model. Qual è la differenza? Piccola premessa: è (ed era) possibile fornire alla session una propria connessione, creata esternamente a NHibernate, quindi; in questo caso sarà sempre responsabilità dell'utente gestirne il ciclo di vita. E nel caso (più comune) in cui lasciamo fare a NHibernate? Prima di beta 3 La connessione veniva aperta alla prima occasione in cui si rendeva necessaria un'interazione con il DB e da quel momento restava aperta fino alla dispose della Session o ad una chiamata...

posted @ giovedì 11 gennaio 2007 14:02 | Feedback (0) | Filed Under [ NHibernate ]

La mia sull'evento di DotNetMarche

Scrivo solo oggi perché ho avuto un weekend piuttosto intenso! Che dire... contentissimo! Intanto mi sento di ringraziare Gian Maria, Diego, Stefano e tutti gli altri ragazzi per la splendida organizzazione, per il caffé nel termos che mi ha salvato dal crollo, per i pasticcini che invece hanno salvato Igor e soprattutto l'albero di natale aziendale, senza il quale io e Janky non avremmo potuto sistemare le ultime robine sulle slide durante la sessione di Simone (già... perché da che mondo è mondo, le slide e le demo devono essere completate 30 secondi prima di parlare, altrimenti porta sfiga). Mi spiace di...

posted @ lunedì 18 dicembre 2006 13:01 | Feedback (1) | Filed Under [ .Net 2.0 NHibernate Misc ]

Full NHibernate Archive

Powered by:
Powered By Subtext Powered By ASP.NET