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 + + + + + + + +