# Wing Wing is an JsonRPC service framework ## Features - [x] Based on the JSONRPclite project. ## Structure The project structure is shown below ##### AppWorkerCenter Service publishing and registry ##### AppFramework The service framework is used for registration and is run by the AppWorkerCenter invocation ## Usage ##### 1.Create a rpc class library ![image](http://git.ius.plus:88/Project-Wing/Wing/raw/master/ShowImages/clipboard1.png) ![image](http://git.ius.plus:88/Project-Wing/Wing/raw/master/ShowImages/clipboard2.png) ![image](http://git.ius.plus:88/Project-Wing/Wing/raw/master/ShowImages/clipboard3.png) ##### 2.Create a file directory ![image](http://git.ius.plus:88/Project-Wing/Wing/raw/master/ShowImages/clipboard4.png) ##### 3.Introducing a dependency library ![image](http://git.ius.plus:88/Project-Wing/Wing/raw/master/ShowImages/clipboard5.png) ##### 4.Define interfaces and parameters ```csharp using AppFramework.JsonRpc.Driver; using System.Threading.Tasks; using TestRpc.Entity; namespace TestRpc.Service { public interface INewService { Task Add(AddRequest request); } } using AppFramework.JsonRpc.Driver.Validator; using System.Text.Json.Serialization; namespace TestRpc.Entity { public class AddRequest { public string A { get; set; } public string B { get; set; } } } ``` ##### 5.Implementing an interface ```csharp using AppFramework.JsonRpc.Driver; using System.Threading.Tasks; using TestRpc.Entity; namespace TestRpc.Service { public class NewService : BaseRpcService, INewService { public async Task Add(AddRequest request) { var result = int.Parse(request.A)+int.Parse(request.B); return await Task.FromResult(result); } } } ``` ##### 6.Implementing an Loader ```csharp using AppFramework.Common.Loader; using System; using TestRpc.Service; namespace TestRpc.ServiceLoader { public class NewServiceLoader : IServiceLoader { public object CreateService() { return new NewService(); } public Type GetServiceType() { return typeof(INewService); } } } ``` ##### Start server ``` cd AppWorkerCenter/WingCloudServer dotnet build copy ../TestRpc.dll AppWorkerCenter/WingCloudServer/bin/Debug/net5.0/NetService/TestRpc.dll dotnet run ``` ##### For clinet test (postman) ![image](http://git.ius.plus:88/Project-Wing/Wing/raw/master/ShowImages/clipboard6.png) ##### ServerReboot Automatic service restart ##### Sms.Tool SMS sending program ##### GoStaticSev Static file server ##### EmailTemplate Email template