Managing your .NET app configuration like a pro

แชร์
ฝัง
  • เผยแพร่เมื่อ 28 พ.ย. 2024

ความคิดเห็น • 142

  • @jag497
    @jag497 2 ปีที่แล้ว +5

    What I like the MOST about Nick's videos is that he goes over things that I have taken for granted and inspires me to dig deeper. Config files are a prime example. So easy to get them to work and just leave it be, but so much I have missed by that behavior.

  • @StyleNAofficial
    @StyleNAofficial 2 ปีที่แล้ว +40

    I am really excited to see that you're sponsored with AWS now! Your content is always fantastic, definitely deserving of sponsors.

  • @everyonesview
    @everyonesview 2 ปีที่แล้ว +15

    Azure has had App Configuration for as long as I can remember Or one can use the IOptionsMonitor to retrieve/change stuff in their configuration without re-compiling their app 😉

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว +6

      Yeap, Azure App Configuration would be the Azure alternative for this

  • @ovader9059
    @ovader9059 2 ปีที่แล้ว +1

    Nick, you got my back into doing my private projects after work again. I feel like I'm getting my energy back to try improve my coding abilities. I will explore your channel further for sure!!

  • @christianbayer7037
    @christianbayer7037 2 ปีที่แล้ว +2

    Great Video, thanks. Also with IOptionsSnapshot and IOptionsMonitor I always tend to implement the IValidateOptions interface to save guard against invalid parameters.

  • @Bitkus
    @Bitkus 2 ปีที่แล้ว +2

    Nick, I can see the amount of time you spent reading the horrible documentation docs :D thank you.

  • @matthewlevis4436
    @matthewlevis4436 2 ปีที่แล้ว +3

    Could have done with this video 2 years ago when I had to work it all out using AWS documentation!

  • @DerekWelton
    @DerekWelton 2 ปีที่แล้ว +16

    Great stuff Nick, once again I learned something new from you! Question for you. So why not just use IOptionsMonitor or IOptionsSnapshot instead of IOptions for everything? The only reason to use IOptions is if you explicitly don't want the values to change at runtime. I'm assuming there are performance hits using the monitor or snapshot which is why its common to use IOptions?

    • @mohamedeffat54
      @mohamedeffat54 2 ปีที่แล้ว +5

      I Also hope Nick can add into that part as well.
      Ever since the first time I've learned about the existence of IOptionsSnapshot, I've wondered the same thing as to why do we see IOptions everywhere instead of the other types.
      I personally had planned on using the IOptionsSnapshot in future projects even if I'm not sure whether I want the "hot reload" feature of it or not; just to be somewhat future proof.
      The only somewhat concern I know of is to keep in mind how each IOptions type is injected (singleton vs transient vs scoped) and how that may lead to the captive dependency issue depending on the use case

    • @daniaalnadir
      @daniaalnadir 2 ปีที่แล้ว +1

      You're right, probably a case of if the logic in IOptionsMonitor or IOptionsSnapshot is needed. For example you would use IOptions when you are not expecting your config values to change. If you are not expecting them to change then you wouldn't want to use IOptionsSnapshot. Similarly, with IOptionsMonitor, it just exposes more functionality such as OnChanges. Just depends on your use case

    • @kylenic33
      @kylenic33 8 หลายเดือนก่อน

      you pay to retrieve values from AWS. Cost/Benefit

  • @nickniebling
    @nickniebling 2 ปีที่แล้ว +3

    Great video - would be nice to see the same thing for Azure App Configuration (and working with Azure Vault) :)
    When you write "like a pro" in title, I would expect you to talk more about proper handling of "secrets" and maybe even quickly show how you set up authentication (you mention auth briefly, but don't show it at all - it's pretty important - else viewers might end up hardcoding "secrets" into codebase and submit to repo).
    Since I know how much you are into performance/benchmarking, you could have touch on that aspect of reloading Options with different strategies.

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว +1

      I already have a video on how to do this with secrets using Azure KeyVault and certificate authentication. The video focuses on simple configuration rather than secrets. Secrets can be managed using this same service (with the KMS integration and is mentioned in the video) but it was never the focal point of the video. Auth in AWS is way simpler than Azure. A service either has access to another service, through security policies, or it doesn't. When working in AWS you almost never have connections strings and secrets to access other services. You have VPCs, security groups and IAM roles.

    • @nickniebling
      @nickniebling 2 ปีที่แล้ว

      @@nickchapsas thanks for your reply! ☺️ I assumed you would link and refer to related videos - should have checked your library I guess 😅
      Azure does have identity based security (between services/resources) to avoid use of credentials as well. I think the official name is "Azure Managed Identity", but I might be wrong.. also not sure how AWS and Azure are different, but looks like it's working more or less the same way to me - I mainly focus on Azure myself though 😅 So I might be missing some of the great features of AWS ☺️

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว

      @@nickniebling It does but it also has connection strings which AWS doesn't. I have worked with both AWS and Azure at really high scale and there are things that I like in both areas. I think AWS has better services and a more clear security path but Azure has, in general, better SDK and documentation for .NET developers. Ultimately each provider gets inspired by each other. Choosing a cloud provider is 99.99% of the time a business decision and not a technical one.

  • @rogermurariu2448
    @rogermurariu2448 2 ปีที่แล้ว +1

    If your using AWS ECS, there's another way of using AWS Parameter Store, without having to use that nuget package. You can add environment variable in the task definition and specify to get the value from Parameter Store. However you won't be able to refresh it's value at runtime

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว

      You can but I don’t recommend it. There is no encryption for secrets and you’d be splitting your configuration in two places

    • @rogermurariu2448
      @rogermurariu2448 2 ปีที่แล้ว

      @@nickchapsas What I'm trying to say is that you can setup environment variables in the task definition for your container and their values can reference a secure string(encrypted using AWS KMS) from Parameter Store. As for splitting configuration in multiple places, I don't see it like that, you can use this approach if you have your environments in different AWS Accounts and you might have different configuration values per env, like connection strings. If I don't need to change configuration at runtime my personal choice will be to have the configuration in appsetting files and overwrite them from task definitions.

    • @simoncowell8587
      @simoncowell8587 2 ปีที่แล้ว

      ​@@rogermurariu2448 Hello mate, is there any way I can contact you, I am trying to get my configuration in the way you just mentioned, I just need a way to store configuration inside appseting files, I set up everything else inside the task definition and parameter store.

  • @Lakrimoz
    @Lakrimoz 2 ปีที่แล้ว +4

    Options pattern in ASP.NET Core Docs for anyone more interested:
    docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/options?view=aspnetcore-6.0

  • @thomaskmfdm
    @thomaskmfdm 2 ปีที่แล้ว +2

    These options interfaces are really handy and I was not familiar with then. However, when using this approach together with SSM I think you run a risk of exhausting your SSM get parameter quota as you will check for updates to SSM on each request and the default quota for this API call is quite low. It's assumed by aws that developers only read from SSM on application start up. I'd be strongly inclined to create some kind of internal cache that checks for updates when a timer elapses if there's a need to update these settings without an application restart or redeploy. However, I manage SSM parameters from the cicd pipeline of the application so these restarts are automatically done if the parameters are changed from the pipeline.

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว +2

      On demand changes are fine but realistically, if you need to do this then restarting the app might not be an option. Let's say you noticed some weird behavior and you wanna get more into on the running app. You might change the minimum log level to debug. This can't be done in the way you described because you just lost that bad state. Realistically that TimeSpan would more more around the 5 minutes mark than a short one.

    • @thomaskmfdm
      @thomaskmfdm 2 ปีที่แล้ว +1

      I'm actually running lambda so the state is gone anyway, but I allow for log level changes per event (and pass this change along the rest of the request chain) to achieve a similar goal.
      My point was if you naively put the combination shown here into a production environment with high load and a high number of instances you will hit the quota of the parameter store. However, it seems AWS now allows this to be raised so it less of an issue than it once was.

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว +1

      @@thomaskmfdm Well actually the state might not be gone in lambda. Static members in lambdas are reused because lambdas aren't disposed after each execution. They stay in memory, warm, until some minutes of inactivity, so in this scenario, unless you are loading the whole lambda configuration per execution (which would be a performance problem) the config stays the same.

  • @Proeng
    @Proeng 2 ปีที่แล้ว

    I literally implemented this last week - it's great :D

  • @alfkonee
    @alfkonee 2 ปีที่แล้ว

    Great that you showed this will look into it some time I currently use an Consul KV to store my config s

  • @shine1037
    @shine1037 2 ปีที่แล้ว +3

    Hi Nick,
    Please release .net microservices course with Azure

  • @ashleyrodrigues1468
    @ashleyrodrigues1468 ปีที่แล้ว

    This might be your only video, where you have explained things very intricately without worrying about the length of the video... Please have the same approach for all your videos

  • @teamo1328
    @teamo1328 2 ปีที่แล้ว

    There is better approach using Steeltoe library and spring cloud config server. You can instantly change anything on demand using IOptionsSnapshot

  • @AvityChannel
    @AvityChannel 2 ปีที่แล้ว

    Hi, Nick! I am from Greece as well. My greetings.

  • @sergeyfromodesa
    @sergeyfromodesa 2 ปีที่แล้ว +2

    Great video, thanks! Awesome speed of explanation and all other needless stuff just got skipped, making every second of the video worthy!
    Just wonder how grabbing settings from the cloud service hits performance. I guess if the app is running in the same cloud it shouldn't be a concern. But if the app is running on-premise? But sounds like a price to pay for the ability to change the config in a runtime.

  • @secretwpn
    @secretwpn 2 ปีที่แล้ว

    What is the "official" way of writing back to appsettings.json from the code? I've seen people mentioning the need to implement custom JsonConfigurationProvider that would override .Set() method but no clear examples

  • @expertreviews1112
    @expertreviews1112 2 ปีที่แล้ว

    Can we use Options pattern to inject non-config values too? like say a Customer class being injected with Options of Customer name, age etc... thnx... in general how can this be achieved with DI? Factory? What if a dependency needs a GUID each time it is instantiated?

  • @matthewparker7789
    @matthewparker7789 ปีที่แล้ว

    We use AWS and hand-rolled Kubernetes in a private cloud, is there a System Manager UI in K8s?

  • @myphonephone8231
    @myphonephone8231 2 ปีที่แล้ว

    Thank you Nick! Perfect as always 🍻

  • @moranmono
    @moranmono 2 ปีที่แล้ว

    Thanks for the information, I was just wondering how will I change all those variables I stored in the app setting

  • @DavidFernandoClavijoObando
    @DavidFernandoClavijoObando ปีที่แล้ว

    I got a lot of parameters on my appsettings file, so I wanna ask you if is possible to use AppConfig, do you have any video about that? Thank you

  • @MohammdFKl
    @MohammdFKl 2 ปีที่แล้ว

    Thank you for this video bro it is so helpful I'm searching for this these days

  • @tinypanther27
    @tinypanther27 2 ปีที่แล้ว

    Is there a use case to prefer IOptions over IOptionsSnapshot ?

  • @poteb
    @poteb 2 ปีที่แล้ว +1

    The centralization of config is why I've made my own service for running this on-prem. You can check it out on Github: poteb/ConfigurationService
    But it's not just simple configuration, it uses json refs to compose a configuration from smaller parts that can be shared across multiple configs.
    I still need to make a nuget package to load the config from the API and add to the application config.

  • @saadalam9663
    @saadalam9663 2 ปีที่แล้ว

    I want to do the same but with the AppConfig? I was wondering have you done or you have any blogpost for it

  • @christianmontagx8461
    @christianmontagx8461 2 ปีที่แล้ว

    Sounds nice for web app things. But on console apps (my domain) i used ini-files for configuration for the last 8 years and it worked flawless :)

    • @matthewlevis4436
      @matthewlevis4436 2 ปีที่แล้ว

      Add your AWS CLI keys and you can use parameter store no problem for any type of app

  • @89sfry
    @89sfry 2 ปีที่แล้ว +3

    Great summary, thanks!
    How do you feel about taking IOptions as a dependancy for business logic/domain level objects? Should it be abstracted at presentation/infrastructure level or passed down?

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว +1

      If you only even wanna deal with a singleton object of options, then you can just register the item straight in DI. If you need it to be updated in runtime then snapshot or montor are better alternatives and in that case I would also use IOptions

  • @joshgrieder7071
    @joshgrieder7071 2 ปีที่แล้ว

    Are the parameters fetched at startup or only when the IOptions or other variation is retrieved from the container?

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว

      On startup and then, if configured, every N seconds/minutes

  • @curiosity9283
    @curiosity9283 2 ปีที่แล้ว

    Each time I want to make Likes for your videos I found myself already done it =)

  • @Mario-cr1ik
    @Mario-cr1ik 2 ปีที่แล้ว

    What tool are you using to annotate the screen Nick? For example at 1:40 drawing the rectangles. I know there are many tools for doing this but there is always a better one around the corner :-) Thx & keep up the good work

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว +1

      It's called ZoomIt

  • @jjxtra
    @jjxtra 2 ปีที่แล้ว +1

    A configuration change at runtime is a code change. This should require all unit and integration test to rerun. In my opinion configuration should never be changed at runtime and should require a redeploy. Very interesting video thanks for sharing :)

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว +3

      I completely disagree. If someone is so fundamentally different that makes you need to run your whole testing suite then that value shouldn't be configurable in the first place.. For example, if you notice an abnormal behavior in your app when running and you wanna capture more data you might update the minimum LogLevel to Debug to capture as much info as you need. That's not a code change and doesn't need to go through any pipeline. Same goes for how many consumer threads you might wanna have in a long running consumer and I can go on forever. I'm completely against that statement and I would be seriously worried about what's in those config files that would make someone think like that.

    • @jjxtra
      @jjxtra 2 ปีที่แล้ว

      @@nickchapsas Fair enough.

    • @jjxtra
      @jjxtra 2 ปีที่แล้ว

      @@nickchapsas Agree that log level changes are safe. When changing connection strings or anything that changes how the code operates - that's where I would want to have some sort of validation run on the new value. Typos and the like could cause big problems. But you are right, some of the config I have had to deal with in the past is a bit bloated :)

  • @WarlordSosa
    @WarlordSosa 2 ปีที่แล้ว

    Good stuff bro, keep it up

  • @squadwuschel
    @squadwuschel 2 ปีที่แล้ว

    Hi, cool solution. Do you know a on premise solution for local hosting?

  • @sunilanthony17
    @sunilanthony17 2 ปีที่แล้ว

    Wow, great stuff. I've learned so much from you already.

  • @ISP4ever
    @ISP4ever 7 หลายเดือนก่อน

    in .net 8 is not taking me IConfiguraton by default? do you know how can i do to register it in entire applicacion?

  • @brianm1864
    @brianm1864 2 ปีที่แล้ว

    Great stuff! We have been using IOptionsMonitor with Config server in PCF for a while now... same concept.

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว +1

      Yeah it can be used in so many ways. I was so surpised by how many people only know the IOptions one and don't know about monitor and snapshot

    • @brianm1864
      @brianm1864 2 ปีที่แล้ว

      @@nickchapsas Agreed! That's why I try to get all of my fellow engineers to watch your videos! You're always putting out great content that is simple to do but can make your APIs so much better! Keep up the great work and thanks for all of the great content!

  • @xour_yt
    @xour_yt 2 ปีที่แล้ว

    You mentioned that using IConfiguration is something that should be used regularly. With that in mind, how would you access configuration parameters during service registration/within ConfigureServices? It is my understand that you can't access the IOptions interfaces at that point, and only should be used after the app is buid. Is this correct?

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว

      You shouldn’t* use regularly. You should be using the Option interfaces shown instead

  • @TommyTEmmanuel
    @TommyTEmmanuel 2 ปีที่แล้ว

    Nick, what do you advise for an on-premise param store, i was thinking hashicorp vault considering its dotnet library was solid, but this was way more seamless

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว +1

      I’ve actually never used an on prem parameter store. I’ve only ever used AWS Param Store, AWS Secrets Manager, Asure app configuration and Azure key vault. I’ve only ever worked with cloud so on prem was something I’ve never done

  • @pdevito
    @pdevito 2 ปีที่แล้ว

    Cool. Didn’t know they had this and we home rolled a similar method.
    If you were deploying this, I’m assuming you need to set up that config options class to feed it AWS credentials… or is the lib smart enough (and permitted to) to somehow use the region and credentials for where your app is deployed?

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว

      It can assuming you have the right IAM Role in place, but I would go with an explicit region based on where I deployed the app

    • @pdevito
      @pdevito 2 ปีที่แล้ว

      @@nickchapsas yup agreed. Cool regardless. Love the infra vids 💫

  • @MrBrendyn0
    @MrBrendyn0 2 ปีที่แล้ว

    I made something like this for myself but the settings could only be changed programmatically.
    I will expand it to support from external sources.

  • @shomari169
    @shomari169 2 ปีที่แล้ว

    Are these covered in dept in you courses?

  • @pavlokarmazin
    @pavlokarmazin 2 ปีที่แล้ว

    Very useful stuff! Thank you Nick.

  • @ldalipis
    @ldalipis 2 ปีที่แล้ว

    Extremely useful stuff. Thanks a ton!

  • @muhamedkarajic
    @muhamedkarajic 2 ปีที่แล้ว

    As always qucik and catchy.

  • @ayudakov
    @ayudakov 2 ปีที่แล้ว

    Quite useful. Thank you!

  • @JakeAndDaddy
    @JakeAndDaddy 2 ปีที่แล้ว

    Nicely explained

  • @matrixlukan
    @matrixlukan 2 ปีที่แล้ว

    Thanks.
    Can you please make a video on expression trees?

  • @ignask2216
    @ignask2216 2 ปีที่แล้ว

    Thanks for the video! Any plans for Func and Action video?

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว +1

      It's currently scheduled for the 7th of March but I keep pushing it back because other videos are being prioritized

  • @matthewrossee
    @matthewrossee ปีที่แล้ว

    What tools do you mean in 8:22?

  • @P86-m5v
    @P86-m5v 2 ปีที่แล้ว

    Well explained. Big plus for explaining how IOptionsMonitor and IOptionsSnapshot works because not much people knows how to use them. Do you have way to update on the fly options that are used in Startup.cs eg. CORS settings?

  • @TitusM7
    @TitusM7 ปีที่แล้ว

    how is Parameter store different from AWS AppConfig ?

  • @javiermayorga9857
    @javiermayorga9857 2 ปีที่แล้ว

    Great content thanks!

  • @amrosamy8232
    @amrosamy8232 2 ปีที่แล้ว

    Perfect demo 👏

  • @Lkez
    @Lkez 2 ปีที่แล้ว

    Please notice that you can also edit the appsettings.json file itself at runtime and by default (reloadOnChange: true) you can propagate the changes with the same interfaces described here.
    See: docs.microsoft.com/en-us/aspnet/core/fundamentals/change-tokens#monitor-for-configuration-changes

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว +1

      Yeah but you can't change the json files of deployed applications in containers. (I mean you technically could figure a way out, but you shouldn't)

    • @Lkez
      @Lkez 2 ปีที่แล้ว

      @@nickchapsas yeah totally agree. In my day to day job there's zero chance I'm able to do it in prod, luckilly.

  • @RichardONeil
    @RichardONeil 2 ปีที่แล้ว

    Fantastic again!

  • @saarcfashion1196
    @saarcfashion1196 2 ปีที่แล้ว

    Why don't you use your own configuration DB, such as SQLite DB, and sync configuration in DB with default configuration from appsettings.json? In that sense, the default configuration will always keep unchanged for any particular stage of the application in production.

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว +1

      Why would you write your own thing when there is a high available free service that you can use?

  • @kenjacobi9154
    @kenjacobi9154 2 ปีที่แล้ว

    Always excellent content here! I have been using IOptionsMonitor for a little bit, but I like this concept from AWS too. Offers a central hub for managing multiple api's or console apps.

  • @fuepingue
    @fuepingue 2 ปีที่แล้ว

    You can also do something similar using the json files and the reload on change option.

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว +2

      Yeah but you can't change the json files of deployed applications in containers. (I mean you technically could figure a way out, but you shouldn't)

  • @StudioB-ej9te
    @StudioB-ej9te ปีที่แล้ว

    @nickchapsas Hi Nick. You mention in your AWS videos that you've authenticated your machine against AWS. Would you consider doing a video on how you do that, or could you point me in the right direction as I've not had much luck in my searches about it? Thanks.

  • @RuneAntonsen
    @RuneAntonsen 2 ปีที่แล้ว

    Can you make some videos about Orleans?

  • @Lakrimoz
    @Lakrimoz 2 ปีที่แล้ว

    So with IOptionsMontor and IOptionsSnapshot, would these update at runtime if the appsettings file is updated? Or if the ASPNETCORE_ENVIRONMENT system parameter is changed?

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว +1

      This depends on how the configuration provider is implemented. The AWS SDK team has explicitly added the updating mechanism in their provider

    • @edelwater
      @edelwater 2 ปีที่แล้ว

      runtime

    • @DemoBytom
      @DemoBytom 2 ปีที่แล้ว

      ​@@nickchapsas this also depends on how the provider is added to the pipeline, since they all (I think all?) have a property for reload on change, which can be enabled or disabled.
      Then the question is if the provider actually honors them.

  • @pishu57
    @pishu57 2 ปีที่แล้ว

    heard about azure app configuration? its even easier and comes with integrated features toggle loading dynamic

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว

      So does AWS AppConfig. I specifically wanted to showacse Parameter Store to focus both on the service but also on the IOptions stuff and the Configuration Provider.

  • @mohamedayoub6355
    @mohamedayoub6355 2 ปีที่แล้ว +1

    this is great I already use it, but can you make a video regarding appConfig + feature management in AWS

  • @edelwater
    @edelwater 2 ปีที่แล้ว

    I wonder how this works in a multi tenant scenario (so hundreds of isolated databases, same schema but different contents , and only one web application). Then based on the login the system will have to provide a connection string and all other needed options from a provider e.g. a EF configuration provider or in your case an AWS configuration provider. So probably ... this will then become part of the claims in the token for such a user. (havent tried it but just thinking about this while viewing the video). Can't judge if this then each time passes the builder (which then has a dependency on the request, so auth must already have happnened while builder "adds" that later). (assuming all distributed caching includes the tentantid in the cache key) (and assuming EF has no unknown specific stuff). Ms Refers to Orchard but dont know if that is generalizable useable.

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว

      You'd most likely have to add the tenant id as part of the config path and load it dynamically.

  • @easylite376
    @easylite376 2 ปีที่แล้ว

    You didnt push the code yet :) And nice video, I wanted to use doppler for this, but maybe I will switch to amazons solution :)

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว +1

      Ah damn you're right. I will push it after work today. Sorry for that.

  • @Marcus001
    @Marcus001 9 หลายเดือนก่อน

    .NET really has a thing for everything... here I was writing a configuration system manually

  • @ma-arufburad8826
    @ma-arufburad8826 2 ปีที่แล้ว

    Hi sir thanks for making wonderful tutorials. Could you make a tutorials on how to for ASP.NET Identity Roles? Thanks

  • @mohammednhari1737
    @mohammednhari1737 2 ปีที่แล้ว

    Thank you!, in my case I use aws secret manager ...

  • @motofly2950
    @motofly2950 2 ปีที่แล้ว

    Is there azure counterpart to aws system manager with similar package?

    • @hemant-sathe
      @hemant-sathe 2 ปีที่แล้ว

      I am not sure but I guess key vault is the one.

    • @Potato-m1l
      @Potato-m1l 2 ปีที่แล้ว

      Azure app configuration :) you add it as a config source in your program builder.

    • @motofly2950
      @motofly2950 2 ปีที่แล้ว

      @@Potato-m1l Thanks for info!

  • @PeriMCS
    @PeriMCS 2 ปีที่แล้ว

    Its not that nice at all. When you create PR you will not see config changes needed for your code. Now you need to come up with process to manage it. What will prevent you from deploying code without adding settings first?

  • @guineapigtaco288
    @guineapigtaco288 ปีที่แล้ว

    Everything fine, but today we can not do slash in name. It has to be like ConnectionString in name and thats all.

  • @xxapoloxx
    @xxapoloxx 27 วันที่ผ่านมา

    This does not work on maui

  • @omfgiwantausername21
    @omfgiwantausername21 2 ปีที่แล้ว

    In lack of a better word, you made a mistake in the video.
    You show the Value/CurrentValue from the snapshot/monitor being stored as a field.
    It is recommended storing the IOptions "variant".
    Reason being that you can accidentally store settings in a e.g. singleton that then does not get updated when a setting change.
    You probably know this. But a new developer might copy your implementation in places where it would cause a bug.

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว +1

      I am not expecting anyone to store the value as a field since the only reason to have the options object registered is to inject it as a whole. Storing each value would defeat the purpose. I have to assume a lot when I make these videos, so here I assume that people understand how Dependency Injection works. If they don't, then they'll figure it out one way or another.

    • @omfgiwantausername21
      @omfgiwantausername21 2 ปีที่แล้ว

      @@nickchapsas I understand. But perhaps you could mention when doing the opposite of the general recommendation, for the sake of making an example.
      Oh, and congratulations on the sponsorship. I know nothing about aws, so I'm excited to see your videos that show aws feature :-)

  • @paviad
    @paviad 2 ปีที่แล้ว

    Colon!!! :)

  • @PaulSebastianM
    @PaulSebastianM 2 ปีที่แล้ว

    Whenever he starts advertising the channel, I can't understand one iota. 😅

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว

      It's a miracle I've made it this far with the same ad bit

    • @PaulSebastianM
      @PaulSebastianM 2 ปีที่แล้ว

      @@nickchapsas irony aside, yes it is. Also, remember to subscribe to the hit da' notification bell and smash the sagamale^#^#£€÷7 button. 🥴 hic!

  • @vitaliidolotov4226
    @vitaliidolotov4226 2 ปีที่แล้ว

    bellissimo

  • @rosenyordanov7298
    @rosenyordanov7298 ปีที่แล้ว

    +1😀

  • @clearlyunwell
    @clearlyunwell 2 ปีที่แล้ว

    👍🏽

  • @danku1013
    @danku1013 2 ปีที่แล้ว

    You were supposed to fight evil not join it!
    Where are Azure guides? :)

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว

      Ask the Azure marketing department 😂I've been working with AWS at very high scale for the past 3 years. I think i can offer more value with AWS advice and the AWS marketing team was kind enough to sponsor some content so two birds with one stone.

  • @rafaelherscovici6438
    @rafaelherscovici6438 2 ปีที่แล้ว

    What a horrible idea to inject IConfiguration into a controller.

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว

      You obviously shouldn't be doing that. It's there to help showcase the IOptions interfaces

    • @dhineshkumar.m
      @dhineshkumar.m 2 ปีที่แล้ว

      Why it's bad to inject IConfiguration in controller?.. help me to understand

    • @nickchapsas
      @nickchapsas  2 ปีที่แล้ว +1

      @@dhineshkumar.m Because it gives you access to everything about the app's configuraiton. You should narrow it down to only the things that conern the Controller

    • @rafaelherscovici6438
      @rafaelherscovici6438 2 ปีที่แล้ว +1

      @@dhineshkumar.m You want to keep your controllers clean and free of any logic.
      You would have services for that, even though, lately and with the large adoption of the Mediator pattern, The only service you would inject into a controller would be the Mediator, Nothing else.
      Google for "Thin controllers" to learn more.

    • @dhineshkumar.m
      @dhineshkumar.m 2 ปีที่แล้ว

      @@rafaelherscovici6438 Thank you 👍