UML – DAO
Architecture
L’architecture du Core a été conçu afin de permettre l’utilisation d’un ORM de son choix.
Le package Dao doit respecter l’implémentation des différentes interfaces pour incorporer correctement l’ORM.
Différents ORM sont disponibles en .Net mais trés peu correspondent à nos critéres(prise en charge d’un large choix de bdd, gratuité, licence libre)
Dans le cas présent, NHibernate sera utilisé, mais d’autres ORM pourront être ajoutés plus tard.
NHibernate est un framework open-source en licence LGPL. C’est le portage d’Hibernate utilisé en java.
Il a été choisi pour sa simplicité de mise en place, le nombre de base de données pouvant être utilisées et l’importante communauté d’utilisateur d’Hibernate (anglophone & francophone & espagnophone aussi(mais je comprend rien…)).
Cas d’utilisation des classes de travail
Le Core peut utiliser les méthodes Get, Save, Update, Remove sur les objets à persister.
Diagrammes de Classe Dao (NHibernate):
Package Dao: (Dao regroupe les classes de gestion et paramétrage de l’ORM)
- NHibernateFactory : Permet de récupérer les classes de travail des OR(Objet relationnel)
- NHibernateUtils : Configuration d’NHibernate et gestion des Sessions
- NHibernateTransaction : Gestion des transactions (begin, commit, rollback)
Package Dao.Configuration:
- NHibernateConfigurationKey : Classe de travail de Core.Configuration.ConfigurationKey
Package Dao.Domain.Common:
- NHibernateCustomer : Classe de travail de Core.Domain.Common.Customer
- NHibernateLogUser : Classe de travail de Core.Domain.Common.LogUser
- NHibernateUser : Classe de travail de Core.Domain.Common.User
Package Dao.Domain.Prospect:
- NHibernateAssignCustomer : Classe de travail de Core.Domain.Prospect.AssignCustomer
- NHibernateAssignUser : Classe de travail de Core.Domain.Prospect.AssignUser
- NHibernateCallValidation : Classe de travail de Core.Domain.Prospect.CallValidation
- NHibernateCampaign : Classe de travail de Core.Domain.Prospect.Campaign
- NHibernateLogConversation : Classe de travail de Core.Domain.Prospect.LogConversation
Package Dao.Domain.Prospect.Script:
- NHibernateScriptAsk : Classe de travail de Core.Domain.Prospect.Script.ScriptAsk
- NHibernateScripting : Classe de travail de Core.Domain.Prospect.Script.Scripting
Package Dao.Edi:
- NHibernateMapItem : Classe de travail de Core.Edi.MapItem
- NHibernateMapping : Classe de travail de Core.Edi.Mapping