Szukam listy „dziesięciu najważniejszych” powodów, dla których powinniśmy łączyć się ze zdalnymi bazami danych za pośrednictwem usługi internetowej zamiast bezpośrednio łączyć się z bazą danych. To jest teraz wewnętrzna debata i jestem zwolennikiem usług internetowych, ale przegrywam. Mam podstawowe pojęcie o WCF / usługach internetowych, nikt inny tego nie robi. Możemy robić, co nam się podoba, ale musimy trzymać się tego, co teraz wybierzemy.
Oto, co wymyśliłem. Coś więcej?
- Usługi sieci Web WCF, jeśli są poprawnie skonfigurowane, mogą być bezpieczniejsze.
- Zmiany w bazie danych należy wprowadzać tylko na poziomie usługi (plik konfiguracyjny lub usługa rekompilacji).
- Po skonfigurowaniu i umieszczeniu na serwerze usługi internetowe są łatwiejsze w użyciu.
źródło
Moim zdaniem nie powinieneś automatycznie ujawniać swojej bazy danych jako usługi internetowej. Jeśli okaże się, że potrzebujesz usługi do ujawnienia danych, napisz ją, ale nie cały dostęp do bazy danych powinien odbywać się za pośrednictwem usług internetowych.
źródło
Większość z tych punktów dotyczy dowolnego formalnego interfejsu API, a nie konkretnie usług sieciowych.
źródło
Pisanie usługi sieci Web, która po prostu opakowuje wywołania do procedur składowanych, wydaje się być błędnym podejściem do projektowania dobrego DAL. Najprawdopodobniej twoje procedury składowane są starszym kodem pozostałym ze starszych systemów klient-serwer, tj. Reguły biznesowe są ukryte w SP. Jeśli tak jest, to naprawdę próbujesz stworzyć jedwabną torebkę z ucha lochy.
Co więcej, dodajesz warstwę protokołu komunikatów SOAP, która zwiększa wydajność aplikacji internetowych, które zostały „zmuszone” do umawiania się z tą „świnią”. Pracuję teraz nad projektem, w którym nasza nowa aplikacja MVC-4 została poinstruowana, aby używać takiego DAL. Jesteśmy obciążeni koniecznością zmiany zarówno sygnatury WebMethod, jak i sygnatury SP za każdym razem, gdy pojawia się nowa historia użytkownika, wymagająca takich zmian; który dla nas jest każdym sprintem. Nieodłącznym elementem takiego podejścia pośredniego są dwa ściśle powiązane poziomy.
źródło
1) Ból głowy związany z utrzymaniem bazy danych jest zmniejszony po stronie programistów, dzięki czemu mogą skupić się tylko na rozwoju.
2) Usługa internetowa obsługuje komunikację różnych platform (systemów operacyjnych takich jak Windows, iOS, Android itp.) W bardzo łatwy i efektywny sposób. na przykład rozważ sytuację, w której aplikacja Android i aplikacja iOS chcą komunikować się ze stroną internetową opartą na Javie, więc najlepszym rozwiązaniem jest komunikacja wszystkich trzech rzeczy, zamiast utrzymywania trzech różnych baz danych.
źródło
Ogólnie
Właśnie zaczynam przygodę z ASP.NET Web Api i planuję najpierw stworzyć usługi danych.
Ostatnio skupiam się na aplikacjach internetowych .NET MVC z wykorzystaniem frameworka jednostki.
Niedawno znalazłem się w frustrującej sytuacji z aplikacją internetową MVC, którą tworzyłem pierwotnie w oparciu o procedury składowane Oracle. Oryginalna wersja jako Oracle 9 lub nawet wcześniejsza, która przedstawiała inny problem z programem Visual Studio 2012, który wypychał bardziej nowoczesne podejście do fabryki połączeń z zestawami czasu ładowania znajdującymi odpowiednie pliki dll do użycia na podstawie połączeń konfiguracji sieci Web i nazw TNS.
Próby połączenia z bazą danych nie powiodły się i wyświetlają się komunikaty o błędach „nie są już obsługiwane”. Z ciekawości pobrałem Oracle 12c i utworzyłem kilka połączeń na poziomie aplikacji, które dobrze działały z moimi nazwami TNS i biblioteką DLL zestawu ładowania i mogłem bez problemu pracować z Oracle.
Powstało kilka usług internetowych, które współpracowały z połączeniami ze starszą wersją Oracle. Zostały zbudowane przy użyciu metod, które zostały specjalnie zmapowane do wybranych tabel, jednak ku mojemu rozczarowaniu. Musiałbym napisać własne.
Powiedziano mi, że grupa odpowiedzialna za utrzymanie baz danych Oracle będzie pisać nowe procedury składowane, aby zastąpić starsze, których używałem do wyodrębnienia interfejsu klienta i warstw logiki biznesowej.
W pierwszej chwili pomyślałem, że wszystkie typowe żądania danych, takie jak wypełnianie listy rozwijanej lub automatyczne uzupełnianie danych w całym przedsiębiorstwie, są wykonywane za pośrednictwem usług danych, które nazywają się procedurami składowanymi Oracle. Po co powtarzać ten proces dla każdej aplikacji i mieć każdego programistę z problemami z konfiguracją i wersją / obciążeniem oraz problemami z TNS?
więc....
Jestem programistą / analitykiem aplikacji, a nie administratorem bazy danych, więc moja perspektywa wynika z doświadczenia i niekończącej się frustracji związanej z koniecznością ciągłego modyfikowania aplikacji, gdy rozwijają się narzędzia bazy danych.
źródło