Question

J'ai une application générique ASP.NET (MVC), qui utilise NHibernate en tant que couche de persistance de modèle et des services d'adhésion / rôle / profil ASP.NET en tant que couche de gestion des utilisateurs.

La question est de savoir ce qui peut être considéré comme la meilleure pratique pour créer des liens entre les données du domaine et les utilisateurs. (Par exemple, si je veux créer un système de forum, je veux lier chaque sujet / publication à un utilisateur spécifique et que je souhaite afficher l'utilisateur à chaque demande).

Ce sont les possibilités auxquelles j'ai pensé:

  1. Stockez l'ID utilisateur dans NHibernate (comme si vous aviez une colonne Guid dans toutes vos classes de domaine (articles, sujets, etc.) devant référencer un utilisateur) et utilisez GetUser à chaque fois que vous avez besoin du nom de l'utilisateur. le guid (qui pourrait entraîner n + 1 requêtes)

    Variante B: Vous pouvez également stocker le nom d'utilisateur.

  2. Utilisez la même base de données et créez un objet de domaine utilisateur NHibernate maintenu, qui mappe les mêmes données que les services M / R / P.
  3. Oubliez M / R / P et créez un service de gestion des utilisateurs distinct basé sur NHibernate
  4. Oubliez les deux et utilisez J2EE / RoR / merb / DJango / etc. (veuillez ne pas choisir cette option :))
  5. autre ...
Était-ce utile?

La solution

J'irais à l'étape 2 (presque, car cela ne doit pas nécessairement être en lecture seule) et créerais un fournisseur d'adhésion personnalisé pour NHibernate.

Pour gagner du temps, vous pouvez en utiliser un existant comme celui de Manuel Abadia .

Vous gardez ainsi toute la puissance de NHibernate (chargement paresseux, etc.) et profitez également des services M / R / P.

Autres conseils

Il existe également un fournisseur d’adhésion basé sur NHibernate à l'adresse CodePlex

.

Quatre gars de Rolla ont un excellent post si vous voulez créer votre propre fournisseur par-dessus l’API d’adhésion asp.net: http://www.4guysfromrolla.com/articles/110310-1.aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top