I'm currently writing an application using the .NET Platform (C# 3.5). I"m not a professional developer but I can code at an intermediate level - let's get that out of the way first. I want to try and 'architect' the application properly from the start but unfortunately that means probably doing things that I don't know exist ... enter design patterns.
Can anyone offer any advise on design patterns for someone like me? Which one would be the best to use for a site that, for the sake of example, is like Flickr? There are members, there are photos etc.
Also, if the application as a UI and then needs to update member information, should the UI talk to a model layer which, in turn, talks to a data layer? Or is it ok for the UI to talk directly to the database?
I realise these might be entry-level questions for a pro dev but they're pretty mind-boggling for someone like me. :)