2010-09-14 4 views
1

Je suis un novice en ce qui concerne WCF et j'essaie de trouver le type de projet WCF à utiliser pour mon application Windows Phone 7.Quelle est la saveur de WCF à utiliser avec Windows Phone 7

Il semble y avoir:

  1. service WCF
  2. Silverlight compatible service WCF
  3. WCF Data Service

Pour autant que je peux dire - # 1 est une variante plus , nécessite plus de configuration et une interface. # 2 a des commutateurs activés qui sont requis par Silverlight. # 3 Entretiens avec un modèle d'entité. J'utilise un modèle d'entité donC# 3 semble bon, mais les exemples que j'ai vus ressemblent à cela exposer le modèle d'entité entière. Je veux choisir quelles tables exposer, et créer mes propres méthodes de service en utilisant linq pour joindre des tables. Est-ce que le # 3 peut le faire?

# 2 semble mieux que le n ° 1 car il ne semble pas nécessiter d'interface et semble avoir moins de configuration.

# 1 semble plus configurable, ce qui est à la fois une bonne et une mauvaise chose. Je suppose que c'est ma position de repli.

Un conseil?

Vive

Steve

Répondre

2

Qu'est-ce que vous utilisez en concerne les fondamentaux de Silverlight (au moins tel qu'il est aujourd'hui.) Votre conclusion est correcte - le « Silverlight compatible service WCF » est probablement Votre meilleur pari pour un service rapide d'appeler à partir de l'application Téléphone, mais je voudrais offrir une interprétation différente de la logique. Silverlight ne prend en charge qu'un sous-ensemble des options de communication offertes par WCF - il ne permet que BasicHttpBinding, alors que WCF offre beaucoup plus, y compris le soutien pour les «améliorations» qui font partie des spécifications WS- *. Par conséquent, vous devez définir certains indicateurs et effectuer certains choix dans vos services WCF afin de les rendre utilisables par Silverlight. En utilisant le modèle "Silverlight Enabled Service WCF", ce travail est fait pour vous. Cela signifie également que si vous souhaitez une communication Web sécurisée avec Silverlight, vous devez utiliser/configurer HTTPS. En ce qui concerne les interfaces, etc., cela fonctionne sur les deux options - le besoin de configurer le ServiceContrat vs "l'impliquer" des opérations définies est venu autour de .Net 3.5 SP1, si ma mémoire me sert correctement. Notez que même si Silverlight "régulier" prend également en charge la communication avec les services WCF basés sur TCP, je crois que le téléphone ne le fait pas. Maintenant, pour le choix n ° 3 - le service de données WCF (ou l'artiste anciennement connu sous le nom ADO.Net Data Services.) Ce que cela fait pour vous est de configurer un service basé sur REST pour exposer vos données backend (où le précédent 2 options sont plus/généralement basées sur SOAP.) Plus de détails et d'informations sur ce sujet peuvent être trouvés ici - http://msdn.microsoft.com/en-us/data/bb931106.aspx. Maintenant, ces services utilisent généralement le vieux http simple, et sont définitivement consommables par Silverlight et le téléphone; De plus, leurs charges utiles sont plus légères que leurs homologues SOAP.Utiliser ou non REST ou SOAP est un choix de conception - l'approche SOAP est plus proche de RPC (définir des méthodes dans le service qui sont appelées à effectuer des actions spécifiques avec des priorités spécifiques), l'option REST est plus OOP- comme, avec un peu de "magie automatique" lancé pour faire bonne mesure. La chose à propos de "magie automatique" est que vous avez vraiment besoin de comprendre la magie (et ses limites) avant de commencer, ou votre conception pourrait probablement échouer à répondre à vos besoins.

Espérons que cela a aidé! John

+0

Merci John - bonne réponse. Savez-vous s'il est possible d'étendre # 3 - J'essaie d'éviter les procédures stockées cette fois-ci, donc si je veux un ensemble de résultats à travers un certain nombre de tables, je veux le faire via linq. # 3 semble simplement envelopper les données du backend et je ne peux pas voir un moyen de l'étendre. –