2010-11-28 3 views
0

Toutes mes excuses pour les débutants question de service Web -Design appels de service Web qui lecture/écriture de base de données

Je suis en train de créer un service web qui a une liste de méthodes pour effectuer lecture/écriture à une base de données. Un exemple de fonction sera de forme -

CreateNewEmployee(string username, string employeeid, string deptname) 

I créé un service web en .net (asmx) qui a le webmethod indiqué ci-dessus. En cela, j'ouvre la connexion à la base de données et faire un insert dans la base de données, puis fermez les connexions. Est-ce la bonne façon de concevoir l'appel de service Web?

Devrais-je passer un objet au lieu de plusieurs paramètres?

Des pointeurs vers les meilleures pratiques lors de la création d'un service Web qui écrit des données dans une base de données?

Pour ajouter un peu plus d'informations

  • Nous aimerions avoir des services Web car il peut être réutilisé par de nombreuses applications différentes au sein de l'organisation (Web et de bureau).
    Nous prévoyons également de créer un environnement dans lequel les utilisateurs peuvent utiliser ces services Web pour créer des mashups de données.

Merci, Nate

+0

Notez que vous ne devriez pas utiliser les services Web ASMX à moins que vous n'ayez pas le choix. Ils ont été remplacés par WCF. –

Répondre

0

Oui - passer des objets contre de grands ensembles de paramètres. Aussi, avez-vous considéré WCF si vous êtes dans un environnement .Net? Si vous regardez comment fonctionne ADO.Net Data Services (anciennement Astoria), cela vous mettra dans la bonne direction.

+0

Merci Bob. Regardera dans WCF. – user275157

0

Je cite la réponse gagnante à this SO question:

Web Services sont un choix absolument horrible pour l'accès aux données. C'est une tonne de frais généraux et de complexité pour un bénéfice presque nul.

Vous pouvez lire le reste de la discussion ici.

Modifier: Une excellente approche pour avoir une fonctionnalité d'accès aux données communes qui peuvent être partagées par de multiples applications - web, bureau, service - est de créer un projet Visual Studio qui compile une DLL. Chaque solution qui souhaite utiliser la fonctionnalité d'accès aux données fait référence à la DLL, qui peut être déployée vers le GAC ou un autre emplacement central, ou simplement ajoutée au dossier bin du projet. Alternativement, afin de pouvoir parcourir le code d'accès aux données, le projet d'accès aux données peut être ajouté à une solution.

Ceci est une pratique très courante dans les grandes entreprises, où de nombreuses applications de back-office partagent des fonctionnalités communes. Il est utilisé non seulement pour l'accès aux données, mais également pour d'autres services tels que la journalisation et l'authentification/autorisation. Certaines divisions créent un ensemble de ces DLL, qu'ils appellent leur «cadre». Il s'assure que chaque application aura la même fonctionnalité et la même logique métier, et qu'il existe un seul endroit pour effectuer des révisions qui affecteront toutes les applications. C'est un avantage similaire à l'utilisation des services Web, mais cela évite les frais généraux et les pertes de performances des services Web.

+0

Modifié le post pour ajouter plus d'informations. Nous aurons tout un tas d'utilisateurs qui essaient de réutiliser les services. Aucune suggestion? – user275157

Questions connexes