Skip to content

Use Cases

Patrick edited this page Oct 23, 2016 · 5 revisions

##Some Use Cases for adopting Configuration.EntityFramework##

There are many compelling use cases for using Configuration.EntityFramework and persisting your settings to a database. However, we'll cover just a few here.

##Deep Software Stack## In many cases, particularly enterprise systems, the software stack may be comprised of many parts, for example a Windows Service, Web Application, Web API and Desktop Application. Each of these parts will most likely have its own configuration file which must be deployed and maintained. With Configuration.EntityFramework, the settings related to these parts can be centrally stored and maintained, reducing the effort and risk associated with software deployment, upgrades and frequent or occasional configuration changes.

##Distributed Solution## In a distributed solution, configuration files will exist on more than one server. In the case of a clustered environment, the same configuration files may be duplicated across many servers, all of which could be identical. With Configuration.EntityFramework, settings can be managed from a single source of truth but utilised by any resource.

##Release Management## Configuration Files can add additional complexity to the Release Management process. When adding, removing or modifying settings there are many variables to consider, including;

  • Versioning,
  • Has a setting been modified by the client since last deployed,
  • Is a conditional merge required

As Configuration.EntityFramework leverages EntityFrameworkCore for the persistence of Configuration Settings to a relational database, configuration data can be managed in many ways, including scripting or via the EF ConfigurationContext.

##Atomic Update## Where there are many configuration files, potentially located on many servers, maintaining the integrity of these files is essential. To make a change to just one setting, a well considered backup and restore strategy (recovery plan) is a must. However, by persisting these settings to a database, the logistics involved and the system outage necessary to make the change is greatly reduced.

Clone this wiki locally