0

J'ai une question d'architecture. Nous avons de nombreuses applications dans notre entreprise et nous prévoyons d'utiliser ASP.NET MVC et Entity Framework dans nos futurs projets. Le prochain projet que nous devons implémenter est un système central d'autorisation/d'authentification. Il n'y a pas d'option pour utiliser un existant pour des raisons qui ne sont pas actuelles. Ce système sera probablement structuré comme un service. Ce que nous ne savons pas, c'est: comment les autres applications connaîtront-elles le «modèle» de ce système d'autorisation/d'authentification? Je veux dire, comment vont-ils connaître les utilisateurs, les rôles, etc. Quelle est la meilleure pratique? Un de nos collègues a suggéré de créer le modèle de structure d'entité (.edmx) dans une bibliothèque de classes. Le problème est que dans ce cas, nous devrions copier cette DLL pour tous les projets qui auront accès au système d'autorisation/d'authentification. Est-ce une bonne solution? Est-ce que quelqu'un a une meilleure idée?Comment faire pour que les applications accèdent à mon modèle sans avoir à passer mon modèle DLL à travers elles

Répondre

0

Juste pour ajouter à ce que DSO déjà dit, la manière standard de le faire est dans la boîte de dialogue « Ajouter Sevice Référence » dans Visual Studio. Il interroge votre service Web, détermine les classes nécessaires et les place dans un fichier reference.cs. Vous pouvez également utiliser svcutil.exe (ou si vous utilisez Silverlight, SLSvcUtil.exe) pour faire la même chose. Vous devez régénérer le fichier reference.cs chaque fois que vous changez l'interface de votre service Web, mais cela ne prend généralement que quelques secondes.

Il est également possible de créer un ensemble distinct d'objets de transfert de données qui peuvent être partagés entre les différentes couches de votre application, mais à moins que vous ayez des exigences architecturales très fortes, j'ai trouvé l'auto-généré classes pour travailler raisonnablement bien.

Voir aussi cet article ici sur les entités d'auto-suivi disponibles dans EF 4.0, si c'est une option pour vous: http://msdn.microsoft.com/en-us/magazine/ee335715.aspx.

3

Vous pouvez mettre en œuvre votre service en tant que service Web SOAP, ce qui signifie que votre modèle de données et méthodes seront exposées via SOAP et WSDL décrits à l'aide. Le service Web peut être utilisé dans n'importe quelle langue, sans que vous ayez besoin de distribuer des bibliothèques de classes.

De nombreuses langues ont également des outils qui génèrent automatiquement des emballages de classe côté client basé sur la description WSDL de votre interface SOAP (par exemple WSDL.exe pour les clients .NET).

Questions connexes