2010-01-14 5 views
0

Suite à la question this, serait-il judicieux de placer un service WCF côté serveur, entre le client et la base de données pour gérer les requêtes? L'idée étant de prendre en charge le réseau et de réduire les allers-retours vers et à partir d'une base de données.Service WCF pour gérer les requêtes SQL - conseils

J'utiliserais Entity Framework pour interroger la base de données dans le service et envoyer les résultats aux applications demandeuses sur le réseau. Je me demandais si c'était une idée idiote ou bonne?

Il y aurait jusqu'à 10 clients et 1 serveur. Beaucoup de requêtes demandant quelques milliers d'enregistrements à la fois, nécessitant un peu de calculs appliqués à certains moments.

Répondre

1

Eh bien, semble être une idée vraiment intelligente au début.

Mais qu'allez-vous faire ensuite? Un contrat WCF doit être très précis sur ses valeurs de retour - vous devez lui indiquer s'il s'agit d'une liste de clients, ou une seule commande avec ses détails de commande, etc.

En essayant de faire fonctionner ceci en général, Pour tout type de requête SQL ou EF/Entity-SQL que vous voulez exécuter, il se peut que ce soit trop compliqué. Vous auriez presque besoin de "bousiller" vers un List<object> ou List<BaseBusinessClass> quelque chose pour que cela fonctionne de manière très générique.

+0

@marc_s Je m'intéresse à ce que vous entendez par «dépôts» ... pouvez-vous élaborer? Donc, vous n'utilisez pas un service ou seulement pour des choses très spécifiques? –

+0

@TOny: Référentiel comme dans le modèle Repository défini par Martin Fowler; voir ce lien ici http://weblogs.asp.net/fredriknormen/archive/2008/04/24/what-purpose-does-the-repository-pattern-have.aspx ou recherchez Google ou Bing pour "Repository Pattern" - Vous obtiendrez des tonnes de résultats –

+1

@Tony: Je ne sais pas exactement quel sens cela fait d'essayer de trouver un service WCF «générique polyvalent» qui devrait pouvoir interroger tout et l'évier de la cuisine. Je préfère que mes services soient spécifiques: un CustomerService, un LoginService, un ProductService etc. - rend les choses beaucoup plus faciles, IMHO –

2

Je pense qu'il ne serait pas aussi efficace simplement à cause des protocoles, wcf aura besoin de beaucoup plus d'octets pour sabler les choses d'avant en arrière que le protocole du serveur SQL natif.

Questions connexes