somekind napisał(a)
Baza ułatwia zabezpieczenie.
Jak? Przecież możesz mieć zdjęcia (dowolne inne pliki) w systemie plików, ale w obszarze poza web serverem. Więc nie ma możliwości podać adresu do pliku. Natomiast aplikacja (skrypt) po autentykacji i autoryzacji zwraca żądany kontent. Więc uzyskujesz dokładnie taką samą funkcjonalność jak w przypadku trzymania plików w bazie.
Nie twierdzę że nie można trzymać plików w bazie, bo sam też w kilku projektach to robiłem. Ale jeśli zapytań o pliki będzie dużo moim zdaniem lepiej pliki umieścić w systemie plików i nie obciążać systemu bazy danych. Chyba że mamy monster-server, który wciągnie takie obciążenie z kabelkiem w ... gniazdku :)
Jeśli napiszesz web aplikację, to warstwa prezentacji może okazać się dla ciebie łatwiejsza, bo jedyne co musisz zrobić mając zdjęcia na dysku, to wygenerować tag img z odpowiednim src.
Jeśli napiszesz aplikację win forms, to będziesz musiał te zdjęcia przesyłać do klienta i wyświetlać. Generalnie stworzenie gui będzie trochę bardziej pracochłonne.
Jeśli serwer jest twój, to najwygodniej użyć MS SQL Server w zestawieniu z c#. Jeśli będzie to jakiś hosting, to pewnie będziesz skazany na MySQL, ewentualnie na Postgreslq. Nie wiem jak teraz, ale kiedyś postgresql był ciekawszym rozwiązaniem niż mysql. Może ktoś lepiej znający najnowsze wersje tych baz może się wypowiedzieć?