Merge pull request #1624 from jtattermusch/csharp_readme_updates
Update readme for C#
This commit is contained in:
commit
ac25e00dbd
|
|
@ -4,26 +4,72 @@ gRPC C#
|
|||
A C# implementation of gRPC.
|
||||
|
||||
Status
|
||||
------
|
||||
|
||||
Ready for early adopters.
|
||||
|
||||
Usage: Windows
|
||||
--------------
|
||||
|
||||
- Prerequisites: .NET Framework 4.5+, Visual Studio 2013 with NuGet extension installed (VS2015 should work).
|
||||
|
||||
- Open Visual Studio and start a new project/solution.
|
||||
|
||||
- Add NuGet package `Grpc` as a dependency (Project options -> Manage NuGet Packages).
|
||||
That will also pull all the transitive dependencies (including the native libraries that
|
||||
gRPC C# is internally using).
|
||||
|
||||
- TODO: link to Helloworld example
|
||||
|
||||
Usage: Linux (Mono)
|
||||
--------------
|
||||
|
||||
- Prerequisites: Mono framework, MonoDevelop 5.9 with NuGet add-in installed.
|
||||
|
||||
- Install gRPC C Core using instructions in https://github.com/grpc/homebrew-grpc
|
||||
|
||||
- TODO: explain using LD_LIBRARY_PATH or installation to /usr/local
|
||||
|
||||
- Open MonoDevelop and start a new project/solution.
|
||||
|
||||
- Add NuGet package `Grpc` as a dependency (Project -> Add NuGet packages).
|
||||
|
||||
- TODO: link to Helloworld example
|
||||
|
||||
Building: Windows
|
||||
-----------------
|
||||
|
||||
**This gRPC C# implementation is work-in-progress and is not expected to work yet.**
|
||||
You only need to go through these steps if you are planning to develop gRPC C#.
|
||||
If you are a user of gRPC C#, go to Usage section above.
|
||||
|
||||
- The implementation is a wrapper around gRPC C core library
|
||||
- Code only runs under mono currently, building gRPC C core library under Windows
|
||||
is in progress.
|
||||
- It is very possible that some parts of the code will be heavily refactored or
|
||||
completely rewritten.
|
||||
- Prerequisites for development: NET Framework 4.5+, Visual Studio 2013 (with NuGet and NUnit extensions installed).
|
||||
|
||||
|
||||
INSTALLATION AND USAGE: WINDOWS
|
||||
-------------------------------
|
||||
- The grpc_csharp_ext native library needs to be built so you can build the Grpc C# solution. You can
|
||||
either build the native solution in `vsprojects/grpc.sln` from Visual Studio manually, or you can use
|
||||
a convenience batch script that builds everything for you.
|
||||
```
|
||||
buildall.bat
|
||||
```
|
||||
|
||||
- Open Grpc.sln using Visual Studio 2013. NuGet dependencies will be restored
|
||||
upon build.
|
||||
upon build (you need to have NuGet add-in installed).
|
||||
|
||||
|
||||
INSTALLATION AND USAGE: LINUX & MONO
|
||||
------------------------------------
|
||||
Building: Linux & Mono
|
||||
----------------------
|
||||
|
||||
You only need to go through these steps if you are planning to develop gRPC C#.
|
||||
If you are a user of gRPC C#, go to Usage section above.
|
||||
|
||||
- Prerequisites for development: Mono framework, MonoDevelop 5.9 with NuGet and Nunit add-ins installed.
|
||||
```
|
||||
sudo apt-get install mono-devel
|
||||
sudo apt-get install nunit nunit-console
|
||||
```
|
||||
|
||||
You can use older versions of MonoDevelop, but then you might need to restore
|
||||
NuGet dependencies manually (by `nuget restore`), because older versions of MonoDevelop
|
||||
don't support NuGet add-in.
|
||||
|
||||
- Compile and install the gRPC C# extension library (that will be used via
|
||||
P/Invoke from C#).
|
||||
|
|
@ -32,46 +78,43 @@ make grpc_csharp_ext
|
|||
sudo make install_grpc_csharp_ext
|
||||
```
|
||||
|
||||
- Prerequisites for development: Mono framework, MonoDevelop (IDE)
|
||||
```
|
||||
sudo apt-get install mono-devel
|
||||
sudo apt-get install monodevelop monodevelop-nunit
|
||||
sudo apt-get install nunit nunit-console
|
||||
```
|
||||
- Use MonoDevelop to open the solution Grpc.sln
|
||||
|
||||
- NuGet is used to manage project's dependencies. Prior opening Grpc.sln,
|
||||
download dependencies using NuGet restore command:
|
||||
|
||||
```
|
||||
# Import needed certicates into Mono certificate store:
|
||||
mozroots --import --sync
|
||||
|
||||
# Download NuGet.exe http://nuget.codeplex.com/releases/
|
||||
# Restore the nuget packages with Grpc C# dependencies
|
||||
mono ~/Downloads/NuGet.exe restore Grpc.sln
|
||||
```
|
||||
|
||||
- Use MonoDevelop to open the solution Grpc.sln (you can also run unit tests
|
||||
from there).
|
||||
|
||||
- After building the solution with MonoDevelop, you can use
|
||||
nunit-console to run the unit tests (currently only running one by
|
||||
one will make them pass.
|
||||
- Build the solution & run all the tests from test view.
|
||||
|
||||
Tests
|
||||
-----
|
||||
|
||||
gRPC C# is using NUnit as the testing framework.
|
||||
|
||||
Under Visual Studio, make sure NUnit test adapter is installed (under "Extensions and Updates").
|
||||
Then you should be able to run all the tests using Test Explorer.
|
||||
|
||||
Under Monodevelop, make sure you installed "NUnit support" in Add-in manager.
|
||||
Then you should be able to run all the test from the Test View.
|
||||
|
||||
After building the solution, you can also run the tests from command line
|
||||
using nunit-console tool.
|
||||
|
||||
```
|
||||
# from Grpc.Core.Test/bin/Debug directory
|
||||
nunit-console Grpc.Core.Tests.dll
|
||||
```
|
||||
|
||||
CONTENTS
|
||||
Contents
|
||||
--------
|
||||
|
||||
- ext:
|
||||
The extension library that wraps C API to be more digestible by C#.
|
||||
- Grpc.Auth:
|
||||
gRPC OAuth2 support.
|
||||
- Grpc.Core:
|
||||
The main gRPC C# library.
|
||||
- Grpc.Examples:
|
||||
API examples for math.proto
|
||||
- Grpc.Examples.MathClient:
|
||||
An example client that sends some requests to math server.
|
||||
- Grpc.Examples.MathServer:
|
||||
An example client that sends some requests to math server.
|
||||
- Grpc.IntegrationTesting:
|
||||
Client for cross-language gRPC implementation testing (interop testing).
|
||||
Cross-language gRPC implementation testing (interop testing).
|
||||
|
|
|
|||
Loading…
Reference in New Issue