THRIFT-4990 Upgrade to .NET Core 3.1 (LTS)
Client: netstd
Patch: Jens Geyer

This closes #1961
diff --git a/tutorial/netstd/Client/Client.csproj b/tutorial/netstd/Client/Client.csproj
index 2abf53c..10d5040 100644
--- a/tutorial/netstd/Client/Client.csproj
+++ b/tutorial/netstd/Client/Client.csproj
@@ -19,7 +19,7 @@
   -->
 
   <PropertyGroup>
-    <TargetFramework>netcoreapp3.0</TargetFramework>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
     <AssemblyName>Client</AssemblyName>
     <PackageId>Client</PackageId>
     <OutputType>Exe</OutputType>
@@ -30,7 +30,7 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.2.0" />
+    <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.1.0" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/tutorial/netstd/Interfaces/Interfaces.csproj b/tutorial/netstd/Interfaces/Interfaces.csproj
index 4ebeb4f..c8b2bd8 100644
--- a/tutorial/netstd/Interfaces/Interfaces.csproj
+++ b/tutorial/netstd/Interfaces/Interfaces.csproj
@@ -33,7 +33,7 @@
   </ItemGroup>
 
   <ItemGroup>
-    <PackageReference Include="System.ServiceModel.Primitives" Version="4.5.3" />
+    <PackageReference Include="System.ServiceModel.Primitives" Version="4.7.0" />
   </ItemGroup>
 
   <Target Name="PreBuild" BeforeTargets="_GenerateRestoreProjectSpec;Restore;Compile">
diff --git a/tutorial/netstd/README.md b/tutorial/netstd/README.md
index 11fd541..297f4ee 100644
--- a/tutorial/netstd/README.md
+++ b/tutorial/netstd/README.md
@@ -1,8 +1,7 @@
 # Building of samples for different platforms 
 
-# Reused components 
-- NET Core Standard 3.0
-- NET Core App 3.0
+# Requirements
+- NET Core Standard 3.1 (LTS) runtime or SDK (see below for further info)
 
 # How to build
 - Download and install the latest .NET Core SDK for your platform https://dotnet.microsoft.com/download/dotnet-core
@@ -14,29 +13,26 @@
 
 # How to run 
 
-Notes: dotnet run supports passing arguments to app after -- symbols (https://docs.microsoft.com/en-us/dotnet/articles/core/tools/dotnet-run) - example: **dotnet run -- -h** will show help for app
+Depending on the platform, the name of the generated executables will vary. On Linux, it is just "client" or "server", on Windows it is "Client.exe" and "Server.exe". In the following, we use the abbreviated form "Client" and "Server".
 
 - build 
 - go to folder (Client/Server) 
-- run with specifying of correct parameters **dotnet run -tr:tcp -pr:multiplexed**, **dotnet run -help** (later, after migration to csproj and latest SDK will be possibility to use more usable form **dotnet run -- arguments**)
-
-#Notes
-- Possible adding additional platforms after stabilization of .NET Core (runtimes, platforms (Red Hat Linux, OpenSuse, etc.) 
+- run the generated executables: server first, then client from a second console
 
 #Known issues
 - In trace logging mode you can see some not important internal exceptions
 
 # Running of samples 
-Please install Thrift C# .NET Core library or copy sources and build them to correcly build and run samples 
+On machines that do not have the SDK installed, you need to install the NET Core runtime first. The SDK is only needed to build programs, otherwise the runtime is sufficient.
 
 # NetCore Server
 
 Usage: 
 
-    Server.exe -h
+    Server  -h
         will diplay help information 
 
-    Server.exe -tr:<transport> -pr:<protocol> 
+    Server  -tr:<transport> -pr:<protocol> 
         will run server with specified arguments (tcp transport and binary protocol by default)
 
 Options:
@@ -59,7 +55,7 @@
 		
 Sample:
 
-    Server.exe -tr:tcp
+    Server -tr:tcp
 
 **Remarks**:
 
@@ -72,10 +68,10 @@
 
 Usage: 
 
-    Client.exe -h
+    Client -h
         will diplay help information 
 
-    Client.exe -tr:<transport> -pr:<protocol> -mc:<numClients>
+    Client -tr:<transport> -pr:<protocol> -mc:<numClients>
         will run client with specified arguments (tcp transport and binary protocol by default)
 
 Options:
@@ -101,7 +97,7 @@
 
 Sample:
 
-    Client.exe -tr:tcp -pr:binary -mc:10
+    Client -tr:tcp -pr:binary -mc:10
 
 Remarks:
 
@@ -111,8 +107,8 @@
 
 # How to test communication between NetCore and Python
 
-* Generate code with the latest **thrift.exe** util
-* Ensure that **thrift.exe** util generated folder **gen-py** with generated code for Python
+* Generate code with the latest **thrift** utility
+* Ensure that **thrift** generated folder **gen-py** with generated code for Python exists
 * Create **client.py** and **server.py** from the code examples below and save them to the folder with previosly generated folder **gen-py**
 * Run netstd samples (client and server) and python samples (client and server)
 
diff --git a/tutorial/netstd/Server/Server.csproj b/tutorial/netstd/Server/Server.csproj
index 454f332..b3ff516 100644
--- a/tutorial/netstd/Server/Server.csproj
+++ b/tutorial/netstd/Server/Server.csproj
@@ -19,7 +19,7 @@
   -->
 
   <PropertyGroup>
-    <TargetFramework>netcoreapp3.0</TargetFramework>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
     <AssemblyName>Server</AssemblyName>
     <PackageId>Server</PackageId>
     <OutputType>Exe</OutputType>
@@ -38,7 +38,7 @@
     <PackageReference Include="Microsoft.AspNetCore" Version="2.2.0" />
     <PackageReference Include="Microsoft.AspNetCore.Server.IISIntegration" Version="2.2.1" />
     <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="2.2.0" />
-    <PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="2.2.0" />
+    <PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="3.1.0" />
   </ItemGroup>
 
 </Project>