Jak zbudować dobrą warstwę usług w ASP.NET?

10

Przejrzałem kilka pytań, technologii budowy dobrej warstwy usług, ale mam kilka pytań na ten temat, z którymi potrzebuję pomocy.

Najpierw trochę informacji o tym, co mam do wymagań. Obecnie mamy wiele aplikacji internetowych, które komunikują się ze sobą w sposób przypominający pajęczynę (wszystkie rozmawiają ze sobą w mylący sposób za pośrednictwem usług internetowych i danych w bazie danych).

  • Chcemy to zmienić, tak aby wszystkie aplikacje przechodziły przez warstwę usług, w której możemy więcej pracować z pamięcią podręczną i hermetyzować wspólne funkcje i nie tylko.
  • Chcemy, aby ta warstwa miała również interfejs API sieci Web, aby klienci zewnętrzni mogli pobierać informacje z usługi.

Problem, jaki widzę, polega na tym, że jeśli budujemy warstwę usługi z powiedzmy MVC4 Web API, nie musimy komunikować się między aplikacją za pomocą webAPI, co oznacza, że ​​musimy budować adresy URL i pobierać JSON / Xml. To nie brzmi zbyt skutecznie. Zakładam, że lepszym sposobem byłaby praca z jednostkami i WCF do komunikacji między aplikacją, ale wtedy moglibyśmy utracić magię Web API?

Pytanie brzmi zatem, czy istnieje sposób na wykorzystanie warstwy usługi jako interfejsu API sieci Web (JSON / XML) i jako warstwy usługi zaplecza z jednostkami. Jeśli jesteśmy zmuszeni do korzystania z 2 różnych warstw usług, będziemy musieli powielić niektóre funkcje i inne złe rzeczy.

Mam nadzieję, że pytanie jest wystarczająco jasne i zapytaj, czy potrzebujesz więcej informacji.


źródło
Dobre pytanie. +1 za to!
Kangkan

Odpowiedzi:

1

W przypadku zestawu aplikacji hostowanych w intranecie i ewentualnie w jednej sieci LAN najlepszym rozwiązaniem może być połączenie TCP dla usług.

W tym sensie zasugeruję, tworząc aplikację usługi, która ujawnia zestaw punktów końcowych i interfejsów usług, które mogą działać w TCP. Mogą z nich korzystać domowe aplikacje lub zaufane aplikacje.

Aplikacja usługi mogłaby mieć inny zestaw punktów końcowych i interfejsów usług, które są udostępniane do konsumpcji przez Internet (web API).

Tak więc aplikacja usługi może być hostowana za pomocą WCF, a punkty końcowe / interfejsy należy dodać zgodnie z potrzebą.

Kangkan
źródło
Czyli tworzysz 1 zestaw punktów końcowych dla komunikacji wewnętrznej i 1 zestaw dla Web API? (I tak, jest w sieci LAN z około 20 serwerami, w tym intranetem, zewnętrznymi
Ok poczytaj trochę więcej na temat WCF (przepraszam, jestem trochę początkującym na tych wodach), więc mam te same usługi lub tę samą aplikację usługową, ale potem używam różnych punktów końcowych dla tej usługi, dzięki czemu aplikacji usługi można używać zarówno przez TCP i HTTP, prawda? Może trudniejsze pytanie… ktoś ma jakieś informacje na temat interfejsu API sieci MVC4, jeśli można je wykorzystać przez TCP?
Masz rację. Na web API MVC4 jeszcze nic nie przeczytałem. Może być konieczne przeczytanie o tym.
Kangkan