diff --git a/content/en/user-guide/integrations/sdks/dotnet/index.md b/content/en/user-guide/integrations/sdks/dotnet/index.md index a97e6b56ab..c48991d2e4 100644 --- a/content/en/user-guide/integrations/sdks/dotnet/index.md +++ b/content/en/user-guide/integrations/sdks/dotnet/index.md @@ -51,7 +51,7 @@ var s3client = new AmazonS3Client(config); ``` {{< alert title="Note">}} -In case of issues resolving this DNS record, we can fallback to http://localhost:4566 in combination with the provider setting `ForcePathStyle = true`. The S3 service endpoint is slightly different from the other service endpoints, because AWS is deprecating path-style based access for hosting buckets. +In case of issues resolving this DNS record, we can fallback to in combination with the provider setting `ForcePathStyle = true`. The S3 service endpoint is slightly different from the other service endpoints, because AWS is deprecating path-style based access for hosting buckets. {{< /alert >}} ```csharp @@ -64,7 +64,67 @@ var config = new AmazonS3Config( var s3client = new AmazonS3Client(config); ``` +## Alternative: Using LocalStack.NET + +If you're working with .NET and LocalStack, you have a few options. In addition to the AWS SDK for .NET, there's an alternative client library, `LocalStack.NET`, which facilitates integration with LocalStack. + +### Overview + +`LocalStack.NET` is a .NET client library developed to simplify the connection between .NET applications and LocalStack. It wraps around the AWS SDK for .NET and offers an alternative setup for creating LocalStack clients. + +**LocalStack.NET Documentation:** Comprehensive guide and examples [here](https://github.com/localstack-dotnet/localstack-dotnet-client). + +### How it Works + +Instead of manually setting the endpoint configurations when initializing a client, `LocalStack.NET` offers methods that handle these details. The library aims to reduce the boilerplate required to set up LocalStack clients in .NET. + +### Example Usage + +#### Dependency Injection Approach + +```csharp +public void ConfigureServices(IServiceCollection services) +{ + // Add framework services. + services.AddMvc(); + + services.AddLocalStack(Configuration) + services.AddDefaultAWSOptions(Configuration.GetAWSOptions()); + services.AddAwsService(); +} + +... + +var amazonS3Client = serviceProvider.GetRequiredService(); +``` + +#### Standalone Approach + +```csharp +var sessionOptions = new SessionOptions(); +var configOptions = new ConfigOptions(); + +ISession session = SessionStandalone.Init() + .WithSessionOptions(sessionOptions) + .WithConfigurationOptions(configOptions).Create(); + +var amazonS3Client = session.CreateClientByImplementation(); +``` + +### Benefits + +- **Consistent Client Configuration:** `LocalStack.NET` provides a standardized approach to initialize clients, eliminating the need for manual endpoint configurations. +- **Tailored for .NET Developers:** The library offers functionalities specifically developed to streamline integration of LocalStack with .NET applications. +- **Adaptable Environment Transition:** Switching between LocalStack and actual AWS services can be achieved with minimal configuration changes when leveraging `LocalStack.NET`. +- **Versatile .NET Compatibility:** Supports a broad spectrum of .NET versions, from .NET Framework 4.6.1 and .NET Standard 2.0, up to recent .NET iterations such as .NET 7.0. + +### Considerations: + +- Both the standard AWS SDK method and `LocalStack.NET` provide ways to integrate with LocalStack using .NET. The choice depends on developer preferences and specific project needs. +- `LocalStack.NET` works alongside the AWS SDK, using it as a base and providing a more focused API for LocalStack interactions. + ## Resources -* [AWS SDK for .NET](https://aws.amazon.com/sdk-for-net/) -* [Official repository of the AWS SDK for .NET](https://github.com/aws/aws-sdk-net) +- [AWS SDK for .NET](https://aws.amazon.com/sdk-for-net/) +- [Official repository of the AWS SDK for .NET](https://github.com/aws/aws-sdk-net) +- [LocalStack.NET Documentation](https://github.com/localstack-dotnet/localstack-dotnet-client)