You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: csharp/README.md
+19-1Lines changed: 19 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -13,8 +13,24 @@ git bash and shell scripts are used for scripting.
13
13
14
14
The C# code is built using Visual Studio Community 2017.
15
15
16
+
The code, samples, tests and nuget package can be built/run using the [dotnet core sdk](https://www.microsoft.com/net/download):
17
+
18
+
* On windows, having the legacy .NET Framework installed as part of the OS, only the dotnet sdk needs to be installed to allow for compiling the SDK style projects
19
+
* On Mac/Linux, the Mono framework is also required for producing release nuget packages / .NET Framework compatible DLLs.
20
+
21
+
## Release Notes
22
+
23
+
### 0.1.8.1-beta-2
24
+
25
+
C# Span support has been added to the code generation, and a set of corresponding utilities added to sbe-dll `DirectBuffer`. It is now possible to copy to/from a `Span<byte>` where previously only `byte[]` types were supported. This introduces a dependency on the [`System.Memory`](https://www.nuget.org/packages/System.Memory/) nuget package both for sbe-dll and generated code produced by sbe-tool.
26
+
27
+
### 0.1.8.1-beta-1
28
+
29
+
First beta release of the new SBE C# bindings and supporting sbe-tool / sbe-dll nuget packages.
30
+
16
31
Code Layout
17
32
-----------
33
+
18
34
The Java code that performs the generation of C# code is
* sbe-benchmarks (for performance testing and tuning)
31
47
* sbe-example-car (sample code based on the Car example)
32
48
* sbe-example-extension (sample code based on the Car extension)
33
-
49
+
50
+
The project can be built either through the various .NET Core supporting IDEs such as Visual Studio 2017, JetBrains Rider, and Visual Studio Code as well as through the .NET Core SDK, using the `dotnet build` / `dotnet test` commands.
51
+
34
52
Roadmap
35
53
-------
36
54
The csharp generator is as of March 2018 a beta release. The current roadmap contains:
<!-- When compiling .NET SDK 2.0 projects targeting .NET 4.x on Mono using 'dotnet build' you -->
4
+
<!-- have to teach MSBuild where the Mono copy of the reference asssemblies is -->
5
+
<TargetIsMonoCondition="$(TargetFramework.StartsWith('net4')) and '$(OS)' == 'Unix'">true</TargetIsMono>
6
+
7
+
<!-- Look in the standard install locations -->
8
+
<MonoBasePathCondition="'$(MonoBasePath)' == '' AND '$(TargetIsMono)' == 'true' AND EXISTS('/Library/Frameworks/Mono.framework/Versions/Current/lib/mono')">/Library/Frameworks/Mono.framework/Versions/Current/lib/mono</MonoBasePath>
9
+
<MonoBasePathCondition="'$(MonoBasePath)' == '' AND '$(TargetIsMono)' == 'true' AND EXISTS('/usr/lib/mono')">/usr/lib/mono</MonoBasePath>
10
+
<MonoBasePathCondition="'$(MonoBasePath)' == '' AND '$(TargetIsMono)' == 'true' AND EXISTS('/usr/local/lib/mono')">/usr/local/lib/mono</MonoBasePath>
11
+
12
+
<!-- If we found Mono reference assemblies, then use them -->
13
+
<FrameworkPathOverrideCondition="'$(MonoBasePath)' != '' AND '$(TargetFramework)' == 'net45'">$(MonoBasePath)/4.5-api</FrameworkPathOverride>
14
+
<FrameworkPathOverrideCondition="'$(MonoBasePath)' != '' AND '$(TargetFramework)' == 'net451'">$(MonoBasePath)/4.5.1-api</FrameworkPathOverride>
15
+
<FrameworkPathOverrideCondition="'$(MonoBasePath)' != '' AND '$(TargetFramework)' == 'net452'">$(MonoBasePath)/4.5.2-api</FrameworkPathOverride>
16
+
<FrameworkPathOverrideCondition="'$(MonoBasePath)' != '' AND '$(TargetFramework)' == 'net46'">$(MonoBasePath)/4.6-api</FrameworkPathOverride>
17
+
<FrameworkPathOverrideCondition="'$(MonoBasePath)' != '' AND '$(TargetFramework)' == 'net461'">$(MonoBasePath)/4.6.1-api</FrameworkPathOverride>
18
+
<FrameworkPathOverrideCondition="'$(MonoBasePath)' != '' AND '$(TargetFramework)' == 'net462'">$(MonoBasePath)/4.6.2-api</FrameworkPathOverride>
19
+
<FrameworkPathOverrideCondition="'$(MonoBasePath)' != '' AND '$(TargetFramework)' == 'net47'">$(MonoBasePath)/4.7-api</FrameworkPathOverride>
20
+
<FrameworkPathOverrideCondition="'$(MonoBasePath)' != '' AND '$(TargetFramework)' == 'net471'">$(MonoBasePath)/4.7.1-api</FrameworkPathOverride>
0 commit comments