实例介绍
D-ASYNC代表着微服务开发的一种全新理念,它基于服务导向编程语言(SOPL)构建,为开发者提供了一个多面向且全面的解决方案,用于构建面向服务的应用程序。D-ASYNC的核心在于其独特的语言集成状态流引擎、服务间通信(包括HTTP、gRPC、消息队列、事件流)的可扩展框架、最佳微服务实践的实现、分布式追踪的统一方法、API生成及版本控制能力以及清晰的错误处理。
D-ASYNC的使命是赋予开发者零成本开发可扩展、可靠和安全微服务的超能力。通过使用语言本身的特性,开发者可以更加专注于应用程序的核心价值,使得编写、阅读、演进和维护代码变得更加简单。
服务间通信示例:
public interface IPaymentTerminal
{
Task Pay(Order order, CreditCard card);
}
public class BaristaWorker
{
private IPaymentTerminal _paymentTerminal;
public BaristaWorker(IPaymentTerminal paymentTerminal)
{
_paymentTerminal = paymentTerminal;
}
protected virtual async Task<Order> TakeOrder()
{
Order order = ...;
CreditCard card = ...;
await _paymentTerminal.Pay(order, card);
}
}
状态流与反应式编程示例:
public class CustomerManagementService : ICustomerManagementService
{
public virtual event EventHandler<CustomerInfo> CustomerRegistered;
public virtual async Task RegisterCustomer(CustomerInfo customerInfo)
{
CustomerRegistered?.Invoke(this, customerInfo);
}
}
D-ASYNC不仅仅是技术上的创新,它还代表着开发模式的转变,让开发者能够更加自由地设计和实现微服务架构,无需担心底层的复杂性和开发成本。
【实例截图】
【核心代码】
文件清单
└── Dasync-55fa988c4e6b6593a1515b65ed31fc7b1e6dc994
├── build
│ └── Pack-All.ps1
├── dasync-banner.jpg
├── dasync-concept.png
├── docs
│ ├── Configuration-Structure.md
│ ├── Core-Concepts.md
│ ├── media
│ │ ├── Tutorial1-1-New-AspNet-Project.png
│ │ ├── Tutorial1-2-Add-Dasync-NuGet.png
│ │ ├── Tutorial1-3-Configure-Startup.png
│ │ ├── Tutorial1-4-Create-Service.png
│ │ ├── Tutorial1-5-Define-Model.png
│ │ ├── Tutorial1-6-Execute-Query.png
│ │ └── Tutorial1-7-Execute-Command.png
│ ├── Method-Behavior-Options.md
│ ├── README.md
│ ├── Reference-By-Technology.md
│ └── Tutorial-1-Create-First-Service.md
├── examples
│ ├── AspNetCoreDocker
│ │ ├── AntiFraud.Domain
│ │ │ ├── AntiFraud.Domain.csproj
│ │ │ └── AntiFraudService.cs
│ │ ├── AntiFraud.Runtime
│ │ │ ├── AntiFraud.Runtime.csproj
│ │ │ ├── appsettings.Development.json
│ │ │ ├── appsettings.IISExpress.json
│ │ │ ├── appsettings.json
│ │ │ ├── Dockerfile
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── launchSettings.json
│ │ │ └── Startup.cs
│ │ ├── assets
│ │ │ ├── dasync-onion-architecture.png
│ │ │ ├── multiple-startup-projects.png
│ │ │ └── service-diagram.png
│ │ ├── docker-compose.dcproj
│ │ ├── docker-compose.override.yml
│ │ ├── docker-compose.yml
│ │ ├── README.md
│ │ ├── Users.Contract
│ │ │ ├── IUsersService.cs
│ │ │ ├── UserAlreadyRegisteredException.cs
│ │ │ ├── User.cs
│ │ │ ├── UserNotFoundException.cs
│ │ │ └── Users.Contract.csproj
│ │ ├── Users.Domain
│ │ │ ├── Users.Domain.csproj
│ │ │ └── UsersService.cs
│ │ └── Users.Runtime
│ │ ├── appsettings.Development.json
│ │ ├── appsettings.IISExpress.json
│ │ ├── appsettings.json
│ │ ├── Dockerfile
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── Startup.cs
│ │ └── Users.Runtime.csproj
│ ├── AspNetCoreDocker.sln
│ ├── Features
│ │ ├── Dasync.Features.Emulated.csproj
│ │ ├── Feature1.StatefulAsyncMethods.cs
│ │ ├── Feature2.ManualCheckpoint.cs
│ │ ├── Feature3.DelaySavesRoutineState.cs
│ │ ├── Feature4.RoutineParallelExecution.cs
│ │ ├── Feature5.ServiceDependencyInjection.cs
│ │ ├── Feature6.Saga.cs
│ │ ├── Feature7.Events.cs
│ │ ├── IFeatureDemo.cs
│ │ └── Program.cs
│ └── Features.sln
├── LICENSE
├── README.md
└── src
├── Communication
│ ├── Http
│ │ ├── Dasync.Communication.Http.csproj
│ │ ├── DasyncHttpCodes.cs
│ │ ├── DasyncHttpHeaders.cs
│ │ ├── DI.cs
│ │ ├── HttpCommunicationMethod.cs
│ │ ├── HttpCommunicator.cs
│ │ ├── HttpCommunicatorSettings.cs
│ │ └── HttpHeadersExtensions.cs
│ ├── InMemory
│ │ ├── CommunicationMessage.cs
│ │ ├── Dasync.Communication.InMemory.csproj
│ │ ├── DI.cs
│ │ ├── EventPublishDataTransformer.cs
│ │ ├── InMemoryCommunicationMethod.cs
│ │ ├── InMemoryCommunicator.cs
│ │ ├── InMemoryEventingMethod.cs
│ │ ├── InMemoryEventPublisher.cs
│ │ ├── InMemoryMessageHandler.cs
│ │ ├── InMemoryMessageListener.cs
│ │ ├── InMemoryMessageListeningMethod.cs
│ │ ├── Message.cs
│ │ ├── MessageHandle.cs
│ │ ├── MessageHub.cs
│ │ ├── MessageType.cs
│ │ ├── MethodContinuationDataTransformer.cs
│ │ └── MethodInvocationDataTransformer.cs
│ └── RabbitMQ
│ ├── CommunicationMessage.cs
│ ├── CommunicationSettings.cs
│ ├── ConnectionManager.cs
│ ├── ConnectionSettingsComparer.cs
│ ├── ConnectionSettings.cs
│ ├── Dasync.Communication.RabbitMQ.csproj
│ ├── DI.cs
│ ├── MessageTypes.cs
│ ├── RabbitMQCommunicationMethod.cs
│ ├── RabbitMQCommunicator.cs
│ ├── RabbitMQMessageHandler.cs
│ ├── RabbitMQMessageListener.cs
│ └── RabbitMQMessageListiningMethod.cs
├── Dasync.sln
├── Data
│ ├── EFCore
│ │ ├── DasyncDbContext.cs
│ │ ├── Dasync.EntityFrameworkCore.csproj
│ │ ├── DI.cs
│ │ ├── Hooks
│ │ │ ├── DbContextEvents.cs
│ │ │ ├── DbContextProxy.cs
│ │ │ ├── IDbContextModelExtender.cs
│ │ │ ├── IDbContextMonitor.cs
│ │ │ ├── IDbContextProxy.cs
│ │ │ └── ServiceCollectionExtensions.cs
│ │ ├── ICurrentDbContext.cs
│ │ ├── IDbContextEvents.cs
│ │ ├── Serialization
│ │ │ ├── DbContextSerializer.cs
│ │ │ ├── EntityProjectionSerializer.cs
│ │ │ ├── EntitySerializer.cs
│ │ │ ├── KnownDbContext.cs
│ │ │ └── SerializerSelector.cs
│ │ └── UnitOfWork
│ │ ├── CurrentDbContextProvider.cs
│ │ ├── ServiceCollectionExtensions.cs
│ │ ├── UnitOfWorkDbContextModelExtender.cs
│ │ ├── UnitOfWorkRecordConfiguration.cs
│ │ └── UnitOfWorkRecord.cs
│ ├── Projections
│ │ ├── Dasync.Projections.csproj
│ │ ├── Internals
│ │ │ ├── ProjectionBase.cs
│ │ │ └── ProjectionTypeBuilder.cs
│ │ ├── ObjectExtensions.cs
│ │ ├── Projection.cs
│ │ └── TypeInfoExtensions.cs
│ ├── Serialization
│ │ ├── AssemblyNameShortenerChain.cs
│ │ ├── Dasync.Serialization.csproj
│ │ ├── DI.cs
│ │ ├── IAssemblyNameShortener.cs
│ │ ├── IObjectComposer.cs
│ │ ├── IObjectComposerSelector.cs
│ │ ├── IObjectDecomposer.cs
│ │ ├── IObjectDecomposerSelector.cs
│ │ ├── ISerializer.cs
│ │ ├── ISerializerFactory.cs
│ │ ├── ITextSerializer.cs
│ │ ├── ITypeNameShortener.cs
│ │ ├── ObjectComposerSelectorChain.cs
│ │ ├── ObjectDecomposerSelectorChain.cs
│ │ ├── SerializedValueContainer.cs
│ │ ├── SerializerExtensions.cs
│ │ ├── SerializerProvider.cs
│ │ ├── TypeNameShortenerChain.cs
│ │ ├── UnserializableTypeException.cs
│ │ └── ValueContainerCopier.cs
│ ├── Serialization.DasyncJson
│ │ ├── Base
│ │ │ ├── AssemblyExtensions.cs
│ │ │ ├── AssemblyResolver.cs
│ │ │ ├── AssemblySerializationInfo.cs
│ │ │ ├── ByteArrayExtensions.cs
│ │ │ ├── IAssemblyResolver.cs
│ │ │ ├── IObjectReconstructor.cs
│ │ │ ├── IStandardSerializerFactory.cs
│ │ │ ├── ITypeResolver.cs
│ │ │ ├── IValueContainerSerializer.cs
│ │ │ ├── IValueReader.cs
│ │ │ ├── IValueReaderFactory.cs
│ │ │ ├── IValueWriter.cs
│ │ │ ├── IValueWriterFactory.cs
│ │ │ ├── ObjectDecomposerSelectorExtensions.cs
│ │ │ ├── ObjectIDGenerator.cs
│ │ │ ├── ObjectReconstructor.cs
│ │ │ ├── Poco.cs
│ │ │ ├── PocoTypeExtensions.cs
│ │ │ ├── StandardSerializer.cs
│ │ │ ├── StandardSerializerFactory.cs
│ │ │ ├── StandardTextSerializer.cs
│ │ │ ├── StringExtensions.cs
│ │ │ ├── TypeExtensions.cs
│ │ │ ├── TypeResolver.cs
│ │ │ ├── TypeSerializationInfo.cs
│ │ │ ├── TypeSerializerHelper.cs
│ │ │ ├── ValueContainerReader.cs
│ │ │ ├── ValueContainerSerializer.cs
│ │ │ └── ValueInfo.cs
│ │ ├── DasyncJsonSerializerFactory.cs
│ │ ├── Dasync.Serialization.DasyncJson.csproj
│ │ ├── DI.cs
│ │ ├── Encodings.cs
│ │ ├── JsonValueReader.cs
│ │ ├── JsonValueReaderFactory.cs
│ │ ├── JsonValueWriter.cs
│ │ └── JsonValueWriterFactory.cs
│ ├── Serialization.Json
│ │ ├── Converters
│ │ │ ├── TypeNameConverter.cs
│ │ │ └── ValueContainerConverter.cs
│ │ ├── Dasync.Serialization.Json.csproj
│ │ ├── DI.cs
│ │ ├── Encodings.cs
│ │ ├── JsonSerializerAdapter.cs
│ │ └── JsonSerializerAdapterFactory.cs
│ ├── Serializers.DomainTypes
│ │ ├── Dasync.Serializers.DomainTypes.csproj
│ │ ├── DI.cs
│ │ ├── DomainTypesNameShortener.cs
│ │ ├── DomainTypesSerializerSelector.cs
│ │ └── Projections
│ │ ├── EntityProjectionBase.cs
│ │ ├── EntityProjection.cs
│ │ ├── EntityProjectionSerializer.cs
│ │ ├── EntityProjectionTypeBuilder.cs
│ │ └── TypeInfoExtensions.cs
│ ├── Serializers.EETypes
│ │ ├── Cancellation
│ │ │ ├── CancellationToken.cs
│ │ │ └── CancellationTokenSource.cs
│ │ ├── Dasync.Serializers.EETypes.csproj
│ │ ├── DI.cs
│ │ ├── EEAssemblyNameShortener.cs
│ │ ├── EETypesNameShortener.cs
│ │ ├── EETypesSerializerSelector.cs
│ │ ├── ServiceProxy.cs
│ │ ├── TaskAwaiter.cs
│ │ ├── Task.cs
│ │ ├── Triggers
│ │ │ └── TaskCompletionSource.cs
│ │ └── TypeExtensions.cs
│ ├── Serializers.StandardTypes
│ │ ├── Collections
│ │ │ ├── Dictionary.cs
│ │ │ ├── Hashset.cs
│ │ │ ├── KeyValuePair.cs
│ │ │ └── List.cs
│ │ ├── Dasync.Serializers.StandardTypes.csproj
│ │ ├── DI.cs
│ │ ├── Metadata
│ │ │ └── Version.cs
│ │ ├── Runtime
│ │ │ ├── Exception.cs
│ │ │ └── ExceptionExtensions.cs
│ │ ├── SerializerBase.cs
│ │ ├── StandardAssemblyNameShortener.cs
│ │ ├── StandardTypeComposerSelector.cs
│ │ ├── StandardTypeDecomposerSelector.cs
│ │ ├── StandardTypeNameShortener.cs
│ │ ├── Time
│ │ │ ├── DateTime.cs
│ │ │ ├── DateTimeOffset.cs
│ │ │ └── TimeSpan.cs
│ │ └── TypeExtensions.cs
│ └── ValueContainer
│ ├── Dasync.ValueContainer.csproj
│ ├── EmptyValueContainer.cs
│ ├── IStronglyTypedValueContainer.cs
│ ├── IValueContainer.cs
│ ├── IValueContainerFactory.cs
│ ├── IValueContainerProxyFactory.cs
│ ├── IValueContainerWithTypeInfo.cs
│ ├── MemberAccessor.cs
│ ├── NamedValue.cs
│ ├── README.md
│ ├── ValueContainerBase.cs
│ ├── ValueContainer.cs
│ ├── ValueContainerEnumerable.cs
│ ├── ValueContainerExtensions.cs
│ ├── ValueContainerFactory.cs
│ └── ValueContainerTypeBuilder.cs
├── Engine
│ ├── Accessors
│ │ ├── AsyncDebugging.cs
│ │ ├── AsyncLocal.cs
│ │ ├── AsyncStateMachineBoxAccessor.cs
│ │ ├── AwaitTaskContinuationAccessor.cs
│ │ ├── CancellationCallbackInfoExtenstions.cs
│ │ ├── CancellationTokenRegistrationExtensions.cs
│ │ ├── CancellationTokenSourceStateExtensions.cs
│ │ ├── CancellationTokenSourceStateHolder.cs
│ │ ├── CancellationTokenSourceWithState.cs
│ │ ├── CancelletionTokenExtensions.cs
│ │ ├── CancelletionTokenSourceExtensions.cs
│ │ ├── ContinuationWrapperAccessor.cs
│ │ ├── Dasync.Accessors.csproj
│ │ ├── DelayPromiseAccessor.cs
│ │ ├── Extensions_IAsyncStateMachine.cs
│ │ ├── MoveNextRunnerAccessor.cs
│ │ ├── ReflectionExtensions.cs
│ │ ├── StandardTaskContinuationAccessor.cs
│ │ ├── SynchronizationContextAwaitTaskContinuationAccessor.cs
│ │ ├── TaskAccessor.cs
│ │ ├── TaskAwaiterUtils.cs
│ │ ├── TaskCapture.cs
│ │ ├── TaskCompletionSourceAccessor.cs
│ │ ├── TimerExtensions.cs
│ │ ├── TimerQueueExtensions.cs
│ │ ├── TimerQueueTimerAccessor.cs
│ │ └── WhenAllPromiseAccessor.cs
│ ├── AsyncStateMachine
│ │ ├── AsyncStateMachineAccessor.cs
│ │ ├── AsyncStateMachineAccessorFactory.cs
│ │ ├── AsyncStateMachineField.cs
│ │ ├── AsyncStateMachineFieldType.cs
│ │ ├── AsyncStateMachineMetadataBuilder.cs
│ │ ├── AsyncStateMachineMetadataBuilderExtensions.cs
│ │ ├── AsyncStateMachineMetadata.cs
│ │ ├── AsyncStateMachineMetadataProvider.cs
│ │ ├── AsyncStateMachineMetadataProviderExtensions.cs
│ │ ├── AsyncTaskMethodBuilderExtensions.cs
│ │ ├── Dasync.AsyncStateMachine.csproj
│ │ ├── DI.cs
│ │ ├── Extensions_MethodInfo.cs
│ │ ├── IAsyncStateMachineAccessor.cs
│ │ ├── IAsyncStateMachineAccessorFactory.cs
│ │ ├── IAsyncStateMachineMetadataBuilder.cs
│ │ ├── IAsyncStateMachineMetadataProvider.cs
│ │ └── MethodInfoToStateMachineTypeConverter.cs
│ ├── EETypes
│ │ ├── AsyncLocal.cs
│ │ ├── Cancellation
│ │ │ ├── CancellationTokenSourceState.cs
│ │ │ ├── ICancellationTokenSourceIdGenerator.cs
│ │ │ └── ICancellationTokenSourceRegistry.cs
│ │ ├── Communication
│ │ │ ├── CommunicationMethodNotFoundException.cs
│ │ │ ├── CommunicationTraits.cs
│ │ │ ├── ContinueRoutineResult.cs
│ │ │ ├── EventCommunicationSettings.cs
│ │ │ ├── EventPublishData.cs
│ │ │ ├── ICommunicationMethod.cs
│ │ │ ├── ICommunicationSettingsProvider.cs
│ │ │ ├── ICommunicator.cs
│ │ │ ├── ICommunicatorMessage.cs
│ │ │ ├── ICommunicatorProvider.cs
│ │ │ ├── IEventingMethod.cs
│ │ │ ├── IEventPublisher.cs
│ │ │ ├── IEventPublisherProvider.cs
│ │ │ ├── IMessageHandle.cs
│ │ │ ├── IMessageListener.cs
│ │ │ ├── IMessageListeningMethod.cs
│ │ │ ├── InvocationOutcome.cs
│ │ │ ├── InvocationPreferences.cs
│ │ │ ├── InvokeRoutineResult.cs
│ │ │ ├── ISynchronousCommunicator.cs
│ │ │ ├── MethodCommunicationSettings.cs
│ │ │ ├── MethodContinuationData.cs
│ │ │ ├── MethodInvocationData.cs
│ │ │ └── PublishPreferences.cs
│ │ ├── Configuration
│ │ │ ├── ConfigOverrideLevels.cs
│ │ │ └── ICommunicationModelConfiguration.cs
│ │ ├── Dasync.EETypes.csproj
│ │ ├── Descriptors
│ │ │ ├── CallerDescriptor.cs
│ │ │ ├── ContinuationDescriptor.cs
│ │ │ ├── EventDescriptor.cs
│ │ │ ├── EventSubscriberDescriptor.cs
│ │ │ ├── ServiceDescriptor.cs
│ │ │ ├── TaskResult.cs
│ │ │ ├── TransitionDescriptor.cs
│ │ │ └── TransitionType.cs
│ │ ├── Engine
│ │ │ ├── ILocalMethodRunner.cs
│ │ │ ├── ISingleEventPublisher.cs
│ │ │ ├── ISingleMethodInvoker.cs
│ │ │ └── ITransitionRunner.cs
│ │ ├── EventId.cs
│ │ ├── Eventing
│ │ │ └── IEventSubscriber.cs
│ │ ├── IEventIdProvider.cs
│ │ ├── IMethodIdProvider.cs
│ │ ├── Intents
│ │ │ ├── ActivateTriggerIntent.cs
│ │ │ ├── ContinueRoutineIntent.cs
│ │ │ ├── CreateServiceInstanceIntent.cs
│ │ │ ├── ExecuteRoutineIntent.cs
│ │ │ ├── RaiseEventIntent.cs
│ │ │ ├── RegisterTriggerIntent.cs
│ │ │ ├── SaveStateIntent.cs
│ │ │ ├── ScheduledActions.cs
│ │ │ └── SubscribeToTriggerIntent.cs
│ │ ├── INumericIdGenerator.cs
│ │ ├── Ioc
│ │ │ └── IDomainServiceProvider.cs
│ │ ├── IProxyTaskState.cs
│ │ ├── ITransitionContext.cs
│ │ ├── IUniqueIdGenerator.cs
│ │ ├── MethodId.cs
│ │ ├── PersistedMethodId.cs
│ │ ├── Persistence
│ │ │ ├── ETagMismatchException.cs
│ │ │ ├── IMethodStateStorage.cs
│ │ │ ├── IMethodStateStorageProvider.cs
│ │ │ ├── IPersistenceMethod.cs
│ │ │ ├── MethodExecutionState.cs
│ │ │ ├── MethodStateStorageNotFoundException.cs
│ │ │ ├── SerializedMethodContinuationState.cs
│ │ │ └── StateNotFoundException.cs
│ │ ├── Platform
│ │ │ ├── IRoutineCompletionNotifier.cs
│ │ │ ├── IRoutineCompletionSink.cs
│ │ │ ├── ITransitionCarrier.cs
│ │ │ ├── ITransitionCommitter.cs
│ │ │ └── TransitionCommitOptions.cs
│ │ ├── Proxy
│ │ │ ├── IServiceProxyBuilder.cs
│ │ │ ├── RoutineReference.cs
│ │ │ └── ServiceProxyContext.cs
│ │ ├── Resolvers
│ │ │ ├── IEventReference.cs
│ │ │ ├── IEventResolver.cs
│ │ │ ├── IMethodReference.cs
│ │ │ ├── IMethodResolver.cs
│ │ │ ├── IServiceReference.cs
│ │ │ └── IServiceResolver.cs
│ │ ├── Route.cs
│ │ ├── ServiceId.cs
│ │ └── Triggers
│ │ ├── ITaskCompletionSourceRegistry.cs
│ │ └── TriggerReference.cs
│ ├── ExecutionEngine
│ │ ├── Cancellation
│ │ │ ├── CancellationTokenSourceIdGenerator.cs
│ │ │ └── CancellationTokenSourceRegistry.cs
│ │ ├── Communication
│ │ │ ├── CommunicatorProvider.cs
│ │ │ ├── EventPublisherProvider.cs
│ │ │ ├── SingleEventPublisher.cs
│ │ │ └── SingleMethodInvoker.cs
│ │ ├── ConcurrentTransitionException.cs
│ │ ├── Configuration
│ │ │ ├── CommunicationModelConfiguration.cs
│ │ │ ├── ConfigurationSectionKey.cs
│ │ │ ├── PrimitiveType.cs
│ │ │ └── ServiceCategory.cs
│ │ ├── Continuation
│ │ │ ├── TaskContinuationClassifier.cs
│ │ │ ├── TaskContinuationInfo.cs
│ │ │ ├── TaskContinuationTracker.cs
│ │ │ └── TaskContinuationType.cs
│ │ ├── Dasync.ExecutionEngine.csproj
│ │ ├── DI.cs
│ │ ├── DomainServiceProvider.cs
│ │ ├── EventIdProvider.cs
│ │ ├── Eventing
│ │ │ ├── EventSubscriber.cs
│ │ │ └── MulticastEventPublisher.cs
│ │ ├── Extensions
│ │ │ └── TaskResultExtensions.cs
│ │ ├── IntrinsicFlow
│ │ │ ├── InterceptingSynchronizationContext.cs
│ │ │ ├── IntrinsicCommunicationModel.cs
│ │ │ ├── IntrinsicFlowController.cs
│ │ │ ├── IntrinsicRoutines.cs
│ │ │ └── WhenAllInputParameters.cs
│ │ ├── MethodIdProvider.cs
│ │ ├── Modeling
│ │ │ ├── ExternalCommunicationModel.cs
│ │ │ ├── ExternalMethodDefinition.cs
│ │ │ └── ExternalServiceDefinition.cs
│ │ ├── NumericIdGenerator.cs
│ │ ├── Persistence
│ │ │ └── MethodStateStorageProvider.cs
│ │ ├── Proxy
│ │ │ ├── ProxyMethodExecutor.cs
│ │ │ └── ServiceProxyBuilder.cs
│ │ ├── ReflectionExtensions.cs
│ │ ├── Resolvers
│ │ │ ├── EventReference.cs
│ │ │ ├── EventResolver.cs
│ │ │ ├── MethodReference.cs
│ │ │ ├── MethodResolver.cs
│ │ │ ├── ServiceReference.cs
│ │ │ └── ServiceResolver.cs
│ │ ├── Settings
│ │ │ └── CommunicationSettingsProvider.cs
│ │ ├── Startup
│ │ │ ├── CommunicationListener.cs
│ │ │ └── StartupHostedService.cs
│ │ ├── StateMetadata
│ │ │ └── Service
│ │ │ ├── ServiceStateMetadata.cs
│ │ │ ├── ServiceStateMetadataProvider.cs
│ │ │ ├── ServiceStateValueContainerProvider.cs
│ │ │ └── ServiceStateVariable.cs
│ │ ├── Transitions
│ │ │ ├── RoutineCompletionNotificationHub.cs
│ │ │ ├── TransitionCarrier.cs
│ │ │ ├── TransitionContext.cs
│ │ │ ├── TransitionMonitor.cs
│ │ │ ├── TransitionRunner.Commit.cs
│ │ │ ├── TransitionRunner.cs
│ │ │ ├── TransitionRunner.Invoke.cs
│ │ │ └── TransitionScope.cs
│ │ ├── Triggers
│ │ │ └── TaskCompletionSourceRegistry.cs
│ │ ├── UniqueIdGenerator.cs
│ │ └── Utils
│ │ └── InvocationDataUtils.cs
│ └── Proxy
│ ├── Dasync.Proxy.csproj
│ ├── DI.cs
│ ├── IMethodInvoker.cs
│ ├── IMethodInvokerFactory.cs
│ ├── IProxy.cs
│ ├── IProxyMethodExecutor.cs
│ ├── IProxyTypeBuilder.cs
│ ├── MethodInvoker.cs
│ ├── MethodInvokerFactory.cs
│ ├── ProxyTypeBuilder.cs
│ └── README.md
├── Fabric
│ ├── AspNetCore
│ │ ├── ApplicationExtensions.cs
│ │ ├── AspNetCoreEnvironment.cs
│ │ ├── ConfigurationExtensions.cs
│ │ ├── Dasync.Fabric.AspNetCore.csproj
│ │ └── ServiceCollectionExtensions.cs
│ └── InMemory
│ ├── Dasync.Fabric.InMemory.csproj
│ └── ServiceCollectionExtensions.cs
├── Hosting
│ └── AspNetCore
│ ├── Dasync.Hosting.AspNetCore.csproj
│ ├── DasyncMiddleware.cs
│ ├── Development
│ │ ├── BackgroundEventSubscriber.cs
│ │ ├── DI.cs
│ │ ├── EventingHttpClient.cs
│ │ ├── EventingMethod.cs
│ │ ├── EventingMiddleware.cs
│ │ ├── EventPublisher.cs
│ │ ├── MessageListeningMethod.cs
│ │ └── SubscribeEnvelope.cs
│ ├── DI.cs
│ ├── Errors
│ │ ├── Error.cs
│ │ ├── ErrorEnvelope.cs
│ │ └── ExceptionToErrorConverter.cs
│ ├── Http
│ │ ├── HttpHeadersExtensions.cs
│ │ ├── HttpRequestContentExtensions.cs
│ │ └── RFC7240Preferences.cs
│ ├── HttpRequestHandler.cs
│ ├── Invocation
│ │ └── HttpCommunicatorMessage.cs
│ └── Utils
│ ├── StreamExtensions.cs
│ └── TaskExtensions.cs
├── IoC
│ └── DependencyInjection
│ ├── Dasync.DependencyInjection.csproj
│ ├── DI.cs
│ ├── IScopedServiceProvider.cs
│ ├── IServiceProviderScope.cs
│ ├── ScopedServiceProvider.cs
│ ├── ServiceCollectionDasyncExtensions.cs
│ ├── ServiceCollectionExtensions.cs
│ ├── ServiceCollectionModuleExtensions.cs
│ ├── ServiceDescriptorList.cs
│ ├── ServiceProviderScope.cs
│ └── ServiceProviderScopeFactory.cs
├── Modeling
│ ├── Builder
│ │ ├── CommandDefinitionBuilder.cs
│ │ ├── CommunicationModelBuilder.cs
│ │ ├── EntityProjectionDefinitionBuilder.cs
│ │ ├── EventDefinitionBuilder.cs
│ │ ├── ExternalServiceDefinitionBuilder.cs
│ │ ├── MethodDefinitionBuilder.cs
│ │ ├── QueryDefinitionBuilder.cs
│ │ └── ServiceDefinitionBuilder.cs
│ ├── Conventions
│ │ ├── DefaultServiceInterfaceFinder.cs
│ │ ├── DefaultServiceNamer.cs
│ │ ├── ModelingExtensions.cs
│ │ └── ModelRefiner.cs
│ ├── Dasync.Modeling.csproj
│ ├── Interfaces
│ │ ├── ICommandDefinition.cs
│ │ ├── ICommunicationModel.cs
│ │ ├── IEntityProjectionDefinition.cs
│ │ ├── IEventDefinition.cs
│ │ ├── IMethodDefinition.cs
│ │ ├── IPropertyBag.cs
│ │ ├── IProperty.cs
│ │ ├── IQueryDefinition.cs
│ │ ├── IServiceDefinition.cs
│ │ └── Mutable
│ │ ├── IMutableCommandDefinition.cs
│ │ ├── IMutableCommunicationModel.cs
│ │ ├── IMutableEntityProjectionDefinition.cs
│ │ ├── IMutableMethodDefinition.cs
│ │ ├── IMutablePropertyBag.cs
│ │ ├── IMutableQueryDefinition.cs
│ │ ├── IMutableServiceDefinition.cs
│ │ └── IMutbleEventDefinition.cs
│ └── Model
│ ├── CommunicationModel.cs
│ ├── EntityProjectionDefinition.cs
│ ├── EventDefinition.cs
│ ├── MethodDefinition.cs
│ ├── PropertyBag.cs
│ ├── Property.cs
│ ├── ServiceDefinition.cs
│ └── ServiceType.cs
└── Persistence
├── Cassandra
│ ├── CassandraPersistenceMethod.cs
│ ├── CassandraStateStorage.cs
│ ├── ConnectionSettings.cs
│ ├── Dasync.Persistence.Cassandra.csproj
│ ├── DI.cs
│ ├── Driver
│ │ ├── CassandraRowExtensions.cs
│ │ └── VIntCoding.cs
│ ├── FileStorage.cs
│ ├── Outcomes.cs
│ ├── StateStorageSettings.cs
│ ├── Statuses.cs
│ ├── StorageRecord.cs
│ └── StringBuilderCqlExtensions.cs
├── FileSystem
│ ├── Dasync.Persistence.FileSystem.csproj
│ ├── DI.cs
│ ├── FilePersistenceMethod.cs
│ └── FileStorage.cs
└── InMemory
├── Dasync.Persistence.InMemory.csproj
├── DI.cs
├── InMemoryMethodStateStorage.cs
└── InMemoryPersistenceMethod.cs
103 directories, 550 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论