Chciałbym zrobić jakąś większą aplikację w C#. Wymyśliłem sobie projekt poszperałem w necie nawet nic z podobnym rozwiązaniem nie znalazłem, ale mam problem. Aplikacja miałaby działać też w chmurze, sama się synchronizować jak np dropbox, Google Drive itd. Jak zrobić taką synchronizacje plików, co szukać, aby automatycznie nowe pliki się synchronizowały na różnych urządzeniach oraz aby aplikacja działała również w necie.
Ale z czym masz problem?
Po stronie serwera, jeśli ktoś wrzuci plik, to zapisujesz do bazy, że takie coś doszło i wysyłasz do wszystkich aktualnie dostępnych klientów informacje, że jest nowy plik. Potem zaczynasz synchronizacje i zapisujesz, które zarejestrowane urządzenia się zsynchronizowały już. Jeśli jakieś urządzenie nie jest dostępne, to przy jego łączeniu z serwerem, sprawdzasz co nie zostało zsynchronizowane i to synchronizujesz.
Po stronie desktopa na przykład, używasz jakiegoś FileSystemWatcher i przy evencie zmiany, też to gdzieś zapisujesz (w razie jakby serwer byl offline, nie miałbyś internetu, etc) i wysyłasz na serwer, a serwer już dalej ogarnia rozesłanie tego do reszty urządzen.
Do synchronizowania katalogów może jakiegoś rsynca na przykład użyc, czy zobaczyć jak on jest napisany i zrobić podobnie.