Mutukundu Mahendra Reddy

Feb 26, 2025 • 2 min read

Exploring Configuration Changes in .NET Framework and .NET Core

Exploring Configuration Changes in .NET Framework and .NET Core

Configuration management is a cornerstone of application development, allowing flexibility and scalability across environments. While .NET Framework and .NET Core (now .NET) share similarities, their configuration paradigms are quite distinct due to fundamental differences in architecture and design philosophy. This blog explores these differences through hands-on examples using two simple C# projects.

Adding and Using Configuration in .NET Framework

  1. Create a new Console Application targeting .NET Framework using Visual Studio 2019.

2. You can see an App.config file created, under the project.

3. If it’s not already created then add App.config file and open the file, you can add few custom-made settings, inside the App.config file.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0"   sku=".NETFramework,Version=v4.7.2" />
    </startup>
 <appSettings>
  <add key="firstName" value="Jane"/> <!-- Custom added values -->
  <add key="lastName" value="Doe"/>   <!-- Custom added values -->
 </appSettings>
</configuration>

NOTE:
While
appSettings is the most commonly used section, there are many other sections available, or you can create your own custom sections.

4. Read Configuration in the code, using ConfigurationManager from the App.config.

using System;
using System.Configuration;

namespace Old_Configuration
{
    class Program
    {
        static void Main(string[] args)
        {
            string fName = ConfigurationManager.AppSettings["firstName"];
            string lName = ConfigurationManager.AppSettings["lastName"];

            Console.WriteLine($"First Name: {fName}");
            Console.WriteLine($"Last  Name: {lName}");

            Console.ReadLine();

        }
    }
}

NOTE:
In the above code, while compiling if you get the following error:
“The name ‘ConfigurationManager’ does not exist in the current context Old_Configuration”

Then under the project section, go to references, and add reference to System.Configuration , this should fix the issue

5. Compile and Run !! you should see the following output…

Adding and Using Configuration in .NET Core

  1. Create a new Console Application targeting .NET Core using Visual Studio 2022.

2. Add an appsetting.json file to the project.

{
  "firstName": "Jane",
  "LastName":  "Doe"
}

complexSetting.json (multiple json files)

{
  "Address": {
    "State": {
      "Capital": "Moonland",
      "District": "South Moon"
    },
    "Location": {
      "Galaxy": "Milky way"
    }
  },
  "Telephone": "Not Available"
}

3. Add the following NuGet packages Microsoft.Extensions.Configuration and Microsoft.Extensions.Configuration.Json to the project.

4. Use the ConfigurationBuilder to read the JSON configuration.

using System;
using Microsoft.Extensions.Configuration;

namespace NewConfiguration
{
    class Program
    {
        static void Main(string[] args)
        {

            var config = new ConfigurationBuilder()
                            .AddJsonFile("appsetting.json")
                            .AddJsonFile("complexSetting.json") // Adding the other json file also to the config
                            .Build();

            string fName = config["firstName"];
            string lName = config["lastName"];

            string capital = config["Address:State:Capital"];
            string galaxy = config["Address:Location:Galaxy"];

            Console.WriteLine($"First Name: {fName}");
            Console.WriteLine($"Last  Name: {lName}");
            Console.WriteLine($"Capital   : {capital}");
            Console.WriteLine($"Galaxy    : {galaxy}");

        }
    }
}

NOTE:
Once complied might run into error, that the “
.json” file is not found.
Copy the respective “
.json” files to the generated exe path

5. Run the console app !! you should see the following output..

GitHub Link: Blogs/Exploring Configuration Changes in .NET Framework and .NET Core at main · reddymahendra52/

Join Mutukundu Mahendra on Peerlist!

Join amazing folks like Mutukundu Mahendra and thousands of other people in tech.

Create Profile

Join with Mutukundu Mahendra’s personal invite link.

0

9

0