Poważny projekt - proszę o pomoc

0

Witam
Chciałbym wykonać program w C#.
Z C# dopiero zaczynam więc ostrzegam że mogą być głupie pytania ale jakoś muszę zacząć.

Chciałbym zrobić program który będzie korzystał z bazy danych (jeszcze nie wiem jakiej - liczę na pomoc w wyborze) i aby ten "program" składał się z dwóch części. Część klient i serwer.
Nie wiem czy tak się da ale mam nadzieję że tak. Chce aby dane z klienta były pobierane do serwera albo w określonym czasie albo na żądanie serwera.
Na kliencie będzie prowadzona prosta sprzedaż. głównie chodzi o zapisanie który klient co kupił. towarów będzie ok 10. I ktoś korzystający z serwera będzie chciał ściągnąć raport o sprzedaży z poszczególnych punktów. Będzie jeden serwer i kilka punktów.

Programy tę będą w różnych miejscach i powinny łączyć się poprzez internet.
Czy jest to do zrobienia ? jeśli tak to w jaki sposób. z czego będę musiał korzystać i jaką bazę do tego wybrać.

Mam więcej pytań ale zacznę od tych. Reszta wyjdzie w rozmowie.
Proszę wszystkich o pomoc i dobre rady.

0

Da sie tak.

Jesli c#, to baze latwo oprzec o MSSQL, tym bardziej, ze wersja Express bazy i srodowiska jest darmowa. Jak wydajnosc zacznie byc problemem, to bedzie latwiej przejsc na komercyjna :) Ale do tego bedziesz potrzebowal duuuuzo wiecej produktow i klientow ;)

Co do zalozen to wszystkie mozna oczywiscie spelnic. Poszukaj przykladow klient-serwer w c#, na sieci znajdziesz bez liku. Cala reszta to juz konsekwencja tej architektury.
Glowny problem na jaki mozesz sie natknac to synchronizacja danych miedzy klientem a serwerem, ale jesli dane podrozuja tylko w 1 strone, to nie jest to wielki problem.

Oczywiscie baza stoi zarowno na serwerze, jak i u klientow - ta druga przechowuje informacje lokalnie, do czasu wyslania na serwer.

Co do zalozen technicznych to potrzebujesz kompa z publicznym IP, na ktorym stanie serwer, tak by wszyscy klienci mogli sie z nim laczyc. Dane proponuje przesylac SSLem, sa gotowe klasy na to w .NET - dzieki temu dane beda bezpiecznie przesylane.

0

Główną bazą będzie ta gdzie klient. na niej będą dziać się wszystkie ważne rzeczy. A serwer ma służyć do zbierania danych które się pojawiają na kliencie.
Czyli konkretnie jeśli szef będzie chciał sobie wiedzieć ile pieniążków zarobił na punktach to wciśnie opcje pobierz dane z konkretnego punktu i wygeneruje raport. I praktycznie tyle. Kiedyś chciał bym to rozbudować o mini magazyn typu przerzut towarów z magazynu głównego (serwer) do sklepu (klient). ale to w miarę pracy wyjdzie.
Dodatkowo chciałbym zaimplementować obsługę czytnika kodów kreskowych. Słyszał ktoś o jakiś gotowych przykładach? Czytnik będzie na RS więc kwestia pewnie dołożyć obsługę portów i powinno działać. tylko muszę załatwić specyfikację połączenia czytnika z komputerem.
Czyli potrzebuję dwie bazy? i Serwer będzie miał możliwość synchronizacji danych z określonych punktów ? mam nadzieję że z tym nie będzie problemu.

0

Po kolei:

  1. Latwiej praktycznie bedzie zrobic okresowe wysylanie danych na serwer, niz zlecanie przez serwer wyslania danych. Przede wszystkim moga byc problemy z polaczeniem (wtedy klient wysle jak bedzie mogl), po drugie klient musialby miec caly czas otwarte polaczenie i czekac na zyczenia serwera.
  2. Przerzut towarow to odbieranie danych z serwera i tutaj tez ulatwi sprawe inicjowanie polaczenia przez klienta. W takim przypadku klient laczy sie z serwerem, jesli ma taka mozliwosc (jest polaczenie, odliczanie wskazuje, ze ma sie laczyc) wysyla swoje dane i odpytuje serwer czy jest cos nowego dla niego.
  3. Do kazdego czytnika jest sterownik i specyfikacja. Implementacja obslugi takiego czytnika zalezy od rodzaju i modelu, wiec ciezko powiedziec. Czesto proste czytniki dzialaja troche jak klawiatura: czytnik odczytuje 'cos' i wysyla informacje w formie znakow - kazdy znak odpowiada kazdej tam kresce w kodzie.

Potrzebujesz co najmniej dwoch rodzajow baz z kilku powodow:
lokalna:

  • klient gdzie musi trzymac informacje do czasu wyslania serwera
    na serwerze:
  • dane musza byc gdzies skladowane, jesli chcesz otrzymac raport w miare szybko, a nie czekac za kazdym razem na polaczenie z wszystkimi klientami
  • serwer moze trzymac czesc danych, jesli nie potrzebuje wszystkich
  • jak chcesz wysylac dane, to gdzies musisz je zamiescic, zeby klienci mogli sobie je pobrac
0

Ba, jeśli chodzi o czytnik, to mając do czynienia z "aż" czterema, zawsze była opcja, o której wspomniał johny - tzn całym syfem zajmuje się sterownik od producenta, a z punktu widzenia programu dostajesz po prostu tekst wklepany z klawiatury. Przykładowo ja za pomocą skanera wbijałem tekst do notatnika, excela... logowałem się do Windowsa czytając hasło zapisane na kodzie kreskowym przyklejonym do monitora ;) Twój program w praktyce będzie potrzebował zwykłego edita i nic więcej najprawdopodobniej.

0

Będę na pewno potrzebował dwóch baz danych. To na pewno. Jeden na klientach i jeden na serwerze. Czy klient musi mieć stałe IP ? DynDNS myślę że rozwiąże sprawę.

A odnośnie czytników to jeszcze się zastanawiam czy nie zastosować kart zbliżeniowych albo magnetycznych. Są troszkę droższe ale pewniejsze i raczej nie do podrobienia.

0

Jesli serwer ma stale IP, to klient nie musi. Jedna strona wystarczy, by bez problemu sie polaczyc.

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