This question is more for gaining information and is very subjective, so there aren't a lot of points to pass around (as yet, depending on my opinion on the value of contributions). Due to the nature of the discussion, I may open other questions with more points to get help on the actual implementation, as I have done in the past.
What I have done so far is develop an Windows application that is supposed to manage a photo archive on our server. The photos are stored on two separate servers and the management is determined by the information stored in a database on classification, location, etc. The application (my first Windows app in C#; my background is Java) is buggy and keeps crashing. It is also quite complex due to my inexperience in Software Engineering.
What I am considering is a three part design: a front-end user interface that runs on the user's machine that interfaces with a server program that both manages the database and the photos. I initially started with a web-based interface, but I needed to be able to scan the contents of a user's hard drive to find photos, which cannot be done remotely from a web-based interface, unless an ActiveX control or some other tool is employed.
Any assistance here will be greatly appreciated.