From ed4e97e40f713de9270db709d05167c00f9c565b Mon Sep 17 00:00:00 2001 From: Mikhail Mitrofanov Date: Wed, 5 Feb 2025 15:08:38 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D0=BD=D0=B5=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83?= =?UTF-8?q?=D0=B6=D0=B5=D0=BD=D0=BD=D1=8B=D0=B5=20=D1=82=D0=B5=D1=81=D1=82?= =?UTF-8?q?=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Example.Backend/Example.Backend.csproj | 20 ++++++++++++++++++ Example.Backend/Program.cs | 19 +++++++++++++++++ Example.Frontend/Example.Frontend.csproj | 14 ++++++++++++ Example.Frontend/Program.cs | 27 ++++++++++++++++++++++++ Example.Shared/Example.Shared.csproj | 14 ++++++++++++ 5 files changed, 94 insertions(+) create mode 100644 Example.Backend/Example.Backend.csproj create mode 100644 Example.Backend/Program.cs create mode 100644 Example.Frontend/Example.Frontend.csproj create mode 100644 Example.Frontend/Program.cs create mode 100644 Example.Shared/Example.Shared.csproj diff --git a/Example.Backend/Example.Backend.csproj b/Example.Backend/Example.Backend.csproj new file mode 100644 index 0000000..11ba0ab --- /dev/null +++ b/Example.Backend/Example.Backend.csproj @@ -0,0 +1,20 @@ + + + + Exe + net9.0 + enable + enable + + + + + ..\mROA.Test\bin\Debug\net9.0\Example.Shared.dll + + + + + + + + diff --git a/Example.Backend/Program.cs b/Example.Backend/Program.cs new file mode 100644 index 0000000..92685b0 --- /dev/null +++ b/Example.Backend/Program.cs @@ -0,0 +1,19 @@ +using System.Net; +using Example.Shared; +using mROA.Codegen; +using mROA.Implementation; +using mROA.Implementation.Bootstrap; + + +var bootstrap = new FullMixBuilder(); +bootstrap.UseJsonSerialisation(); +bootstrap.UseNetworkGateway(new IPEndPoint(IPAddress.Loopback, 4567)); +bootstrap.UseStreamInteraction(); +bootstrap.UseBasicExecution(); +bootstrap.UseCollectableContextRepository(typeof(IPrinterFactory).Assembly); +bootstrap.SetupMethodsRepository(new CoCodegenMethodRepository()); +bootstrap.Build(); + +var gateway = bootstrap.GetModule(); + +gateway.Run(); \ No newline at end of file diff --git a/Example.Frontend/Example.Frontend.csproj b/Example.Frontend/Example.Frontend.csproj new file mode 100644 index 0000000..62581cc --- /dev/null +++ b/Example.Frontend/Example.Frontend.csproj @@ -0,0 +1,14 @@ + + + + Exe + net9.0 + enable + enable + + + + + + + diff --git a/Example.Frontend/Program.cs b/Example.Frontend/Program.cs new file mode 100644 index 0000000..2a247b8 --- /dev/null +++ b/Example.Frontend/Program.cs @@ -0,0 +1,27 @@ +// See https://aka.ms/new-console-template for more information + +using System.Net; +using System.Text; +using Example.Shared; +using mROA.Codegen; +using mROA.Implementation; +using mROA.Implementation.Bootstrap; + +var mixer = new FullMixBuilder(); + +mixer.Modules.Add(new FrontendContextRepository()); +mixer.Modules.Add(new JsonFrontendSerialisationModule()); +mixer.Modules.Add(new StreamBasedInteractionModule()); +mixer.Modules.Add(new NetworkFrontendBridge(new IPEndPoint(IPAddress.Loopback, 4567))); + +mixer.Build(); +var context = mixer.GetModule(); + +var factory = context.GetSingleObject(typeof(IPrinterFactory)) as IPrinterFactory; + +var printer = factory.Create("Test"); +var name = printer.Value.GetName(); +Console.WriteLine("Printer name : {0}", name); +var page = printer.Value.Print("Test Page"); +var data = page.Value.GetData(); +Console.WriteLine("Data : {0}", Encoding.UTF8.GetString(data)); \ No newline at end of file diff --git a/Example.Shared/Example.Shared.csproj b/Example.Shared/Example.Shared.csproj new file mode 100644 index 0000000..f3e957f --- /dev/null +++ b/Example.Shared/Example.Shared.csproj @@ -0,0 +1,14 @@ + + + + net9.0 + enable + enable + + + + + + + +