aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/csharp
diff options
context:
space:
mode:
authorGravatar Jan Tattermusch <jtattermusch@google.com>2015-05-15 14:27:29 -0700
committerGravatar Jan Tattermusch <jtattermusch@google.com>2015-05-15 14:27:29 -0700
commitc6d43ec02d4b3d806081bd0c02c5517192db9564 (patch)
treea7ba242b974dcf69c7de61132ca3fd50b296212e /src/csharp
parent031c7ee5dff1f713d3370c15b8604b1d867b60a0 (diff)
update readme for c#
Diffstat (limited to 'src/csharp')
-rw-r--r--src/csharp/README.md111
1 files changed, 77 insertions, 34 deletions
diff --git a/src/csharp/README.md b/src/csharp/README.md
index 21aab52118..37aa2ecddc 100644
--- a/src/csharp/README.md
+++ b/src/csharp/README.md
@@ -4,74 +4,117 @@ gRPC C#
A C# implementation of gRPC.
Status
------------------
+------
-**This gRPC C# implementation is work-in-progress and is not expected to work yet.**
+Ready for early adopters.
-- 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.
+Usage: Windows
+--------------
+- Prerequisites: .NET Framework 4.5+, Visual Studio 2013 with NuGet extension installed (VS2015 should work).
-INSTALLATION AND USAGE: WINDOWS
--------------------------------
+- Open Visual Studio and start a new project/solution.
-- Open Grpc.sln using Visual Studio 2013. NuGet dependencies will be restored
- upon build.
+- 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
-INSTALLATION AND USAGE: LINUX & MONO
-------------------------------------
+Usage: Linux (Mono)
+--------------
-- Compile and install the gRPC C# extension library (that will be used via
- P/Invoke from C#).
+- 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
+-----------------
+
+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: NET Framework 4.5+, Visual Studio 2013 (with NuGet and NUnit extensions installed).
+
+- 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.
```
-make grpc_csharp_ext
-sudo make install_grpc_csharp_ext
+buildall.bat
```
-- Prerequisites for development: Mono framework, MonoDevelop (IDE)
+- Open Grpc.sln using Visual Studio 2013. NuGet dependencies will be restored
+ upon build (you need to have NuGet add-in installed).
+
+
+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 monodevelop monodevelop-nunit
sudo apt-get install nunit nunit-console
```
-- NuGet is used to manage project's dependencies. Prior opening Grpc.sln,
- download dependencies using NuGet restore command:
+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#).
```
-# 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
+make grpc_csharp_ext
+sudo make install_grpc_csharp_ext
```
-- Use MonoDevelop to open the solution Grpc.sln (you can also run unit tests
- from there).
+- Use MonoDevelop to open the solution Grpc.sln
+
+- Build the solution & run all the tests from test view.
+
+Tests
+-----
-- 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.
+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).