public void Start(object listener, Action <RemoteDomainExpression> configuration = null) { _runner = RemoteServiceRunner.For <RemoteFubuMvcBootstrapper>(x => { x.RequireAssemblyContainingType <EmbeddedFubuMvcServer>(AssemblyCopyMode.SemVerCompatible); x.RequireAssemblyContainingType <RemoteFubuMvcProxy>(AssemblyCopyMode.SemVerCompatible); x.RequireAssemblyContainingType <RemoteServiceRunner>(AssemblyCopyMode.SemVerCompatible); x.RequireAssemblyContainingType <Owin.IAppBuilder>(); x.RequireAssemblyContainingType <IActivator>(); // Bottles x.RequireAssemblyContainingType <IModelBinder>(); // FubuCore x.RequireAssemblyContainingType <FubuApplication>(AssemblyCopyMode.SemVerCompatible); // FubuMVC.Core x.RequireAssemblyContainingType <HtmlTag>(AssemblyCopyMode.SemVerCompatible); // HtmlTags x.RequireAssemblyContainingType <FubuCsProjFile.CodeFile>(); // FubuCsProjFile just to keep it from whining x.RequireAssemblyContainingType <DiagnosticChainsSource>(AssemblyCopyMode.SemVerCompatible); x.RequireAssemblyContainingType <SparkViewEngine>(AssemblyCopyMode.SemVerCompatible); x.RequireAssemblyContainingType <SparkTemplate>(AssemblyCopyMode.SemVerCompatible); x.RequireAssembly("Microsoft.Owin.Hosting"); x.RequireAssembly("Microsoft.Owin.Host.HttpListener"); x.RequireAssembly("Microsoft.Owin"); x.RequireAssembly("Owin"); x.ServiceDirectory = _request.DirectoryFlag; if (_request.ConfigFlag.IsNotEmpty()) { x.Setup.ConfigurationFile = _request.ConfigFlag; } x.Setup.PrivateBinPath = _request.DetermineBinPath(); if (configuration != null) { configuration(x); } Console.WriteLine("Assembly bin path is " + x.Setup.PrivateBinPath); Console.WriteLine("The configuration file is " + x.Setup.ConfigurationFile); }); _runner.WaitForServiceToStart <RemoteFubuMvcBootstrapper>(); _runner.Messaging.AddListener(listener); _runner.SendRemotely(new StartApplication { ApplicationName = _request.ApplicationFlag, PhysicalPath = _request.DirectoryFlag, PortNumber = PortFinder.FindPort(_request.PortFlag), UseProductionMode = _request.ProductionModeFlag, AutoRefreshWebSocketsAddress = _request.AutoRefreshWebSocketsAddress }); }
public void Start(object listener, Action<RemoteDomainExpression> configuration = null) { _runner = RemoteServiceRunner.For<RemoteFubuMvcBootstrapper>(x => { x.RequireAssemblyContainingType<RemoteFubuMvcProxy>(AssemblyCopyMode.SemVerCompatible); x.RequireAssemblyContainingType<IAppBuilder>(); x.RequireAssemblyContainingType<IModelBinder>(); // FubuCore x.RequireAssemblyContainingType<FubuRuntime>(AssemblyCopyMode.SemVerCompatible); // FubuMVC.Core x.RequireAssemblyContainingType<HtmlTag>(AssemblyCopyMode.SemVerCompatible); // HtmlTags x.RequireAssembly("Microsoft.Owin.Hosting"); x.RequireAssembly("Microsoft.Owin.Host.HttpListener"); x.RequireAssembly("Microsoft.Owin"); x.RequireAssembly("Owin"); x.ServiceDirectory = _request.DirectoryFlag; if (_request.ConfigFlag.IsNotEmpty()) { x.Setup.ConfigurationFile = _request.ConfigFlag; } x.Setup.PrivateBinPath = _request.DetermineBinPath(); if (configuration != null) { configuration(x); } Console.WriteLine("Assembly bin path is " + x.Setup.PrivateBinPath); Console.WriteLine("The configuration file is " + x.Setup.ConfigurationFile); }); _runner.WaitForServiceToStart<RemoteFubuMvcBootstrapper>(); _runner.Messaging.AddListener(listener); _runner.SendRemotely(new StartApplication { ApplicationName = _request.RegistryFlag, PhysicalPath = _request.DirectoryFlag, PortNumber = PortFinder.FindPort(_request.PortFlag), Mode = _request.ModeFlag, AutoRefreshWebSocketsAddress = _request.AutoRefreshWebSocketsAddress }); }
public void Start(object listener, Action <RemoteDomainExpression> configuration = null) { _runner = RemoteServiceRunner.For <RemoteFubuMvcBootstrapper>(x => { x.RequireAssemblyContainingType <EmbeddedFubuMvcServer>(); x.RequireAssemblyContainingType <RemoteFubuMvcProxy>(); x.RequireAssemblyContainingType <RemoteServiceRunner>(); x.RequireAssemblyContainingType <Owin.IAppBuilder>(); x.RequireAssemblyContainingType <IActivator>(); // Bottles x.RequireAssemblyContainingType <IModelBinder>(); // FubuCore x.RequireAssemblyContainingType <StringToken>(); // FubuLocalization x.RequireAssemblyContainingType <FubuApplication>(); // FubuMVC.Core x.RequireAssemblyContainingType <FubuCsProjFile.CodeFile>(); // FubuCsProjFile just to keep it from whining x.RequireAssembly("Owin.Extensions"); x.RequireAssembly("Newtonsoft.Json"); x.RequireAssembly("FubuMVC.OwinHost"); x.RequireAssembly("Microsoft.Owin.Hosting"); x.RequireAssembly("Microsoft.Owin.Host.HttpListener"); x.RequireAssembly("Microsoft.Owin"); x.RequireAssembly("Owin"); x.ServiceDirectory = _request.DirectoryFlag; x.Setup.PrivateBinPath = _request.DetermineBinPath(); if (configuration != null) { configuration(x); } Console.WriteLine("Assembly bin path is " + x.Setup.PrivateBinPath); }); _runner.WaitForServiceToStart <RemoteFubuMvcBootstrapper>(); _runner.Messaging.AddListener(listener); _runner.SendRemotely(new StartApplication { ApplicationName = _request.ApplicationFlag, PhysicalPath = _request.DirectoryFlag, PortNumber = PortFinder.FindPort(_request.PortFlag), UseProductionMode = _request.ProductionModeFlag }); }
public void simplest_usage() { // SAMPLE: simple-remote-service-runner var runner = new RemoteServiceRunner(x => { x.ServiceDirectory = @"c:\code\other-service\src\other-service"; x.Setup.ShadowCopyFiles = true.ToString(); }); // stop and restart the remote AppDomain runner.Recycle(); // There is support for event aggregation between // AppDomain's for coordination runner.SendRemotely(new SomeMessage()); // Shut down and close the remote AppDomain runner.Dispose(); // ENDSAMPLE }
public void simplest_usage() { // SAMPLE: simple-remote-service-runner var runner = new RemoteServiceRunner(x => { x.ServiceDirectory = @"c:\code\other-service\src\other-service"; x.Setup.ShadowCopyFiles = true.ToString(); }); // stop and restart the remote AppDomain runner.Recycle(); // There is support for event aggregation between // AppDomain's for coordination runner.SendRemotely(new SomeMessage()); // Shut down and close the remote AppDomain runner.Dispose(); // ENDSAMPLE }
public void Start(object listener, Action<RemoteDomainExpression> configuration = null) { _runner = RemoteServiceRunner.For<RemoteFubuMvcBootstrapper>(x => { x.RequireAssemblyContainingType<EmbeddedFubuMvcServer>(); x.RequireAssemblyContainingType<RemoteFubuMvcProxy>(); x.RequireAssemblyContainingType<RemoteServiceRunner>(); x.RequireAssemblyContainingType<Owin.IAppBuilder>(); x.RequireAssemblyContainingType<IActivator>(); // Bottles x.RequireAssemblyContainingType<IModelBinder>(); // FubuCore x.RequireAssemblyContainingType<StringToken>(); // FubuLocalization x.RequireAssemblyContainingType<FubuApplication>(); // FubuMVC.Core x.RequireAssembly("Owin.Extensions"); x.RequireAssembly("Newtonsoft.Json"); x.RequireAssembly("FubuMVC.OwinHost"); x.RequireAssembly("Microsoft.Owin.Hosting"); x.RequireAssembly("Microsoft.Owin.Host.HttpListener"); x.ServiceDirectory = _request.DirectoryFlag; x.Setup.PrivateBinPath = _request.DetermineBinPath(); if (configuration != null) { configuration(x); } Console.WriteLine("Assembly bin path is " + x.Setup.PrivateBinPath); }); _runner.WaitForServiceToStart<RemoteFubuMvcBootstrapper>(); _runner.Messaging.AddListener(listener); _runner.SendRemotely(new StartApplication { ApplicationName = _request.ApplicationFlag, PhysicalPath = _request.DirectoryFlag, PortNumber = PortFinder.FindPort(_request.PortFlag), UseProductionMode = _request.ProductionModeFlag }); }
public void Recycle() { _runner.SendRemotely(new RecycleApplication()); }
/// <summary> /// Sends a message to a remote SubSystem w/ the /// Bottles EventAggregator /// </summary> /// <typeparam name="T"></typeparam> /// <param name="message"></param> public void SendMessage <T>(T message) { _runner.SendRemotely(message); }