JKang.IpcServiceFramework.Client 1.0.3

Package Description

There is a newer version of this package available.
See the version list below for details.
Install-Package JKang.IpcServiceFramework.Client -Version 1.0.3
dotnet add package JKang.IpcServiceFramework.Client --version 1.0.3
<PackageReference Include="JKang.IpcServiceFramework.Client" Version="1.0.3" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add JKang.IpcServiceFramework.Client --version 1.0.3
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Build Status

IpcServiceFramework

A .NET Core lightweight inter-process communication framework allowing invoking a service via named pipeline (in a similar way as WCF, which is currently unavailable for .NET Core).

Support using primitive or complexe types in service contract.

Support multi-threading on server side with configurable number of threads.

ASP.NET Core Dependency Injection framework friendly.

Usage

  1. Create an interface as service contract and package it in an assembly to be shared between server and client.
  2. Implement the service and host it in an console or web applciation
  3. Invoke the service with framework provided proxy client

Downloads

IpcServiceFramework is available via NuGet:

Quick Start:

Step 1 - Create service contract

    public interface IComputingService
    {
        float AddFloat(float x, float y);
    }

Step 2: Implement the service

    class ComputingService : IComputingService
    {
        public float AddFloat(float x, float y)
        {
            return x + y;
        }
    }

Step 3 - Host the service in Console application

   class Program
    {
        static void Main(string[] args)
        {
            // configure DI
            IServiceCollection services = ConfigureServices(new ServiceCollection());

            // run IPC service host
            IpcServiceHostBuilder
                .Buid("pipeName", services.BuildServiceProvider())
                .Run();
        }

        private static IServiceCollection ConfigureServices(IServiceCollection services)
        {
            return services
                .AddIpc(options =>
                {
                    options.ThreadCount = 4;
                })
                .AddService<IComputingService, ComputingService>();
        }
    }

It's possible to host IPC service in web application, please check out the sample project IpcServiceSample.WebServer

Step 4 - Invoke the service from client process

    var proxy = new IpcServiceClient<IComputingService>("pipeName");
    float result = await proxy.InvokeAsync(x => x.AddFloat(1.23f, 4.56f));

Please feel free to download, fork and/or provide any feedback!

Build Status

IpcServiceFramework

A .NET Core lightweight inter-process communication framework allowing invoking a service via named pipeline (in a similar way as WCF, which is currently unavailable for .NET Core).

Support using primitive or complexe types in service contract.

Support multi-threading on server side with configurable number of threads.

ASP.NET Core Dependency Injection framework friendly.

Usage

  1. Create an interface as service contract and package it in an assembly to be shared between server and client.
  2. Implement the service and host it in an console or web applciation
  3. Invoke the service with framework provided proxy client

Downloads

IpcServiceFramework is available via NuGet:

Quick Start:

Step 1 - Create service contract

    public interface IComputingService
    {
        float AddFloat(float x, float y);
    }

Step 2: Implement the service

    class ComputingService : IComputingService
    {
        public float AddFloat(float x, float y)
        {
            return x + y;
        }
    }

Step 3 - Host the service in Console application

   class Program
    {
        static void Main(string[] args)
        {
            // configure DI
            IServiceCollection services = ConfigureServices(new ServiceCollection());

            // run IPC service host
            IpcServiceHostBuilder
                .Buid("pipeName", services.BuildServiceProvider())
                .Run();
        }

        private static IServiceCollection ConfigureServices(IServiceCollection services)
        {
            return services
                .AddIpc(options =>
                {
                    options.ThreadCount = 4;
                })
                .AddService<IComputingService, ComputingService>();
        }
    }

It's possible to host IPC service in web application, please check out the sample project IpcServiceSample.WebServer

Step 4 - Invoke the service from client process

    var proxy = new IpcServiceClient<IComputingService>("pipeName");
    float result = await proxy.InvokeAsync(x => x.AddFloat(1.23f, 4.56f));

Please feel free to download, fork and/or provide any feedback!

Release Notes

1.0.3
- support enum/guid type
1.0.2
- support implicitly converting input parameters from derived type to base type
1.0.1
- support passing array parameters

NuGet packages (2)

Showing the top 2 NuGet packages that depend on JKang.IpcServiceFramework.Client:

Package Downloads
JKang.IpcServiceFramework.Client.NamedPipe
Package Description
JKang.IpcServiceFramework.Client.Tcp
Package Description

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on JKang.IpcServiceFramework.Client:

Repository Stars
FubarDevelopment/FtpServer
Portable FTP server written in .NET

Version History

Version Downloads Last updated
3.1.0 879 9/12/2020
3.1.0-preview.1 130 9/12/2020
3.0.5-preview.1 408 8/18/2020
3.0.4 1,394 7/5/2020
3.0.4-preview.1 100 7/5/2020
3.0.3 232 6/15/2020
3.0.3-preview.1 80 6/15/2020
3.0.2 783 6/12/2020
3.0.2-preview.2 138 6/12/2020
3.0.2-preview.1 141 6/12/2020
3.0.1 209 6/12/2020
3.0.1-ci-20200612.1 161 6/12/2020
3.0.0.34-preview 152 6/12/2020
3.0.0.28-alpha 356 5/3/2020
3.0.0.15-alpha 206 4/28/2020
3.0.0.12-alpha 144 4/27/2020
3.0.0.10-alpha 160 4/26/2020
3.0.0 232 6/12/2020
2.3.1 4,603 12/27/2019
2.3.0 149 12/20/2019
2.2.2 4,026 4/30/2019
2.2.1 1,220 3/28/2019
2.2.0 1,873 12/18/2018
2.1.2 852 12/11/2018
2.1.1 272 11/20/2018
2.1.0 223 11/19/2018
2.0.3 241 11/16/2018
2.0.2 247 11/14/2018
2.0.1.1 315 10/29/2018
2.0.0.2 634 7/16/2018
1.0.4.3 343 7/13/2018
1.0.3 329 6/30/2018
1.0.2 353 5/30/2018
1.0.1 1,508 2/14/2018
1.0.0 436 1/9/2018
Show less