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
- Closes#587
- Add netfx.props and tweak sbxee-dll csproj to allow building sbe.dll
for net45 on Linux using dotnet sdk following:
https://andrewlock.net/building-net-framework-asp-net-core-apps-on-linux-using-mono-and-the-net-cli/
- Remove packages.config files from projects already converted to SDK style project since
those files serve no purpose other than confusing potential contributors...
- Intoroduce minimal Span<byte> GetBytes/SetBytes implementation for copying
to/from Span<byte> to sbe.dll itself.
- Change code generation for array types to use Span<byte> internally keeping the
original functionality intact with no (hopefully!) visible user facing changes except
for the addtitional Get/Set methods accepting Span<byte> being added to the mix.
- Add release notes section to README.md and some more touch ups
- Add sbe-tests.csproj netcoreapp2.1 test target
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