<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>C# SDK on Morphir .NET</title><link>https://finos.github.io/morphir-dotnet/docs/sdk/csharp/</link><description>Recent content in C# SDK on Morphir .NET</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://finos.github.io/morphir-dotnet/docs/sdk/csharp/index.xml" rel="self" type="application/rss+xml"/><item><title>C# SDK API</title><link>https://finos.github.io/morphir-dotnet/docs/sdk/csharp/api/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://finos.github.io/morphir-dotnet/docs/sdk/csharp/api/</guid><description>&lt;p&gt;All public runtime types live in &lt;code&gt;Morphir.SDK.CSharp&lt;/code&gt;. The frozen inventory uses&#10;logical Morphir names such as &lt;code&gt;List.map&lt;/code&gt;; C# uses PascalCase instance methods&#10;and generic factories. Its parameter/result meanings are unchanged.&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Morphir vocabulary&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Public C# API&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Maybe.Just, Nothing&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Maybe&amp;lt;T&amp;gt;.Just(value)&lt;/code&gt;, &lt;code&gt;Maybe&amp;lt;T&amp;gt;.Nothing&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Maybe.map, andThen&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;value.Map(callback)&lt;/code&gt;, &lt;code&gt;value.AndThen(callback)&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Result.Ok, Err&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Result&amp;lt;TError,TValue&amp;gt;.Ok(value)&lt;/code&gt;, &lt;code&gt;.Err(error)&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Result.map, andThen&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;result.Map(callback)&lt;/code&gt;, &lt;code&gt;result.AndThen(callback)&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Unit; Basics.LT, EQ, GT&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Unit.Value&lt;/code&gt;; &lt;code&gt;Order.LT&lt;/code&gt;, &lt;code&gt;.EQ&lt;/code&gt;, &lt;code&gt;.GT&lt;/code&gt;, also &lt;code&gt;Basics&lt;/code&gt; constants&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;List literal, singleton, cons&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;List&amp;lt;T&amp;gt;.FromEnumerable(values)&lt;/code&gt;, &lt;code&gt;.Singleton(value)&lt;/code&gt;, &lt;code&gt;list.Cons(head)&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;List.map, append, head, tail, length&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;list.Map(f)&lt;/code&gt;, &lt;code&gt;.Append(right)&lt;/code&gt;, &lt;code&gt;.Head()&lt;/code&gt;, &lt;code&gt;.Tail()&lt;/code&gt;, &lt;code&gt;.Length&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Dict.empty, singleton, fromList&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Dict&amp;lt;K,V&amp;gt;.Empty(comparer)&lt;/code&gt;, &lt;code&gt;.Singleton(key,value,comparer)&lt;/code&gt;, &lt;code&gt;.FromEnumerable(pairs,comparer)&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Dict.get, insert, update, remove, toList, union&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;dict.Get(key)&lt;/code&gt;, &lt;code&gt;.Insert(key,value)&lt;/code&gt;, &lt;code&gt;.Update(key,f)&lt;/code&gt;, &lt;code&gt;.Remove(key)&lt;/code&gt;, &lt;code&gt;.ToList()&lt;/code&gt;, &lt;code&gt;.Union(right)&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Set.empty, singleton, fromList&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Set&amp;lt;T&amp;gt;.Empty(comparer)&lt;/code&gt;, &lt;code&gt;.Singleton(value,comparer)&lt;/code&gt;, &lt;code&gt;.FromEnumerable(values,comparer)&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Set.insert, remove, toList, union&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;set.Insert(value)&lt;/code&gt;, &lt;code&gt;.Remove(value)&lt;/code&gt;, &lt;code&gt;.ToList()&lt;/code&gt;, &lt;code&gt;.Union(right)&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Basics scalar operations&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Basics.Add&lt;/code&gt;, &lt;code&gt;Subtract&lt;/code&gt;, &lt;code&gt;Multiply&lt;/code&gt;, &lt;code&gt;Divide&lt;/code&gt;, &lt;code&gt;IntegerDivide&lt;/code&gt;, &lt;code&gt;ModBy&lt;/code&gt;, &lt;code&gt;RemainderBy&lt;/code&gt;, &lt;code&gt;Negate&lt;/code&gt;, &lt;code&gt;Abs&lt;/code&gt;, &lt;code&gt;Power&lt;/code&gt;, &lt;code&gt;ToFloat&lt;/code&gt;, &lt;code&gt;Round&lt;/code&gt;, &lt;code&gt;Floor&lt;/code&gt;, &lt;code&gt;Ceiling&lt;/code&gt;, &lt;code&gt;Truncate&lt;/code&gt;, &lt;code&gt;IsNaN&lt;/code&gt;, &lt;code&gt;IsInfinite&lt;/code&gt;, &lt;code&gt;Compare&lt;/code&gt;, &lt;code&gt;LessThan&lt;/code&gt;, &lt;code&gt;LessThanOrEqual&lt;/code&gt;, &lt;code&gt;GreaterThan&lt;/code&gt;, &lt;code&gt;GreaterThanOrEqual&lt;/code&gt;, &lt;code&gt;Min&lt;/code&gt;, &lt;code&gt;Max&lt;/code&gt;, &lt;code&gt;Clamp&lt;/code&gt;, &lt;code&gt;Equal&lt;/code&gt;, &lt;code&gt;NotEqual&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Decimal operations&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Decimal.Add&lt;/code&gt;, &lt;code&gt;Sub&lt;/code&gt;, &lt;code&gt;Mul&lt;/code&gt;, &lt;code&gt;Div&lt;/code&gt;, &lt;code&gt;Compare&lt;/code&gt;, &lt;code&gt;ToString&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;Use an alias such as &lt;code&gt;using SdkDecimal = Morphir.SDK.CSharp.Decimal;&lt;/code&gt; when&#10;&lt;code&gt;System.Decimal&lt;/code&gt; is also imported. SDK &lt;code&gt;List&amp;lt;T&amp;gt;&lt;/code&gt; may similarly need an alias&#10;when System.Collections.Generic is imported outside the SDK namespace.&lt;/p&gt;</description></item><item><title>C# SDK compatibility</title><link>https://finos.github.io/morphir-dotnet/docs/sdk/csharp/compatibility/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://finos.github.io/morphir-dotnet/docs/sdk/csharp/compatibility/</guid><description>&lt;p&gt;The bounded contract is &lt;code&gt;morphir-dotnet-sdk-v1&lt;/code&gt;, schema 1, profile&#10;&lt;code&gt;dotnet-sdk-v1&lt;/code&gt;: 67 operations, 207 required observations and eight separately&#10;reported representation exclusions. It does not claim the entire Morphir SDK.&#10;The checked-in fixtures retain independent upstream source evidence. Runtime&#10;test expectations are read from those fixtures, not computed by this runtime.&lt;/p&gt;&#10;&lt;p&gt;The excluded observations concern Int range or negative Int powers,&#10;supplementary Char, and exact Decimal96 representation/nontermination limits.&#10;The precise IDs and reasons remain in &lt;code&gt;tests/Fixtures/MorphirSDK/cases.json&lt;/code&gt;.&#10;Strings support well-formed UTF-16 including supplementary scalars. Char accepts&#10;one non-surrogate BMP scalar. Dates, parsing, transcendental operations and&#10;unlisted collection functions are outside this inventory.&lt;/p&gt;</description></item></channel></rss>