I write lots of little C# desktop utilities for myself and others. These are all full-blown apps with full UI's (menus, lots of controls, etc) .

Many of them allow the user to set various preferences and configurations (e.g., case sensitivity in searches, default email addresses, network parameters, file-naming preferences, etc, etc, depending on the app.)

Where is the best place to store config, options, or user-preference info that will be available each time the user starts the app? Sometimes I use the Registry, sometimes I use a separate config file (and I'm never sure what the "right" place is to put such a file) - and there are probably other options, too.

Different developers may have different opinions but what guidelines/questions should I use to decide?

Thanks in advance!