Skip to main content

Posts

Showing posts with the label Configuration

Strongly typed Application configuration through EF SQL DB

The idea is to create a strongly typed application configuration by constructing concrete class and get the values populated from the database so that it is easier to change. This would allow admin to directly modify DB values for configuration. So, let's start with what we need. Application setting classes as needed Classes for application setting. It is just a POCO implementation. /// <summary> /// Entire application settings /// </summary> public class Setting { /// <summary> /// Gets or sets the setting version. /// </summary> /// <value> /// The setting version. /// </value> public int SettingVersion { get; set; } /// <summary> /// Gets or sets the name of the application. /// </summary> /// <value> /// The name of the application. /// </value> public string ApplicationName { get; ...

ASP.NET Core environment aware strongly typed configuration in MongoDB

This is targetted to save in MongoDB but the technique can be used in any targetted backend with key value setting based on  IConfigurationProvider Data property. Basically, the provided interface works based Data property having a type as IDictionary<string, string>. So, whatever class we create it has to be serialized based on same. We would simplify this by creating an abstract class to have certain serialization logic. This is sample setting for the application. If you check the structure,  Setting is the main class and nested items are Azure, Message, Email, Twilio. The key value needs to be composed based on parent and child classes separated by colons. Just like above, we need to populate settings from our different setting classes. Implementation can be grouped in these sections. - Application level configuration classes. - Registration of configuration on ASP.NET Core. - Environment level configuration, this would little mixed with abo...

Strongly typed configuration through database

We usually save most of application setting under app.config or web.config with key and value pair under appSetting element. The big problem with those are whenever you need value, typecasting need to be done and also need to be called through key. The other problem I find is with hierarchy of settings like download related setting present should under download element for easy accessing. To solve strongly typed configuration and hierarchy, ConfigurationManager ( http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager(v=vs.110).aspx ) class comes for rescue. You might have seen under web.config where we have sectionGroup and related configuration under elements. To implement it, lot of codes need to written to achieve simplification. To reduce numbers of codes for implementing XML configuration a very good and free tool is available called "Configuration Section Designer" available on http://csd.codeplex.com/ . There we do not have to wri...