JKang.IpcServiceFramework.Core 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.Core -Version 1.0.3
dotnet add package JKang.IpcServiceFramework.Core --version 1.0.3
<PackageReference Include="JKang.IpcServiceFramework.Core" 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.Core --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

Version History

Version Downloads Last updated
2.2.2 418 4/30/2019
2.2.1 325 3/28/2019
2.2.0 1,054 12/18/2018
2.1.2 474 12/11/2018
2.1.1 160 11/20/2018
2.1.0 108 11/19/2018
2.0.3 140 11/16/2018
2.0.2 111 11/14/2018
2.0.1.1 685 10/29/2018
2.0.0.2 481 7/16/2018
1.0.4.3 185 7/13/2018
1.0.3 201 6/30/2018
1.0.2 197 5/30/2018
1.0.1 1,804 2/14/2018
1.0.0 263 1/9/2018
Show less