When - and why - should you store data in the Windows Registry?

Roddy picture Roddy · Nov 6, 2008 · Viewed 17k times · Source

As a developer, tools that store configuration/options in the registry are the bane of my life. I can't easily track changes to those options, can't easily port them from machine to machine, and it all makes me really yearn for the good old days of .INI files...

When writing my own applications, what - if anything - should I choose to put in the registry rather than in old-fashioned configuration files, and why?

Answer

James Curran picture James Curran · Nov 6, 2008
  • Originally (WIN3) configuration was stored in the WIN.INI file in the windows directory.
  • Problem: WIN.INI grew too big.
  • Solution (Win31): individual INI files in the same directory as the program.
  • Problem: That program may be installed on a network and shared by many people.
  • Solution(Win311): individual INI files in the user's Window directory.
  • Problem: Many people may share a windows folder, and it should be read-only anyway.
  • Solution (Win95): Registry with separate sections for each user.
  • Problem: Registry grew too big.
  • Solution (WinXP): Large blocks of individual data moved to user's own Application Data folder.
  • Problem: Good for large amounts of data, but rather complex for small amounts.
  • Solution (.NET): small amounts of fixed, read-only data stored in .config (Xml) files in same folder as application, with API to read it. (Read/write or user specific data stays in registry)