launchSettings
Tiene más que ver con el despliegue. Establece los perfiles con los que ejecutaremos nuestro proyecto. Configura la forma en la que se inicia la aplicación durante el desarrollo y contiene valores que NO DEBEN EXPONERSE EN PROD.
No se utiliza en entornos de producción.
{
"profiles": {
"my.project.namespace": {
"commandName": "Project",
"launchBrowser": false,
"applicationUrl": "https://localhost:5011;http://localhost:5010",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
ASPNETCORE_ENVIRONMENT
Indica el entorno - soporta los siguientes valores
Development
Staging
Production
valor por defecto si se omite el valor
commandName
especifica el servidor web que se va a iniciar
IISExpress
inicia IIS ExpressProject
inicia Kestrel
appsettings
Se utiliza para almacenar la configuración de la aplicación, como cadenas de conexión de BBDD.
Se utiliza tanto en entornos de desarrollo como de producción.
{
"LocalDirectory": "/opt/data-download",
"MyServiceConfig": {
"Uri": "http://localhost:8800",
"Endpoint": "/some-endpoint",
"Timeout": 30
}
}
Hay varias maneras de leer la configuración.
leer de la raiz
Las que se encuentran en la raiz las podemos leer inyectando la config en la clase.
public class MyService(IConfiguration _config) : IMyService
{
public void MyMethod()
{
var localDirectory = _config["LocalDirectory"];
}
}
leer de una clase de config custom
por un lado tenemos la clase de config
public class MyServiceConfig
{
public const string Section = "MyServiceConfig";
public string Uri { get; set; }
public string Endpoint { get; set; }
public int Timeout { get; set; }
}
y por otro lado la inyectamos
public class MyService(MyServiceConfig _config) : IMyService
{
public void MyMethod()
{
var uri = _config.Uri;
var endpoint = _config.Endpoint;
var timeout = _config.Timeout;
}
}
la tendremos que poner también en el Startup
public void ConfigureServices(IServiceCollection services)
{
// ...
services.Configure<MyServiceConfig>(config.GetSection(MyServiceConfig.Section));
// ...
}
Reference(s)
https://learn.microsoft.com/es-es/aspnet/core/fundamentals/environments?view=aspnetcore-8.0
https://learn.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-8.0