Witam,
Zastanawiamy się nad refaktoryzacją istniejącego projektu REST API w WCF. Obecna architektura nie jest już wystarczająca na nowe potrzeby, dlatego konieczne jest podzeilenie na moduły.
Z tego co mi wiadomo to pojedyncza usługa (rozumiana jako pojedynczy plik .svc) może posiadać tylko jedną impelemntację interfejsu kontraktu (wiem że interfejsów mże być wiele, ale implementacje wszytskich musza być zawarte w jednej klasie).
Ideą jest by w ramach istniejacego już serwisu WCF wydzielić bloki funkcjonalne (odpowiedzialne za poszczególne konteksty biznesowe aplikacji) i każdy z nich zaimplementować jako w osobnym projekcie (jako zwykł dll, niebędący usługą WCF) i dopiero w projekcie corowym spiąć je z finalną usługą poprzez dodanie jakiejś automatycznej rejestracji poprzezużyuwany Dependency Injector. Finalnie skończylibyśmy z kilkoma projektami zawierającymi interfejs+ implementacje modułów biznesowych + 1 projekt corowy "opakowywujący" te projekty w usługę WCF (interfejsy w modułach byłyby normalnie udekorowane atrybutami WCF).
Niestety ten prosty i względnie elegancki pomysł nie uda się z powodu opisanego w pierwszym akapicie. Pomysł żeby zrobić każdą implementacje jako pratial w też nie przejdzie bo podział na odrębne projekty jest koniecznością - odpada. Odrębny serwis WCF dla każdego modułu też odpada - zmiana ma być przeźroczysta dla istniejących systemuów, zresztą usług do przerobienia jest kilkanaście - powstałby ogromny bałagan -odpada.
Ktoś może spotkał się z podobnym problemem i udało się go rozwiązać ? Aha WCF musi zostać.