2008-10-23 16 views
8

Vous souhaitez connaître les personnes qui utilisent WCF dans un environnement d'entreprise.WCF dans l'entreprise, des pointeurs de votre expérience?

Quels ont été les principaux obstacles au déploiement? Problèmes de performance? Toutes les astuces appréciées!

Veuillez fournir des statistiques générales et des configurations de serveur si vous le pouvez!

+0

Ceci est vraiment vague, tellement que je ne pense pas que vous obtiendrez des réponses utiles. Essayez d'être plus précis. –

Répondre

7

WCF peut être configuration hell. Soyez sûr de vous familiariser avec son diagnostics and svcTraceViewer, de peur que vous obteniez des exceptions cryptiques, inutiles. Et faites attention aux broken implementation of the disposable pattern du client généré.

+0

Techniquement parlant, le problème IDisposable n'a rien à voir avec les clients générés. C'est une "caractéristique" de * tous * les objets de communication WCF. Donc, c'est humm ... en fait pire :) – tomasr

0

WCF est vraiment idéal pour les entreprises car il est conçu pour être évolutif, évolutif, sécurisé, etc. Il peut être très difficile mais comme les exceptions ne vous disent presque rien, si vous utilisez la sécurité (de manière objective pour les scénarios d'entreprise), vous devez traiter avec des certificats, sans signification MessageSecurityExceptions et ainsi de suite.

Traiter avec les services WCF est certainement plus difficile que le service vieux asmx, mais il vaut la peine une fois que vous êtes.

configs serveur fournissant ne sera pas utile pour vous car il doit s'adapter à votre scénario. en utilisant les bonnes liaisons est très important, ainsi que la sécurité, la concordance. Il n'y a pas de solution unique pour utiliser wcf. il suffit de penser à vos besoins. avez-vous besoin de rappels, quels sont vos utilisateurs? De quel type de sécurité avez-vous besoin?

Cependant, WCF sera certainement la bonne technologie pour les applications à l'échelle de l'entreprise.

1

Comme déjà indiqué, le cauchemar de configuration et les exceptions peuvent être cryptiques. Vous pouvez activer le suivi et utiliser l'afficheur du journal de suivi pour résoudre un problème, mais il s'agit certainement d'un changement d'engrenage pour dépanner un service WCF, surtout une fois que vous l'avez déployé et que vous rencontrez des problèmes avant même l'exécution du code. Pour la communication entre les composants au sein de mon organisation j'ai fini par utiliser [NetDataContract] sur mes services et proxies qui est recommandé contre (vous ne pouvez pas intégrer avec des plates-formes en dehors de .NET et intégrer vous avez besoin de l'assembly qui a les contrats) J'ai trouvé la performance excellente et mon temps de développement global réduit en l'utilisant. Pour nous, c'était la bonne solution.

+0

Au lieu de NetDataContract, vous pouvez utiliser DataContractSerializer, réfléchir sur les assemblages pour tous les attributs [DataContract] et dans les classes de sérialisation de passage WCF dans les types connus à partir de la réflexion. Cela maintient l'héritage et supprime toute la douleur de [KnownType] – Steve

3

J'ai récemment été embauché pour une entreprise qui traitait auparavant leur communication client/serveur avec les services Web asp.net traditionnels et les échanges de données.

J'ai réécrit le noyau alors maintenant il y a un client Net.Tcp "connecté" ... et tout est fait par là. C'était une semaine de "découvertes en production" ... mais ça valait le coup. Les points de douleur que nous avons dû découvrir tard dans le jeu étaient: 1) La limitation par défaut a bloqué le 11ème utilisateur (il ne permet que 10). 2) La valeur par défaut "maxBufferSize" a été fixée à 65k, donc le premier bitmap à télécharger a planté le serveur :) 3) Autres configurations par défaut (connexions max concurent, appels simultanés maximum, etc.).

Dans l'ensemble, ça valait vraiment la peine ... l'application est beaucoup plus rapide en changeant simplement leur infrastructure et maintenant que nous avons des utilisateurs "connectés" ...le serveur peut envoyer des messages aux clients.

D'autres beaux gains sont que, puisque nous savons 100% qui est connecté, nous pouvons réellement appliquer notre politique de licence au niveau de l'application. Avant (et avant que je sois embauché), mon entreprise devait simplement se connecter, et ensuite, à la fin du mois, facturer les clients supplémentaires pour se connecter trop souvent.

+0

+1 Juste pour mentionner le maxBufferSize et d'autres valeurs par défaut, horriblement frustrant de déboguer lorsque vous frappez le pour la première fois sur un service qui fonctionne autrement parfaitement. –