Cześć!
Jestem nowy na forum. Jeżeli temat nie nadaje się do tej grupy to prośba o jego przeniesienie.
Od ponad roku po pracy uczę się programowania. Niestety nie mam żadnego znajomego, który mógłby mi doradzić w pewnych kwestiach związanych z pisaniem aplikacji.
Zrobiłem sobie kursy na Udemy:
C#
WPF
Xamarin Forms
MySql
MS SQL Server
Entity Framework
W tej chwili chciałbym napisach aplikacje, która umożliwiłaby mi połączenie kilku technologi (C#, WPF, MS SQL Server i Entity Framework). Chciałbym utrwalić sobie zdobytą wiedzę. Program tak naprawdę ma być taka małą baza danych (lista zadań do zrobienia). Pracuję w budownictwie wiec wygląda to tak, ze kilka osoba pracuje nad jednym projektem. Każdy z użytkowników mógłby dodać nowy rekord, w którym byłby tytuł, opis zdarzenia, status i kogo z zespołu dotyczy rekord(zdarzenie). Najprościej ujmując użytkownik A, dodaje nowy rekord i zaznacza kogo dotyczy zdarzenie np. użytkownika B. Użytkownik B synchronizuje się z baza danych, zauważa że zostało dodane nowe zdarzenie i rozwiązuje je i zmienia status na Zamknięte, albo dodaje komentarz do rekordu, że np. nie jest w stanie rozwiązać problemu. Później narada burza mózgów itd...
W pracy jak się pewnie domyślacie mamy dysk sieciowy na którym są wszystkie projekty i do którego maja dostęp wszyscy pracownicy. Z tego co zrozumiałem żeby kilku użytkowniku mogło jednoczenie korzystać z jednej bazy danych musi być zainstalowany MS SQL Server, który w pewnym sensie pewni role bufora miedzy użytkownikiem, a baza danych i ma za zadanie min. nie dopuścić do zablokowania całej bazy danych przez jednego użytkownika. Z tego względu, że nie chcę instalować SQL Servera express w pracy, bo szef najprawdopodobniej się nie zgodzi to szukam innego rozwiązania.
Pierwsze rozwiązanie, chociaż wydaje mi się bardzo amatorskie to plik tekstowy, w którym zapisane byłyby wszystkie rekordy. Za każdym razem gdy użytkownik chciałby synchronizować się z takim plikiem tekstowym to w pierwszej kolejności aplikacja sprawdzałaby czy plik nie jest otworzony przez innego użytkownika. Jeżeli byłby otworzony to aplikacja czekałaby maksymalnie 5 s. Jeżeli w tym czasie plik by się zwolnił aplikacja by się synchronizowała i od razu zamykała plik tekstowy. Jeżeli po 5 s nadal nie byłoby możliwości otworzenia pliku to aplikacja wyświetlałaby komunikat np że plik jest zajęty przez innego użytkownika proszę poczekać...
Drugie rozwiązanie to jakiś tani sensowny serwer MS SQL Server dostępny do zakupu w internecie. Serwisy, które wymagają podania karty kredytowej odpadają Nie chce się narażać na koszty, które z tego co się zorientowałem są bardzo duże. Innymi słowy Azure i Amazon odpadają.
I tutaj moje najważniejsze pytanie. Czy w internecie są dostępne do zakupu serwery z MS SQL Server z sensownymi cenami? Przecież chce zrobi amatorska aplikacje, której baza danych będzie zajmowała maksymalnie 5 MB xD Serwer musi mieć możliwość dostępu z zewnątrz. Czyli instaluję aplikacje na swoim komputerze i łącze się z serwerm gdzieś tam na świecie. Dodałem sprostowanie, bo zauważyłem, że pojawiają się serwery (jeżeli dobrze zrozumiałem), które nie umożliwiają ze względu bezpieczeństwa na dostęp do bazy danych z zewnątrz.
Będę wdzięczny za pomoc oraz za naprowadzenie jak rozwiązać mój problem.