Ho la possibilità di sviluppare un progetto leggermente complesso e ho studiato i vari approcci che posso utilizzare per affrontare questo progetto. In genere avrei corso con il tradizionale approccio a 3 livelli, ma dopo aver passato un po 'di tempo a guardare le varie opzioni ho capito che una specie di ORM potrebbe essere più adatta e sto considerando la possibilità di ibernazione. Tuttavia, sto cercando alcune indicazioni sull'implementazione di nibernate e in particolare su come strutturare i miei BL e DAL in concomitanza con nHibernate.nHibernate, una soluzione n-Tier + richiesta di consulenza
Con nHibernate vorrei creare i miei oggetti (o DTO?) E utilizzare i metodi nibibli per le mie interazioni CRUD tutto nel mio DAL. Ma quello che non riesco a capovolgere è che gli oggetti definiti nel DAL probabilmente si troverebbero meglio all'interno del BL, cioè dove la validazione e altre cose possono essere eseguite facilmente, e io uso solo il DAL dai vari ObjectFactory/ObjectRepositories . Sfortunatamente sembra che attraverso i numerosi articoli che ho letto questo non sia menzionato o sfiorato e sono un po 'confuso.
Qual è il metodo di implementazione più accettato o più semplice quando si utilizza nHibernate in un sistema a 3 livelli? In alternativa, qual è il metodo convenzionale di esporre gli oggetti attraverso il livello aziendale dal livello dati alla presentazione?
FWIW essere molto attenti nel vostro processo decisionale in quanto potrebbe avere un impatto a lungo in esecuzione sul vostro carriera se fallisci. Avevo ben oltre un anno di esperienza con NHibernate, chiudendo 2 anni prima che avessi mai avuto un'applicazione aziendale completa in produzione utilizzando NHibernate anziché un'applicazione banale. Se si fosse presentata l'opportunità che avrei potuto farlo prima, sono sicuro che avrei avuto, ma con il senno di poi non penso che sarei stato in grado di avere successo il progetto fino a quando non ho avuto quasi 2 anni di esperienza con NHibernate . –
Quindi che tipo di gotcha sto cercando qui? L'idea di ibernare è di risparmiare tempo complessivo e di alleviare i problemi piuttosto che aumentarli. Atm, capisco che l'uso di WCF mina alcune delle caratteristiche di nHibernate ma usando il pattern di Respository e DTO si aggira, il mio piano è di definire il mio oggetto Business sul BL insieme ai file di mappatura e quindi utilizzare il pattern Respository all'interno del DAL, questo è un buon piano? – SeanCocteau
Sono abbastanza impressionato da Nhibernate, abbiamo un progetto da medio a leggermente complesso (asp.net MVC) in esecuzione su di esso ora, ma ci è voluto del tempo per ottenere l'hql giusto. (a volte abbiamo dovuto imbrogliare e usare SQL raw - a causa di una mancanza di conoscenza) ho anche usato il classico mapping/entity bindind con i vecchi skool php/asp e sql spagetti, e in altri progetti abbiamo provato ADO.NET e poi Oggetti dati Java. Ora su Nhibenrate che mi ha colpito di più. –