Service Layer: quanto dovrebbe essere ampio e dovrebbe essere utilizzato anche dall'applicazione locale?

2

Lo sfondo:

Ho bisogno di creare un'applicazione desktop con alcune operazioni (CRUD e altro) (= winforms), ho bisogno di creare un'altra applicazione che riutilizzi alcune delle funzioni dell'applicazione principale (= webforms). Sto usando il livello di servizio per riutilizzare le mie funzioni. Il servizio sta chiamando le funzioni sul livello BL (correggimi se sto facendo questo sbagliato). quindi il mio desktop ha 4 progetti: DAL, BL, UI, WEBSERVICES.

Il dilemma (semplice ma ho ancora bisogno di pareri più esperti):

  1. Nella mia UI principale di winform - dovrei chiamare le funzioni da BL - bl.getcustomers (), o farlo come lo chiamo nel webform, e chiamare le funzioni dal servizio - webservices. GetCustomers?

  2. Devo creare un servizio per ogni singola funzione sul BL anche se ho bisogno di alcune funzioni solo in una UI? per esempio - dovrei creare servizi per tutte le operazioni CRUD, anche se devo riutilizzare solo l'operazione di aggiornamento nel webform?

IL TUO AIUTO È MOLTO APPRECATO

    
posta BornToCode 11.09.2012 - 23:07
fonte

1 risposta

2

Se tutto ciò che il tuo servizio sta facendo è un pass-through per il livello aziendale, perché non usare semplicemente il livello aziendale? Se si tratta di un'app interna, la condivisione delle librerie è rapida, facile e relativamente indolore.

In caso contrario, il servizio dovrebbe concentrarsi sulle operazioni pubblicamente visibili supportate dal servizio. Se ha senso avere due diverse interfacce per il servizio (e quindi due diversi contratti per i consumatori), allora fallo. Il servizio esiste come meccanismo di incapsulamento per l'implementazione sottostante. Non violare questo.

    
risposta data 11.09.2012 - 23:48
fonte

Leggi altre domande sui tag