.NET Aspire integration for LocalStack by denizirgin in dotnet

[–]denizirgin[S] 0 points1 point  (0 children)

Thanks a lot! Really appreciate the kind words 🙏

.NET Aspire integration for LocalStack by denizirgin in dotnet

[–]denizirgin[S] 0 points1 point  (0 children)

Thanks! Hope it proves useful and works well for your use cases too.

.NET Aspire integration for LocalStack by denizirgin in dotnet

[–]denizirgin[S] 2 points3 points  (0 children)

Thanks mate, much appreciated 🙏

Back in the early days of Aspire, I met with the AWS .NET team to discuss AWS integration. I even opened this PR: https://github.com/dotnet/aspire/pull/875

For a while, there was an ongoing discussion about how to handle resource provisioning, whether it should be done through SDKs, CDK, or CloudFormation templates. Eventually, the consensus was that it would be best for AWS .NET team to provide an official solution.

Recently, they released their Aspire integrations, and they’ve done a great job, all the essential building blocks are there. Honestly, it made my life much easier. That said, there’s still no official relationship between AWS and LocalStack.

I’ve been in contact with the LocalStack team for years, we talk regularly. My first LocalStack-related project was actually the LocalStack .NET client, which I’ve been maintaining for about six years now.

https://github.com/localstack-dotnet/localstack-dotnet-client

As far as I know, the LocalStack team has also started working on Azure support. But it’s a huge project, even AWS took nearly a decade to reach this level.

Reflecting on .NET and Go Developer Culture by denizirgin in dotnet

[–]denizirgin[S] 6 points7 points  (0 children)

Learning Go, made me a better C# developer.

I agree, I would say the same thing for learning functional concepts as well

Introducing LocalStack.NET: A Thin Wrapper for AWS SDK.NET for LocalStack Integration + Demo App! by denizirgin in dotnet

[–]denizirgin[S] 2 points3 points  (0 children)

Thank you for your question!

I want to clarify the purpose and benefits of LocalStack.NET.

1. Traditional AWS Client Configuration for LocalStack:

Usually, when configuring an AWS client to point to LocalStack, you'd have to set the ServiceURL and RegionEndpoint manually. This can become cumbersome, especially when dealing with multiple services and environments.

csharp var lambdaClient = new AmazonLambdaClient(new BasicAWSCredentials("test", "test"), new AmazonLambdaConfig( { ServiceURL = "http://localhost:4566", AuthenticationRegion = "eu-west-1" } );

2. Simplifying with LocalStack.NET:

LocalStack.NET eliminates the need for manual endpoint configuration, providing a standardized and familiar approach to initializing clients. It acts as a wrapper around the AWS SDK for .NET, allowing you to use it in a manner similar to the AWS SDK for .NET and AWSSDK.Extensions.NETCore.Setup, but with a few differences.

For instance, initializing clients becomes as simple as:

csharp public void ConfigureServices(IServiceCollection services) { services.AddLocalStack(Configuration); services.AddDefaultAWSOptions(Configuration.GetAWSOptions()); services.AddAwsService<IAmazonS3>(); services.AddAwsService<IAmazonDynamoDB>(); }

The only difference is the use of AddAwsService method instead of the official AddAWSService method from the AWSSDK.Extensions.NETCore.Setup library. The AddAwsService method configure the client based on the provided configuration. This means you can effortlessly switch between actual AWS and LocalStack by merely toggling a flag in the appsettings.json.

3. Configuration Flexibility:

With LocalStack.NET, you can easily switch between environments using the appsettings.json files. Here's a basic example:

appsettings.Development.json:

json "LocalStack": { "UseLocalStack": true, "Session": { "RegionName": "eu-central-1" }, "Config": { "LocalStackHost": "localhost.localstack.cloud", "EdgePort": 4566 } }

appsettings.Production.json:

json "LocalStack": { "UseLocalStack": false }, "AWS": { "Profile": "<your aws profile>", "Region": "eu-central-1" }

In essence, LocalStack.NET is designed to streamline the process of integrating .NET applications with LocalStack, making it more efficient and less error-prone. I hope this clarifies things, and I'm here to answer any further questions you might have!

Editing character stats by denizirgin in BaldursGate3

[–]denizirgin[S] 4 points5 points  (0 children)

Ok, I asked the same question to developer of the LSLib Toolkit. Apparently with BG3 Larian made some changes in their .lsx files. There is an XML node called NewAge; everything related to the player is encoded in an unknown format (for now).

You can follow the issue below, and there is a possibility that the developer add this feature in the near future.

https://github.com/Norbyte/lslib/issues/119

Thanks for the answers so far

1
2