0

Dernière tentative d'obtenir une réponse à ce sujet. J'ai une application ASP.NET simple qui utilise Hibernate pour l'accès aux données. L'interface utilisateur graphique peut appeler des méthodes sur un objet client comme "CalculateTotalSumOfOrders()". Le chargement différé (même si ce n'est pas optimal) fonctionnera pour moi, et lorsque les collections Orders et OrderLines sont référencées dans les objets du domaine, elles seront récupérées automatiquement à partir de la base de données.Comment réarchiver la couche DAO Hibernate de l'application ASP.NET pour la déplacer vers Silverlight?

Supposons maintenant que je réécris la même application pour Silverlight, car elle est meilleure que ASP.NET. Je ne suis plus capable de faire du chargement paresseux ou de l'accès aux données, car le client Silverlight s'exécute dans le navigateur. Comment résoudre ce problème sans trop réfléchir au type de service à utiliser pour obtenir des données dans le client Silverlight?

Répondre

0

Vous essayez de prendre une application côté serveur qui interagit avec votre base de données et effectue un chargement paresseux, et la convertissez en une application côté client sans trop de travail? Désolé, ça ne va pas marcher. Ce dont vous avez besoin, c'est une réorganisation majeure de votre application.

Désolé ...

+0

Ce n'est pas grave parce que je suis assez tôt. Comment le réaménager pour prendre en charge les clients ASP.NET, Silverlight et Windows avec un minimum de frais généraux? – badbadboy

1

Votre meilleur pari pour soutenir toutes ces plates-formes est d'utiliser un service Web. Si vous utilisez Silverlight, vous pouvez choisir d'utiliser WCF + LINQ pour SQL, ce qui est démontré here. ASMX, WCF, REST. Cette combinaison peut également être utilisée dans ASP.NET (si elle est exécutée sur .NET 3.5) et dans Windows Desktop Apps (à nouveau .NET 3.5). Un projet open source appelé InterLinq pourrait vous intéresser, il vous permet essentiellement de construire des requêtes LINQ to SQL côté client, puis de les transmettre via WCF à un serveur qui exécute la requête et renvoie le résultat. Cela peut être trouvé here. Je l'ai expérimenté dans le passé et ça marche plutôt bien.

1

Une option qui prendrait en charge les clients Silverlight et Windows serait le nouveau ADO.NET Data Services dans .NET 3.5 SP1. Il s'agit d'un ensemble de services qui exposent votre schéma de base de données via une interface WCF. Vous pouvez ensuite récupérer les données à partir de Silverlight ou d'un client Windows à l'aide d'un client WCF. Comme l'a dit @McWafflestix, vous ne pourrez plus faire de chargement paresseux, mais à mon avis, c'est une bonne chose parce que récupérer des données est maintenant une opération beaucoup plus "coûteuse".

0

*

"C'est correct parce que je suis assez tôt là-bas. Comment voulez-vous rearchitect à support à la fois ASP.NET, Windows et silverlight clients avec un minimum les frais généraux ?"

*

Je sais que je suis de répondre à cette question ainsi passé l'expiration, va de toute façon ici. Je suggère que vous utilisiez le modèle de conception MVP; Cela vous aidera à créer plusieurs "Vues" pour travailler avec votre modèle. Afin de vous assurer que vous prenez en charge les clients Windows, vous devez exposer votre Business Layer à l'aide d'une couche de services (lire WCF).

Questions connexes