Wysyłanie danych z MySql przez sieć

Wysyłanie danych z MySql przez sieć
D3
  • Rejestracja:ponad 14 lat
  • Ostatnio:prawie 12 lat
  • Postów:34
0

Witam! Stram się napisać aplikację kliencką, oraz serwer(uruchamiany na Debianie, na którym jest baza danych MySql). Chcę, aby ten serwer wysyłał mi pewne informacje z bazy, obsługiwał logowanie, dodawał nowych użytkowników etc. gdy zapyta go o to klient. Tylko jak przesłać obiekt, który zwraca MySqlCommand.ExecuteScalar() przez protokół TCP? A może moje rozumowanie jest złe i nie powinienem w ten sposób projektować aplikacji? Proszę o pomoc.

OT
  • Rejestracja:ponad 20 lat
  • Ostatnio:ponad 11 lat
1

Połączenie zdalne z bazą ci nie wystarczy?

D3
  • Rejestracja:ponad 14 lat
  • Ostatnio:prawie 12 lat
  • Postów:34
0

Ale jak połączę się z bazą w kliencie, nie obejdzie się bez używania hasła do bazy w programie?

OT
  • Rejestracja:ponad 20 lat
  • Ostatnio:ponad 11 lat
1

Nie obejdzie się. Jeżeli nie chcesz łączyć się z bazą bezpośrednio, na maszynie z Debianem postaw webserwis. Webserwis będzie łączył się z bazą mysql lokalnie i udostępniał odpowiednie metody twojemu programowi. Jeśli masz maszynę z Linuksem to najlepszym wyborem na technologię, w której napiszesz webserwis będzie java.

D3
  • Rejestracja:ponad 14 lat
  • Ostatnio:prawie 12 lat
  • Postów:34
0

Zrobię to w ten sposób: zostanę przy .NET (javę niby też znam, ale jak już robię w C# .NET i kilka elementów w ASP.NET to niech już tak zostanie), natomiast wszelkie operacje na bazie danych będę wykonywał na serwerze - w sumie nie jest ich tak dużo. Przez sieć będę natomiast przekazywał tylko potrzebne dane, w zwykłych tablicach bajtów (byte[]) i zamieniał je odpowiednio po obu stronach. Strasznie nie lubię obchodzić w ten sposób problemów, no ale cóż ;) Dzięki za pomoc, jeśli macie jeszcze jakieś sugestie to chętnie nad nimi pomyślę.

OT
  • Rejestracja:ponad 20 lat
  • Ostatnio:ponad 11 lat
1

Przez sieć będę natomiast przekazywał tylko potrzebne dane, w zwykłych tablicach bajtów (byte[]) i zamieniał je odpowiednio po obu stronach.

Możesz i tak, ale po to wymyślono webserwisy żeby samemu od zera tego nie pisać.

D3
  • Rejestracja:ponad 14 lat
  • Ostatnio:prawie 12 lat
  • Postów:34
0
othello napisał(a):

Jeśli masz maszynę z Linuksem to najlepszym wyborem na technologię, w której napiszesz webserwis będzie java.

To w końcu mam go napisać, czy są jakieś gotowe?

OT
  • Rejestracja:ponad 20 lat
  • Ostatnio:ponad 11 lat
1

Webserwis: http://pl.wikipedia.org/wiki/Us%C5%82uga_internetowa

Krótko: zamist ręcznie tworzyć własny protokół, lepiej napisać webserwis. Po prostu są standardowe rozwiązania do tego, co chcesz zrobić i warto z nich korzystać zamiast wynajdować koło na nowo.

Możesz oczywiście sam wysyłać sobie dane jakie chcesz przez tcp i sam parsować odpowiedzi w kliencie ale po co, skoro w kliencie możesz połączyć się z webserwisem, wywołać metodę webserwisu (tak samo jak wywołujesz metodę z normalnej klasy) i odczytać co metoda zwróciła. Wywoływana metoda wykona się na serwerze i zrobi to co trzeba.

edytowany 2x, ostatnio: othello
D3
  • Rejestracja:ponad 14 lat
  • Ostatnio:prawie 12 lat
  • Postów:34
0

Ok, dzięki za wszystkie odpowiedzi. Poczytałem i pooglądałem o WCF (czemu sami hindusi o tym nagrywają?). Jest to świetne rozwiązanie, ale nie dla tak małych aplikacji jak moja. W tym przypadku posłużę się jeszcze starym StreamReader i StreamWriter. Jednak następnym razem, gdy będę projektował taką aplikację, postaram się użyć WCF.

OT
  • Rejestracja:ponad 20 lat
  • Ostatnio:ponad 11 lat
0

Fakt że w tym przypadku być może byłaby to armata na muchę.

Jednak, ogólnie to tak sie to robi: masz defaultowo obsługę masy przydatnych (w realnych zastosowaniach) rzeczy, jak wywoływanie asynchroniczne, autoryzacja, szyfrowanie/ssl itd itp. Nikt przecież nie będzie się bawił w tworzenie od nowa protokołu komunikacji, skoro standard już jest.

W twoim przypadku dodatkowy minus, że musiałbyś sporo liznąć javy skoro na Linuksie serwer chcesz wystawić. Ale z doświadczenia wiem, że da się to ładnie zgrać (chociaż nie zawsze to takie idealnie proste), w końcu standard jest jeden.

edytowany 3x, ostatnio: othello
Spine
  • Rejestracja:około 22 lata
  • Ostatnio:mniej niż minuta
  • Postów:6687
0

Do zdalnego wywoływania metod użyj CORBA, albo RMI (tylko w Javie).


🕹️⌨️🖥️🖱️🎮
edytowany 1x, ostatnio: Spine
L3
  • Rejestracja:prawie 14 lat
  • Ostatnio:około 10 lat
  • Postów:106
0

no tak, bo na mono nie da rady... :D do tego co On potrzebuje mono uciągnie :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.