Although you could access the element in Web.config directly in the code (for example,
you could use WebConfigurationManager.AppSettings.Get("FromAddress") to get the e-mail
address in ContactForm.ascx directly), it’s better to wrap the elements in shared properties
in their own class. This solution gives you IntelliSense on the AppConfiguration class, making
it easy to see what configuration properties are available. It also enables you to write centralized code
that throws exceptions when the required application settings cannot be found or that supplies sensible
defaults. Notice how the properties throw an exception only when a valid value cannot be returned. If
you access Web.config directly in your own code, you would need to check for valid values every time
you access a setting.