2009-11-02 11 views
5

Esiste una best practice in merito al reso (o ai dataset di ritorno NOT) dai servizi Web .NET? Un campo dice che dovremmo promuovere l'interoperabilità e utilizzare gli schemi XML per definire il carico utile del servizio web, l'altro campo dice che dovremmo restituire i set di dati perché è semplice in Visual Studio e il lavoro viene svolto più rapidamente.Per restituire un set di dati in un servizio Web o no?

Alcuni argomenti nel campo anti-set di dati:

  • set di dati non sono WSI conformi
  • Dataset sembrano essere raramente supportato dal software 3rd party

Alcuni argomenti nella pro-set di dati campo:

  • Sono molto utili e veloci da compilare in Visual Studio.
  • Noi (la mia azienda) si sviluppa solo in .NET così l'interoperabilità non è un problema
  • Dataset sul lato client hanno vantaggi per la facilità d'uso

risposta

3

Usa set di dati? Direi mille volte no. Non sono interoperabili con altri toolkit (come dici tu). Certo, i tuoi unici utenti al momento sono .NET ma le cose possono cambiare rapidamente ed è bello essere preparati.

Vedere The XML Files per alcune letture.

Inoltre, se si stanno sviluppando nuovi servizi, scriverli utilizzando WCF. Quindi puoi esporli come vuoi tu. Se il servizio e il consumatore sono interni e entrambi sono .NET, è possibile utilizzare l'associazione TCP per ottenere prestazioni migliori. Successivamente, quando qualcun altro desidera comunicare con il servizio, è possibile aggiungere un nuovo collegamento al servizio Web in modo che l'app Java (ad esempio) possa interagire con il servizio. Vedi Choosing the right WCF binding per un pratico diagramma di flusso.

1

sarei al campo che non si dovrebbe inviarlo, ma questa è una decisione che verrà presa in base a ciò che è importante per la tua azienda.

Se si progetta un'API webservice che è fondamentalmente un contratto tra l'azienda e i clienti. Pertanto, alcune persone nell'azienda possono iniziare a utilizzare questa API per operazioni mission critical.

Quindi si ottiene una richiesta per farlo funzionare su un Blackberry. Ora devi cambiare il webservice, che può rompere altre applicazioni, causando un effetto a catena.

Quindi, se si è certi che non sarà necessario supportare altre piattaforme, ad eccezione di .NET, è possibile utilizzare la prima opzione.

0

Non sceglierei set di dati (proprio come la maggior parte della comunità qui). Come dice James, non sei mai sicuro che il tuo servizio verrà utilizzato solo da applicazioni .NET. La ragione principale di un servizio web è che si tratta di uno standard che può essere utilizzato da tutte le tecnologie, se lo si crea correttamente.

DataSets rompe anche le idee del design guidato dal dominio e la separazione dei livelli e sono quindi meno attratti come erano all'inizio. Io li uso solo per le demo che devono essere veloci e sporche;)

Se si desidera veramente un modo "facile" di sviluppo (all'interno dell'IDE) e comunque essere conformi a tutti gli standard, considerare la possibilità di creare i propri servizi con WCF.

Problemi correlati