Dostęp do danych WCF/Sql Server

0

Witam.
na wstępie zaznaczę, że jestem obecnie programistą Delphi, jednak powoli przechodzę na C#.
Mam teraz zadanie stworzenia aplikacji okienkowej w WPF.
Baza danych sql server będzie na serwerze chmurowym. (np oxycloud)
Zastanawiam się co będzie lepszym/szybszym rozwiązaniem wyciągania danych do clienta.
Przykładowo chcę otrzymać listę kontrahentów z bazy.
Czy lepiej zadać bezpośrednie zdalne zapytanie do sql server
Czy stworzyć przy bazie aplikację WCF, która to będzie odpytywać bazę, następnie odsyłać clientowi np listę obiektów
Proszę o rady bardziej doświadczonych kolegów ode mnie w tym temacie :)

0

szybszym (zarówno z punktu widzenia czasu pisania programu jak i szybkości działania) na pewno będzie bezpośrednie pytanie bazy - odpadnie pisanie jednej warstwy. Jednak bardziej eleganckim, bezpieczniejszym (dodatkowa warstwa walidująca żądania dostępu do danych oraz same dane) i przyszłościowym (będziesz miał gotowe API do którego będzie mogło się podłączyć cokolwiek, np. strona albo aplikacja mobilna) będzie dodatkowa warstwa pomiędzy aplikacją i bazą. Jednak, wg mnie, podejmowanie się tego bez jakiejkolwiek wiedzy może być strzałem w kolano bo bardzo łatwo może się to stać wąskim gardłem w aplikacji.

0

Jak masz bazę nie po lan to należy jak najbardziej ograniczyć komunikację z nią. Najlepiej byłoby postawić jakieś api i nie komunikować się z baza bezpośrednio a z api.

0

@abrakadaber:
Dzięki za odpowiedź.
Wiedzy w wcf za dużej nie mam. (chociaż stworzyłem taki mały serwer wcf.... który działał ;)
Na obecną chwilę nie przewiduję by łączyło się z api coś innego.(ale w przyszłości to może ulec zmianie).
Teraz najbardziej zależy mi na szybkości zwrotu danych, więc chyba faktycznie wybiorę 1 opcję sugerując się Twoją wypowiedzią.
Zrobię po prostu jak najwięcej procedur składowanych, by wszelkie możliwe operacje działy się na serwerze

0

To zależy od tego, czy to ma być poważna, duża, aplikacja komercyjna, rozwijana latami, czy raczej coś małego, szybkiego do napisania, w stylu poc, do przepisania jeśli projekt odniesie sukces.
bardziej w kierunku pierwszego, żadnego wystawiania bazy na zewnątrz, jak najmniej logiki w bazie danych, procedury składowane w ostateczności
bardziej w kierunku drugiego, wszystkie chwyty dozwolone :)

0

WCF w 2020 roku jako zwykłe API do bazy po HTTP? Brzmi jak lekki masochizm.

1

@Svenson: jeśli potrzebujesz przesyłać dane po HTTP, to jednak łatwiej zrobić WebAPI niż WCF, mniej konfiguracji, łatwiej debugować, w razie czego łatwiej też udostępnić szerszej publiczności.

0

No tak jak wspomniałem baza będzie w chmurze i muszę się do niej dostać przez sieć globalną.
Stąd szukam najszybszego rozwiązania.
Dziękuję wszystkim za odpowiedzi. Może zrobię sobie też mały test wszystkich 3 rozwiązań

1 użytkowników online, w tym zalogowanych: 0, gości: 1