The background:
I need to build a desktop application with some operations (CRUD and more) (=winforms), I need to make another application which will re-use some of the functions of the main application (=webforms). I’m using service layer for reusing my functions. The service is calling the functions on the BL layer (correct me if I’m doing this wrong).
so my desktop has 4 projects – DAL, BL, UI, WEBSERVICES.
The dilemma (simple but I still need some more experienced opinions):
-
In my main winform UI – should I call the functions from the BL – bl.getcustomers(), or do it similar to how I call it in the webform, and call the functions from the service – webservices.getcustomers?
-
Should I create a service for every single function on the BL even if I need some of the functions only in one UI? for example – should I create services for all the CRUD operations, even though I need to re-use only update operation in the webform?
YOUR HELP IS MUCH APPRECIATED
If all your service is doing is a pass-through to the business layer, why not just use the business layer? If it’s an internal app, then sharing libraries is quick, easy and relatively painless.
If not, then your service should focus on the publically visible operations the service supports. If it makes sense to have two different interfaces for the service (and thus two different contracts for consumers) then do that. The service exists as an encapsulation mechanism for the underlying implementation. Don’t violate that.
2