2009-03-30 13 views
7

Attualmente hanno il compito di progettare un servizio Web (sto andando a wcf ma i principi continuano ad essere applicati) in C#. Il problema è che non ci sono sovraccarichi di metodi di cui sono a conoscenza, quindi ho bisogno di nominare metodi web con nomi diversi.Convenzioni di denominazione con servizio Web/WCF e nessun sovraccarico

Mi piacerebbe un po 'di input sulle convenzioni di denominazione, non sembra proprio che ci sia qualcosa là fuori, per esempio.

Il mio metodo principale è GetMortgages() - che restituisce tutti i mutui. Ho bisogno di un altro in cui restituirà ipoteche entro un determinato intervallo di prezzo, quindi cosa consiglieresti per questo GetMorgagesPriceRange, InPriceRange, WithPriceRange.

Sono po 'confuso circa le migliori pratiche fro denominazione metodi web, mi piacerebbe sovraccaricare solo GetMortgages ma, naturalmente, con i servizi web non posso ...

Quindi sarebbe meglio fare GetNounDesciption ??

Qualcuno sa di eventuali buoni webservices là fuori che ha un metodo che è lo stesso, ma ogni metodo ha diversi parametri passati - piace molto sapere niente qui

Se fare pratica per iniziare il mio WebMethod con GET, se è qualcosa che restituisce qualcosa ??

Che dire di qualcosa che salva e invia qualcosa, c'è uno standard qui ?? cioè PUT o SAVE ???

Ci deve essere una sorta di libro di regole da seguire ??

piacerebbe davvero alcuni input è qualcuno ha qualche

Grazie Mark

+0

suppongo quello che sto veramente chiedendo è, se ho bisogno di fornire 5 metodi che ho bisogno di passare parametri diversi, ma tutto il ritorno stessi dati formattati ma diverso a seconda dei parametri che sono passati poi che cosa è il modo migliore per affrontare Questo? –

+0

Suggerirei GetAllMortgages() e GetMortgagesByPriceRange() per essere descrittivo di ciò che si sta restituendo dal servizio e per dare un suggerimento dei parametri previsti passati. – ManoDestra

risposta

5

Non c'è davvero alcun "regola libro" per le convenzioni di denominazione. Ne trovi uno che funziona per te.

L'adozione più comune con .Net è seguire le convenzioni di denominazione Microsoft .Net e, con i servizi Web, trattarli come un'estensione dell'assembly, non come caso speciale.

http://msdn.microsoft.com/en-us/library/ms229045.aspx

Quindi, GetMortgages(), GetMortgagesInPriceRange (startPrice, endPrice), ecc ... va bene.

Per quanto riguarda il "salvataggio", molte persone useranno il "SubmitNoun".

0

Penso che tu stia bene. Descrivili in base a ciò che stanno facendo. GetAllMortgages(), GetMortgagesInPriceRange(), ecc.

Prendere in considerazione qualsiasi terminologia specifica del dominio. Ad esempio, se il termine del settore ipotecario per una fascia di prezzo di un mutuo fosse stato "Demografico", allora GetMortgagesForDemographic sarebbe il nome migliore, anche se si sa che le uniche caratteristiche "demografiche" sono la fascia di prezzo.

0

Si potrebbe andare con il repository-modello, se si dispone di un servizio di repository-simile (come suppongo dai vostri esempi avete) convenzione

GetXByY(params) 
+0

se abbiamo 10 parametri, vorranno GetXByYByZByWByWByS ...... non è vero? È giusto? –

4

Inoltre, probabilmente si dovrebbe evitare di sovraccaricare i metodi di servizi Web. Usa nomi di metodi distinti.

+4

+1 per indicare una trappola comune per i neofiti nella creazione di servizi Web –

+0

Questo è più di un commento, anche se è in aumento. – theMayer

3

Si può anche utilizzare il metodo di servizio GetMortgages() per prendere un "documento" anziché i parametri e progettare i criteri di filtro facoltativi nel documento. In questo modo hai un solo metodo che gestisce tutti gli 'overload'.

<GetMortgages> 
    <filter> .... </filter> 
    <sort> .... </sort> 
    <group> .... </group> 
</GetMortgages> 
+0

Decisamente meglio di sovraccarichi multipli; consente inoltre di aumentare il numero di parametri sul 'documento' senza dover creare ancora più sovraccarichi. –

Problemi correlati