Cześć,
Mam problem z wyborem rozwiązań które powinienem zastosować w projekcie. Byłbym wdzięczny, gdybyście podali mi najrozsądniejsze w zakresie technologii których używam. Programuję niedługo, hobbystycznie, do tej pory win formsy i WPF ale teraz chcę stworzyć coś w webie. To do sedna.
-
Mam serwer w ASP.NET z autentykacją, wystawionym api w swaggerze do wysyłania żądań z klienta z interfejsem użytkownika, napisanego w blazorze (m.in. zapytania SQL). To działa i ten wątek praktycznie mam ogarnięty.
-
Funkcjonalność którą zaprogramowałem wygląda tak i nie wiem gdzie mam to wpleść, załóżmy, że na ten moment jak "poskładam klocki", po uruchomieniu aplikacji konsolowej stanie się to co chce czyli:
- Dostanę informacje z czujnika, że został przecięty obwód światła (coś znajduje się na linii).
- uruchomi to czytnik RFID, który przez kilka sekund będzie szukał tagów, jeśli znajdzie pasujący tag w bazie danych, otworzy NO na module działającym po modbusie i dzięki temu zapali się
światełko, - zacznie ważyć to co znajduje się na wadze do uzyskania stabilnego ważenia. Waga odpytywana jest po UDP.
- następnie, znowu wyślę informacje do modułu modbus, otwierając wejście zapalające światełko.
- zapisze dane do bazy SQL.
Teraz pytanie jest następujące. Jak powinienem uruchamiać ten moduł:
- wrzucić go bezpośrednio do serwera ASP.NET, wykorzystać background worker? (wydaje mi się to kiepskim pomysłem?),
- wykorzystać coś takiego jak hangrife do uruchomienia np. aplikacji konsolowej która zrobi to co napisałem wyżej,
- przerobić to na usługę windowsa działającą w tle, i nie wiązać tego w żaden sposób z serwerem w ASP.NET, zwracać tylko dane do SQL,
- to co wyżej tylko może aplikacja w winformsach/wpf, działająca cały czas na pasku/w zasobniku,
- a może błądzę i powiniem zainteresować się jakimś innym rozwiązaniem, nie wymienionym wyżej?
ważne tutaj jest to, że czasami z tego klienta w blazorze będę musiał wywołać akcję ręcznie (np. przez API do serwera ASP), jak się ma do tego aplikacja konsolowa lub winformsy/wpf (SignalR?). Podpowiedzcie, bo zrobiłem i stoję, tylko dlatego że, nie wiem jak to zaimplementować, połączyć, żeby było dobrze, za duży wybór. :(