From 2bed589a0e9ddb6605942d8447a511dab1ed01da Mon Sep 17 00:00:00 2001 From: Whit Waldo Date: Fri, 18 Apr 2025 18:30:16 -0500 Subject: [PATCH 1/4] Modernized .NET example to include modern syntax for controller example and add a minimal API version for completeness Signed-off-by: Whit Waldo --- .../bindings/howto-triggers.md | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/daprdocs/content/en/developing-applications/building-blocks/bindings/howto-triggers.md b/daprdocs/content/en/developing-applications/building-blocks/bindings/howto-triggers.md index 4a5f6d4dd7f..6af2a1027a3 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/bindings/howto-triggers.md +++ b/daprdocs/content/en/developing-applications/building-blocks/bindings/howto-triggers.md @@ -119,6 +119,8 @@ Below are code examples that leverage Dapr SDKs to demonstrate an output binding {{% codetab %}} +The following example demonstrates how to configure an input binding using ASP.NET Core controllers. + ```csharp //dependencies using System.Collections.Generic; @@ -126,21 +128,27 @@ using System.Threading.Tasks; using System; using Microsoft.AspNetCore.Mvc; -//code -namespace CheckoutService.controller +namespace CheckoutService.controller; + +[ApiController] +public sealed class CheckoutServiceController : ControllerBase { - [ApiController] - public class CheckoutServiceController : Controller + [HttpPost("/checkout")] + public ActionResult getCheckout([FromBody] int orderId) { - [HttpPost("/checkout")] - public ActionResult getCheckout([FromBody] int orderId) - { - Console.WriteLine("Received Message: " + orderId); - return "CID" + orderId; - } + Console.WriteLine($"Received Message: {orderId}"); + return $"CID{orderId}"; } } +``` +The following example demonstrates how to configure the same input binding using a minimal API approach: +```csharp +app.MapPost("checkout", ([FromBody] int orderId) => +{ + Console.WriteLine($"Received Message: {orderId}"); + return $"CID{orderId}" +}); ``` {{% /codetab %}} From fb3f24c050676d5b30597e9cae01b9fb15adf0d8 Mon Sep 17 00:00:00 2001 From: Whit Waldo Date: Fri, 18 Apr 2025 18:31:32 -0500 Subject: [PATCH 2/4] Removed //dependencies text as no one does this Signed-off-by: Whit Waldo --- .../building-blocks/bindings/howto-triggers.md | 1 - 1 file changed, 1 deletion(-) diff --git a/daprdocs/content/en/developing-applications/building-blocks/bindings/howto-triggers.md b/daprdocs/content/en/developing-applications/building-blocks/bindings/howto-triggers.md index 6af2a1027a3..d3406f0a3b2 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/bindings/howto-triggers.md +++ b/daprdocs/content/en/developing-applications/building-blocks/bindings/howto-triggers.md @@ -122,7 +122,6 @@ Below are code examples that leverage Dapr SDKs to demonstrate an output binding The following example demonstrates how to configure an input binding using ASP.NET Core controllers. ```csharp -//dependencies using System.Collections.Generic; using System.Threading.Tasks; using System; From e7ca832c8c6b6ef04725a7eef241f928e370a564 Mon Sep 17 00:00:00 2001 From: Whit Waldo Date: Fri, 18 Apr 2025 18:40:49 -0500 Subject: [PATCH 3/4] Modernized example for binding outputs in .NET Signed-off-by: Whit Waldo --- .../bindings/howto-bindings.md | 46 ++++++++----------- 1 file changed, 18 insertions(+), 28 deletions(-) diff --git a/daprdocs/content/en/developing-applications/building-blocks/bindings/howto-bindings.md b/daprdocs/content/en/developing-applications/building-blocks/bindings/howto-bindings.md index 02df63c2078..98b18bf3741 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/bindings/howto-bindings.md +++ b/daprdocs/content/en/developing-applications/building-blocks/bindings/howto-bindings.md @@ -110,40 +110,30 @@ The code examples below leverage Dapr SDKs to invoke the output bindings endpoin {{% codetab %}} +Here's an example of using a console app with top-level statements in .NET 6+: + ```csharp -//dependencies -using System; -using System.Collections.Generic; -using System.Net.Http; -using System.Net.Http.Headers; +using System.Text; using System.Threading.Tasks; using Dapr.Client; -using Microsoft.AspNetCore.Mvc; -using System.Threading; -//code -namespace EventService +var builder = WebApplication.CreateBuilder(args); +builder.Serivces.AddDaprClient(); +var app = builder.Build(); + +const string BINDING_NAME = "checkout"; +const string BINDING_OPERATION = "create"; + +var random = new Random(); +using var daprClient = app.Services.GetRequiredService(); + +while (true) { - class Program - { - static async Task Main(string[] args) - { - string BINDING_NAME = "checkout"; - string BINDING_OPERATION = "create"; - while(true) - { - System.Threading.Thread.Sleep(5000); - Random random = new Random(); - int orderId = random.Next(1,1000); - using var client = new DaprClientBuilder().Build(); - //Using Dapr SDK to invoke output binding - await client.InvokeBindingAsync(BINDING_NAME, BINDING_OPERATION, orderId); - Console.WriteLine("Sending message: " + orderId); - } - } - } + await Task.Delay(TimeSpan.FromSeconds(5)); + var orderId = random.Next(1, 1000); + await client.InvokeBindingAsync(BINDING_NAME, BINDING_OPERATION, orderId); + Console.WriteLine($"Sending message: {orderId}"); } - ``` {{% /codetab %}} From 974437728ab1e73fe106ef8ee3f5e63a32e00100 Mon Sep 17 00:00:00 2001 From: Whit Waldo Date: Mon, 21 Apr 2025 13:32:25 -0500 Subject: [PATCH 4/4] Update daprdocs/content/en/developing-applications/building-blocks/bindings/howto-bindings.md Co-authored-by: Mark Fussell Signed-off-by: Whit Waldo --- .../building-blocks/bindings/howto-bindings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/developing-applications/building-blocks/bindings/howto-bindings.md b/daprdocs/content/en/developing-applications/building-blocks/bindings/howto-bindings.md index 98b18bf3741..a67fdeb96da 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/bindings/howto-bindings.md +++ b/daprdocs/content/en/developing-applications/building-blocks/bindings/howto-bindings.md @@ -118,7 +118,7 @@ using System.Threading.Tasks; using Dapr.Client; var builder = WebApplication.CreateBuilder(args); -builder.Serivces.AddDaprClient(); +builder.Services.AddDaprClient(); var app = builder.Build(); const string BINDING_NAME = "checkout";