ECommon.AspectCore
1.0.1
dotnet add package ECommon.AspectCore --version 1.0.1
NuGet\Install-Package ECommon.AspectCore -Version 1.0.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ECommon.AspectCore" Version="1.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ECommon.AspectCore" Version="1.0.1" />
<PackageReference Include="ECommon.AspectCore" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ECommon.AspectCore --version 1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: ECommon.AspectCore, 1.0.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ECommon.AspectCore@1.0.1
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ECommon.AspectCore&version=1.0.1
#tool nuget:?package=ECommon.AspectCore&version=1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
In startUp.cs
public IServiceProvider ConfigureServices(IServiceCollection services)
{
services.AddMvc();
var container = services.ToServiceContainer();
InitializeENodeFramework(container);
return (ObjectContainer.Current as AspectCoreObjectContainer)?.ServiceResolver;
}
static void InitializeENodeFramework(IServiceContainer serviceContainer)
{
var assemblies = new[]
{
Assembly.Load("ENodeDemo.Domain"),
Assembly.Load("ENodeDemo.Commands"),
Assembly.Load("ENodeDemo.CommandHandlers"),
Assembly.GetExecutingAssembly()
};
ECommon.Configurations.Configuration
.Create()
.UseAspectCore(serviceContainer)
.RegisterCommonComponents()
.UseLog4Net()
.UseJsonNet()
.RegisterUnhandledExceptionHandler()
.CreateENode()
.RegisterENodeComponents()
.RegisterBusinessComponents(assemblies)
.UseEQueue()
.InitializeMySqlEventStore("")
.InitializeMySqlLockService("")
.InitializeMySqlPublishedVersionStore("")
.UseMySqlEventStore()
.UseMySqlLockService()
.UseMySqlPublishedVersionStore()
.BuildContainer()
.InitializeBusinessAssemblies(assemblies)
.StartEQueue()
.Start();
}
this is ENodeExtensions
public static class ENodeExtensions
{
private static NameServerController _nameServerController;
private static BrokerController _broker;
private static CommandService _commandService;
private static CommandConsumer _commandConsumer;
private static DomainEventPublisher _eventPublisher;
private static DomainEventConsumer _eventConsumer;
public static ENodeConfiguration BuildContainer(this ENodeConfiguration enodeConfiguration)
{
enodeConfiguration.GetCommonConfiguration().BuildContainer();
return enodeConfiguration;
}
public static ENodeConfiguration UseEQueue(this ENodeConfiguration enodeConfiguration)
{
var assemblies = new[] { Assembly.GetExecutingAssembly() };
enodeConfiguration.RegisterTopicProviders(assemblies);
var configuration = enodeConfiguration.GetCommonConfiguration();
configuration.RegisterEQueueComponents();
_commandService = new CommandService();
_eventPublisher = new DomainEventPublisher();
configuration.SetDefault<ICommandService, CommandService>(_commandService);
configuration.SetDefault<IMessagePublisher<DomainEventStreamMessage>, DomainEventPublisher>(_eventPublisher);
return enodeConfiguration;
}
public static ENodeConfiguration StartEQueue(this ENodeConfiguration enodeConfiguration)
{
var configuration = enodeConfiguration.GetCommonConfiguration();
_commandService.Initialize(new CommandResultProcessor().Initialize(new IPEndPoint(SocketUtils.GetLocalIPV4(), 9000)));
_eventPublisher.Initialize();
_commandConsumer = new CommandConsumer().Initialize().Subscribe("NoteCommandTopic");
_eventConsumer = new DomainEventConsumer().Initialize().Subscribe("NoteEventTopic");
var brokerStorePath = @"c:\equeue-store";
if (Directory.Exists(brokerStorePath))
{
Directory.Delete(brokerStorePath, true);
}
_nameServerController = new NameServerController();
_broker = BrokerController.Create();
_nameServerController.Start();
_broker.Start();
_eventConsumer.Start();
_commandConsumer.Start();
_eventPublisher.Start();
_commandService.Start();
WaitAllConsumerLoadBalanceComplete();
return enodeConfiguration;
}
public static ENodeConfiguration ShutdownEQueue(this ENodeConfiguration enodeConfiguration)
{
_commandService.Shutdown();
_eventPublisher.Shutdown();
_commandConsumer.Shutdown();
_eventConsumer.Shutdown();
_broker.Shutdown();
_nameServerController.Shutdown();
return enodeConfiguration;
}
private static void WaitAllConsumerLoadBalanceComplete()
{
var logger = ObjectContainer.Resolve<ILoggerFactory>().Create(typeof(ENodeExtensions).Name);
var scheduleService = ObjectContainer.Resolve<IScheduleService>();
var waitHandle = new ManualResetEvent(false);
logger.Info("Waiting for all consumer load balance complete, please wait for a moment...");
scheduleService.StartTask("WaitAllConsumerLoadBalanceComplete", () =>
{
var eventConsumerAllocatedQueues = _eventConsumer.Consumer.GetCurrentQueues();
var commandConsumerAllocatedQueues = _commandConsumer.Consumer.GetCurrentQueues();
if (eventConsumerAllocatedQueues.Count() == 4 && commandConsumerAllocatedQueues.Count() == 4)
{
waitHandle.Set();
}
}, 1000, 1000);
waitHandle.WaitOne();
scheduleService.StopTask("WaitAllConsumerLoadBalanceComplete");
logger.Info("All consumer load balance completed.");
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- AspectCore.Core (>= 0.2.4)
- ECommon (>= 2.5.7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated | |
---|---|---|---|
1.0.1 | 1,653 | 12/29/2017 |