<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Local development on Dapr Docs</title><link>https://v1-18.docs.dapr.io/developing-applications/local-development/</link><description>Recent content in Local development on Dapr Docs</description><generator>Hugo</generator><language>en</language><atom:link href="https://v1-18.docs.dapr.io/developing-applications/local-development/index.xml" rel="self" type="application/rss+xml"/><item><title>How to: Use the gRPC interface in your Dapr application</title><link>https://v1-18.docs.dapr.io/developing-applications/local-development/grpc-integration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/developing-applications/local-development/grpc-integration/</guid><description>&lt;p>Dapr implements both an HTTP and a gRPC API for local calls. &lt;a href="https://grpc.io/">gRPC&lt;/a> is useful for low-latency, high performance scenarios and has language integration using the proto clients.&lt;/p>
&lt;p>&lt;a href="https://v1-18.docs.dapr.io/developing-applications/sdks/">Find a list of auto-generated clients in the Dapr SDK documentation&lt;/a>.&lt;/p>
&lt;p>The Dapr runtime implements a &lt;a href="https://github.com/dapr/dapr/blob/master/dapr/proto/runtime/v1/dapr.proto">proto service&lt;/a> that apps can communicate with via gRPC.&lt;/p>
&lt;p>In addition to calling Dapr via gRPC, Dapr supports service-to-service calls with gRPC by acting as a proxy. &lt;a href="https://v1-18.docs.dapr.io/developing-applications/building-blocks/service-invocation/howto-invoke-services-grpc/">Learn more in the gRPC service invocation how-to guide&lt;/a>.&lt;/p></description></item><item><title>Serialization in Dapr's SDKs</title><link>https://v1-18.docs.dapr.io/developing-applications/local-development/sdk-serialization/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/developing-applications/local-development/sdk-serialization/</guid><description>&lt;p>Dapr SDKs provide serialization for two use cases. First, for API objects sent through request and response payloads. Second, for objects to be persisted. For both of these cases, a default serialization method is provided in each language SDK.&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Language SDK&lt;/th>
 &lt;th>Default Serializer&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;a href="https://v1-18.docs.dapr.io/developing-applications/sdks/dotnet/">.NET&lt;/a>&lt;/td>
 &lt;td>&lt;a href="https://learn.microsoft.com/dotnet/framework/wcf/feature-details/using-data-contracts">DataContracts&lt;/a> for remoted actors, &lt;a href="https://www.nuget.org/packages/System.Text.Json">System.Text.Json&lt;/a> otherwise. Read more about .NET serialization &lt;a href="https://v1-18.docs.dapr.io/developing-applications/sdks/dotnet/dotnet-actors/dotnet-actors-serialization/">here&lt;/a>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="https://v1-18.docs.dapr.io/developing-applications/sdks/java/">Java&lt;/a>&lt;/td>
 &lt;td>&lt;a href="https://dapr.github.io/java-sdk/io/dapr/serializer/DefaultObjectSerializer.html">DefaultObjectSerializer&lt;/a> for JSON serialization&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="https://v1-18.docs.dapr.io/developing-applications/sdks/js/">JavaScript&lt;/a>&lt;/td>
 &lt;td>JSON&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="service-invocation">Service invocation&lt;/h2>


&lt;!-- .NET -->


&lt;!-- Java -->


&lt;ul class="nav nav-tabs" id="tabs-4" role="tablist">
 &lt;li class="nav-item">
 &lt;button class="nav-link active"
 id="tabs-04-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-04-00" role="tab"
 data-td-tp-persist=".net" aria-controls="tabs-04-00" aria-selected="true">
 .NET
 &lt;/button>
 &lt;/li>&lt;li class="nav-item">
 &lt;button class="nav-link"
 id="tabs-04-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-04-01" role="tab"
 data-td-tp-persist="java" aria-controls="tabs-04-01" aria-selected="false">
 Java
 &lt;/button>
 &lt;/li>
&lt;/ul>

&lt;div class="tab-content" id="tabs-4-content">
 &lt;div class="tab-body tab-pane fade show active"
 id="tabs-04-00" role="tabpanel" aria-labelled-by="tabs-04-00-tab" tabindex="4">
 &lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-csharp" data-lang="csharp">&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">using&lt;/span> &lt;span style="color:#000">var&lt;/span> &lt;span style="color:#000">client&lt;/span> &lt;span style="color:#000;font-weight:bold">=&lt;/span> &lt;span style="color:#000;font-weight:bold">(&lt;/span>&lt;span style="color:#204a87;font-weight:bold">new&lt;/span> &lt;span style="color:#000">DaprClientBuilder&lt;/span>&lt;span style="color:#000;font-weight:bold">()).&lt;/span>&lt;span style="color:#000">Build&lt;/span>&lt;span style="color:#000;font-weight:bold">();&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">await&lt;/span> &lt;span style="color:#000">client&lt;/span>&lt;span style="color:#000;font-weight:bold">.&lt;/span>&lt;span style="color:#000">InvokeMethodAsync&lt;/span>&lt;span style="color:#000;font-weight:bold">(&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;myappid&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;saySomething&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;My Message&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">);&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
 &lt;/div>
 &lt;div class="tab-body tab-pane fade"
 id="tabs-04-01" role="tabpanel" aria-labelled-by="tabs-04-01-tab" tabindex="4">
 &lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">DaprClient&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">client&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000;font-weight:bold">(&lt;/span>&lt;span style="color:#204a87;font-weight:bold">new&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">DaprClientBuilder&lt;/span>&lt;span style="color:#000;font-weight:bold">()).&lt;/span>&lt;span style="color:#c4a000">build&lt;/span>&lt;span style="color:#000;font-weight:bold">();&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">client&lt;/span>&lt;span style="color:#000;font-weight:bold">.&lt;/span>&lt;span style="color:#c4a000">invokeMethod&lt;/span>&lt;span style="color:#000;font-weight:bold">(&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;myappid&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;saySomething&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;My Message&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">HttpExtension&lt;/span>&lt;span style="color:#000;font-weight:bold">.&lt;/span>&lt;span style="color:#c4a000">POST&lt;/span>&lt;span style="color:#000;font-weight:bold">).&lt;/span>&lt;span style="color:#c4a000">block&lt;/span>&lt;span style="color:#000;font-weight:bold">();&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
 &lt;/div>
&lt;/div>

&lt;p>In the example above, the app &lt;code>myappid&lt;/code> receives a &lt;code>POST&lt;/code> request for the &lt;code>saySomething&lt;/code> method with the request payload as
&lt;code>&amp;quot;My Message&amp;quot;&lt;/code> - quoted since the serializer will serialize the input String to JSON.&lt;/p></description></item></channel></rss>