实例介绍
【实例简介】
Orleankka是一个为Microsoft Orleans框架设计的函数式扩展库。它提供了一个与Akka/ProtoActor相似的基于消息的API,这个API是精心设计并构建在Orleans之上的。Orleankka是一个非常适合需要可组合、统一通信接口的用例的选择,例如命令查询责任分离(CQRS)、事件溯源、有限状态机(FSM)等。
特点:
- 基于消息的API,零性能开销
- 可切换的actor行为,内置层次化FSM(行为)
- 附加API简化长时间运行的后台任务(jobs)编程
- 强大的actor/proxy中间件(拦截器)
- 方便的单元测试套件(stubs, mocks, expectations)
如何安装:
要通过NuGet安装Orleankka客户端库,请在NuGet包管理器控制台运行以下命令:
PM> Install-Package Orleankka.Client
对于服务器端库:
PM> Install-Package Orleankka.Runtime
请查看“入门指南”了解更多信息。构建源代码需要安装VS2019和.NET Core 3.x。克隆仓库并从解决方案的根文件夹在CLI中运行以下命令:
PM> Nake.bat
这将恢复依赖项并以调试模式构建所有内容。使用-T开关运行Nake.bat以查看可用命令。在MacOS/Linux发行版上,使用下面的脚本来构建、打包或运行测试:
$> ./nake.sh
示例:
- Hello, world! [演示]
- "WebScan" [演示]
- TestKit [演示]
- 事件溯源
- 习惯用法 (CQRS)
- 持久性: GetEventStore
- 持久性: Streamstone
- 重入消息
- 客户端观察者
- 流
- 可切换行为
【实例截图】
【核心代码】
文件清单
└── Orleankka-09421f9f97ce9059d0725a336d523286adedaca0
├── app.js
├── appveyor.yml
├── Directory.Build.props
├── Docs
│ ├── articles
│ │ ├── intro
│ │ │ ├── getting-started-csharp.md
│ │ │ └── what-is-orleankka.md
│ │ ├── migration
│ │ │ └── from-15-to-20.md
│ │ └── toc.yml
│ ├── build.sh
│ ├── docfx.json
│ ├── filterConfig.yml
│ ├── images
│ │ ├── favicon.ico
│ │ ├── Logo.Full.jpg
│ │ └── Logo.png
│ ├── index.md
│ ├── release.sh
│ ├── serve.sh
│ ├── template
│ │ ├── index.html.tmpl
│ │ └── partials
│ │ └── navbar.tmpl.partial
│ └── toc.yml
├── LICENSE
├── LICENSE.txt
├── Logo.png
├── Logo.Wide.jpg
├── Nake.bat
├── Nake.csx
├── nake.sh
├── NuGet.Config
├── Orleankka.sln
├── Orleankka.sln.DotSettings
├── package.json
├── README.md
├── Samples
│ ├── CSharp
│ │ ├── Demo
│ │ │ ├── Demo.App
│ │ │ │ ├── Api.cs
│ │ │ │ ├── ApiWorker.cs
│ │ │ │ ├── App.config
│ │ │ │ ├── App.cs
│ │ │ │ ├── Demo.App.csproj
│ │ │ │ ├── HttpException.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── README.txt
│ │ │ │ ├── Topic.cs
│ │ │ │ ├── TopicStorage.cs
│ │ │ │ └── Utility.cs
│ │ │ └── Demo.App.Tests
│ │ │ ├── ActorFixture.cs
│ │ │ ├── ApiFixture.cs
│ │ │ ├── App.config
│ │ │ ├── Demo.App.Tests.csproj
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── ReSharper.cs
│ │ │ └── TopicFixture.cs
│ │ ├── EventSourcing
│ │ │ ├── Idiomatic
│ │ │ │ ├── App.config
│ │ │ │ ├── Domain.cs
│ │ │ │ ├── Idiomatic.csproj
│ │ │ │ ├── Infrastructure.cs
│ │ │ │ ├── Messages.cs
│ │ │ │ └── Program.cs
│ │ │ └── Persistence
│ │ │ ├── GES
│ │ │ │ ├── App.config
│ │ │ │ ├── Domain.cs
│ │ │ │ ├── GES.csproj
│ │ │ │ ├── Infrastructure.cs
│ │ │ │ ├── Messages.cs
│ │ │ │ └── Program.cs
│ │ │ └── Streamstone
│ │ │ ├── App.config
│ │ │ ├── Domain.cs
│ │ │ ├── Infrastructure.cs
│ │ │ ├── Messages.cs
│ │ │ ├── Program.cs
│ │ │ └── Streamstone.csproj
│ │ ├── FSM
│ │ │ ├── Lightbulb
│ │ │ │ ├── App.config
│ │ │ │ ├── Lightbulb.cs
│ │ │ │ ├── Lightbulb.csproj
│ │ │ │ └── Program.cs
│ │ │ └── ProcessManager
│ │ │ ├── App.razor
│ │ │ ├── appsettings.Development.json
│ │ │ ├── appsettings.json
│ │ │ ├── Copier.cs
│ │ │ ├── Extensions.cs
│ │ │ ├── _Imports.razor
│ │ │ ├── Pages
│ │ │ │ ├── _Host.cshtml
│ │ │ │ ├── Jobs.razor
│ │ │ │ └── Logs.razor
│ │ │ ├── ProcessManager.csproj
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── launchSettings.json
│ │ │ ├── Shared
│ │ │ │ ├── MainLayout.razor
│ │ │ │ └── NavMenu.razor
│ │ │ ├── Startup.cs
│ │ │ ├── Storage.cs
│ │ │ ├── Supervision.cs
│ │ │ └── wwwroot
│ │ │ ├── css
│ │ │ │ ├── bootstrap
│ │ │ │ │ ├── bootstrap.min.css
│ │ │ │ │ └── bootstrap.min.css.map
│ │ │ │ ├── open-iconic
│ │ │ │ │ ├── font
│ │ │ │ │ │ ├── css
│ │ │ │ │ │ │ └── open-iconic-bootstrap.min.css
│ │ │ │ │ │ └── fonts
│ │ │ │ │ │ ├── open-iconic.eot
│ │ │ │ │ │ ├── open-iconic.otf
│ │ │ │ │ │ ├── open-iconic.svg
│ │ │ │ │ │ ├── open-iconic.ttf
│ │ │ │ │ │ └── open-iconic.woff
│ │ │ │ │ ├── FONT-LICENSE
│ │ │ │ │ ├── ICON-LICENSE
│ │ │ │ │ └── README.md
│ │ │ │ └── site.css
│ │ │ ├── favicon.ico
│ │ │ └── scripts.js
│ │ ├── HelloWorld
│ │ │ ├── App.config
│ │ │ ├── HelloWorld.csproj
│ │ │ └── Program.cs
│ │ ├── Observers
│ │ │ ├── Chat.Client
│ │ │ │ ├── App.config
│ │ │ │ ├── ChatClient.cs
│ │ │ │ ├── Chat.Client.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── Chat.Server
│ │ │ │ ├── App.config
│ │ │ │ ├── ChatRoom.cs
│ │ │ │ ├── Chat.Server.csproj
│ │ │ │ └── Program.cs
│ │ │ └── Chat.Shared
│ │ │ ├── Actors.cs
│ │ │ ├── Chat.Shared.csproj
│ │ │ └── Messages.cs
│ │ ├── Reentrant
│ │ │ ├── App.config
│ │ │ ├── Program.cs
│ │ │ ├── ReaderWriterLock.cs
│ │ │ └── Reentrant.csproj
│ │ ├── Shared.cs
│ │ └── Streams
│ │ ├── Chat.Client
│ │ │ ├── App.config
│ │ │ ├── ChatClient.cs
│ │ │ ├── Chat.Client.csproj
│ │ │ └── Program.cs
│ │ ├── Chat.Server
│ │ │ ├── App.config
│ │ │ ├── Chat.Server.csproj
│ │ │ ├── ChatUser.cs
│ │ │ └── Program.cs
│ │ └── Chat.Shared
│ │ ├── Chat.Shared.csproj
│ │ └── Messages.cs
│ └── Directory.Build.props
├── Source
│ ├── Directory.Build.props
│ ├── Directory.Build.targets
│ ├── Orleankka
│ │ ├── ActorGrainInterface.cs
│ │ ├── ActorMessage.cs
│ │ ├── ActorPath.cs
│ │ ├── ActorRef.cs
│ │ ├── ActorRefExtensions.cs
│ │ ├── ActorRefMiddleware.cs
│ │ ├── ActorSystem.cs
│ │ ├── Client
│ │ │ └── ClientActorSystem.cs
│ │ ├── ClientEndpoint.cs
│ │ ├── ClientObservable.cs
│ │ ├── ClientRef.cs
│ │ ├── GrainReferenceInternals.cs
│ │ ├── Http
│ │ │ ├── ActorRouteMapper.cs
│ │ │ ├── ActorRouteMapping.cs
│ │ │ ├── HttpActorEndpoint.cs
│ │ │ ├── HttpActorSystem.cs
│ │ │ └── MessageRouteMapping.cs
│ │ ├── IActorGrain.cs
│ │ ├── IClientEndpoint.cs
│ │ ├── LifecycleMessages.cs
│ │ ├── Meta
│ │ │ ├── Command.cs
│ │ │ ├── Event.cs
│ │ │ ├── Extensions.cs
│ │ │ ├── Message.cs
│ │ │ ├── Query.cs
│ │ │ └── Result.cs
│ │ ├── ObserverRef.cs
│ │ ├── Orleankka.csproj
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── Receive.cs
│ │ ├── ReceiveResult.cs
│ │ ├── ReferencedAssemblyHelper.cs
│ │ ├── StreamMessages.cs
│ │ ├── StreamPath.cs
│ │ ├── StreamRef.cs
│ │ ├── StreamRefExtensions.cs
│ │ ├── StreamRefMiddleware.cs
│ │ ├── StreamSubscription.cs
│ │ ├── Syntax.cs
│ │ └── Utility
│ │ ├── Annotations.cs
│ │ ├── DictionaryExtensions.cs
│ │ └── Requires.cs
│ ├── Orleankka.Client
│ │ ├── ClientOptions.cs
│ │ └── Orleankka.Client.csproj
│ ├── Orleankka.Http.AspNetCore
│ │ ├── Orleankka.Http.AspNetCore.csproj
│ │ └── RoutingExtensions.cs
│ ├── Orleankka.Legacy.Runtime
│ │ ├── ActorAttributes.cs
│ │ ├── Actor.cs
│ │ ├── Behaviors
│ │ │ ├── ActorBehavior.cs
│ │ │ ├── BehaviorExtensions.cs
│ │ │ ├── CustomBehavior.cs
│ │ │ ├── Exceptions.cs
│ │ │ └── Transition.cs
│ │ ├── Cluster
│ │ │ └── ClusterOptions.cs
│ │ ├── Dispatcher.cs
│ │ ├── Orleankka.Legacy.Runtime.csproj
│ │ └── Properties
│ │ └── AssemblyInfo.cs
│ ├── Orleankka.Runtime
│ │ ├── ActorActivator.cs
│ │ ├── ActorGrain.cs
│ │ ├── ActorGrainImplementation.cs
│ │ ├── ActorGrainMessages.cs
│ │ ├── ActorMiddleware.cs
│ │ ├── ActorRuntime.cs
│ │ ├── Behaviors
│ │ │ ├── Behavior.cs
│ │ │ ├── BehaviorMessages.cs
│ │ │ ├── State.cs
│ │ │ ├── StateMachine.cs
│ │ │ ├── Trait.cs
│ │ │ └── Transition.cs
│ │ ├── Cluster
│ │ │ ├── ClusterActorSystem.cs
│ │ │ ├── ClusterOptions.cs
│ │ │ └── DashboardIntegration.cs
│ │ ├── DispatchActorGrain.cs
│ │ ├── Dispatcher.cs
│ │ ├── Exceptions.cs
│ │ ├── InvokeMethodRequestExtensions.cs
│ │ ├── ObserverCollection.cs
│ │ ├── Orleankka.Runtime.csproj
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── Services
│ │ │ ├── ActivationService.cs
│ │ │ ├── BackgroundJobService.cs
│ │ │ ├── GrainInternals.cs
│ │ │ ├── ReminderService.cs
│ │ │ └── TimerService.cs
│ │ ├── StreamRefServerExtensions.cs
│ │ └── TaskResult.cs
│ └── Orleankka.TestKit
│ ├── ActivationServiceMock.cs
│ ├── ActorRefMock.cs
│ ├── ActorRuntimeMock.cs
│ ├── ActorSystemMock.cs
│ ├── BackgroundJobServiceMock.cs
│ ├── ClientObservableMock.cs
│ ├── Expectations.cs
│ ├── ExpressionExtensions.cs
│ ├── MessageSerialization.cs
│ ├── Meta
│ │ └── Extensions.cs
│ ├── ObserverCollectionMock.cs
│ ├── ObserverRefStub.cs
│ ├── Orleankka.TestKit.csproj
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── ReminderServiceMock.cs
│ ├── StreamRefMock.cs
│ ├── StreamSubscriptionMock.cs
│ └── TimerServiceMock.cs
├── Tests
│ ├── Directory.Build.props
│ ├── Orleankka.TestKit.Tests
│ │ ├── ActorRefMockFixture.cs
│ │ ├── ActorSystemMockFixture.cs
│ │ ├── BackgroundJobServiceMockFixture.cs
│ │ ├── Orleankka.TestKit.Tests.csproj
│ │ └── Properties
│ │ └── AssemblyInfo.cs
│ └── Orleankka.Tests
│ ├── Checks
│ │ ├── ActorPathFixture.cs
│ │ ├── ActorRefFixture.cs
│ │ ├── ClientRefFixture.cs
│ │ ├── DispatcherFixture.cs
│ │ ├── ObserverCollectionFixture.cs
│ │ ├── StreamPathFixture.cs
│ │ └── StreamRefFixture.cs
│ ├── CSharp9.cs
│ ├── Features
│ │ ├── Actor_behaviors
│ │ │ ├── BehaviorTester.cs
│ │ │ ├── Hierarchical_state_machine.cs
│ │ │ ├── Reusing_handlers_via_traits.cs
│ │ │ └── Switchable_behaviors.cs
│ │ ├── Actor_identity.cs
│ │ ├── Background_jobs.cs
│ │ ├── Externally_managed_lifecycle.cs
│ │ ├── Http_rpc
│ │ │ └── Request_response.cs
│ │ ├── Intercepting_requests.cs
│ │ ├── Message_based_timers.cs
│ │ ├── Observing_notifications.cs
│ │ ├── One_off_timers.cs
│ │ ├── Reentrant_messages.cs
│ │ ├── Reminders_idempotency.cs
│ │ ├── Request_response.cs
│ │ ├── State_persistence.cs
│ │ ├── Stream_references.cs
│ │ ├── Stream_subscriptions.cs
│ │ ├── Strongly_typed_actors.cs
│ │ └── Using_reminders.cs
│ ├── Legacy
│ │ └── Features
│ │ └── Actor_behaviors
│ │ ├── Behavior_failures.cs
│ │ ├── @Mocks.cs
│ │ ├── Reusing_handlers_via_traits.cs
│ │ └── Switchable_behaviors.cs
│ ├── Orleankka.Tests.csproj
│ └── Testing
│ ├── Converters.cs
│ ├── TestActions.cs
│ ├── TestActor.cs
│ ├── TestActorSystem.cs
│ └── Utility.cs
└── Tools
└── Tools.csproj
76 directories, 283 files
Orleankka是一个为Microsoft Orleans框架设计的函数式扩展库。它提供了一个与Akka/ProtoActor相似的基于消息的API,这个API是精心设计并构建在Orleans之上的。Orleankka是一个非常适合需要可组合、统一通信接口的用例的选择,例如命令查询责任分离(CQRS)、事件溯源、有限状态机(FSM)等。
特点:
- 基于消息的API,零性能开销
- 可切换的actor行为,内置层次化FSM(行为)
- 附加API简化长时间运行的后台任务(jobs)编程
- 强大的actor/proxy中间件(拦截器)
- 方便的单元测试套件(stubs, mocks, expectations)
如何安装:
要通过NuGet安装Orleankka客户端库,请在NuGet包管理器控制台运行以下命令:
PM> Install-Package Orleankka.Client
对于服务器端库:
PM> Install-Package Orleankka.Runtime
请查看“入门指南”了解更多信息。构建源代码需要安装VS2019和.NET Core 3.x。克隆仓库并从解决方案的根文件夹在CLI中运行以下命令:
PM> Nake.bat
这将恢复依赖项并以调试模式构建所有内容。使用-T开关运行Nake.bat以查看可用命令。在MacOS/Linux发行版上,使用下面的脚本来构建、打包或运行测试:
$> ./nake.sh
示例:
- Hello, world! [演示]
- "WebScan" [演示]
- TestKit [演示]
- 事件溯源
- 习惯用法 (CQRS)
- 持久性: GetEventStore
- 持久性: Streamstone
- 重入消息
- 客户端观察者
- 流
- 可切换行为
【实例截图】
【核心代码】
文件清单
└── Orleankka-09421f9f97ce9059d0725a336d523286adedaca0
├── app.js
├── appveyor.yml
├── Directory.Build.props
├── Docs
│ ├── articles
│ │ ├── intro
│ │ │ ├── getting-started-csharp.md
│ │ │ └── what-is-orleankka.md
│ │ ├── migration
│ │ │ └── from-15-to-20.md
│ │ └── toc.yml
│ ├── build.sh
│ ├── docfx.json
│ ├── filterConfig.yml
│ ├── images
│ │ ├── favicon.ico
│ │ ├── Logo.Full.jpg
│ │ └── Logo.png
│ ├── index.md
│ ├── release.sh
│ ├── serve.sh
│ ├── template
│ │ ├── index.html.tmpl
│ │ └── partials
│ │ └── navbar.tmpl.partial
│ └── toc.yml
├── LICENSE
├── LICENSE.txt
├── Logo.png
├── Logo.Wide.jpg
├── Nake.bat
├── Nake.csx
├── nake.sh
├── NuGet.Config
├── Orleankka.sln
├── Orleankka.sln.DotSettings
├── package.json
├── README.md
├── Samples
│ ├── CSharp
│ │ ├── Demo
│ │ │ ├── Demo.App
│ │ │ │ ├── Api.cs
│ │ │ │ ├── ApiWorker.cs
│ │ │ │ ├── App.config
│ │ │ │ ├── App.cs
│ │ │ │ ├── Demo.App.csproj
│ │ │ │ ├── HttpException.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── README.txt
│ │ │ │ ├── Topic.cs
│ │ │ │ ├── TopicStorage.cs
│ │ │ │ └── Utility.cs
│ │ │ └── Demo.App.Tests
│ │ │ ├── ActorFixture.cs
│ │ │ ├── ApiFixture.cs
│ │ │ ├── App.config
│ │ │ ├── Demo.App.Tests.csproj
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── ReSharper.cs
│ │ │ └── TopicFixture.cs
│ │ ├── EventSourcing
│ │ │ ├── Idiomatic
│ │ │ │ ├── App.config
│ │ │ │ ├── Domain.cs
│ │ │ │ ├── Idiomatic.csproj
│ │ │ │ ├── Infrastructure.cs
│ │ │ │ ├── Messages.cs
│ │ │ │ └── Program.cs
│ │ │ └── Persistence
│ │ │ ├── GES
│ │ │ │ ├── App.config
│ │ │ │ ├── Domain.cs
│ │ │ │ ├── GES.csproj
│ │ │ │ ├── Infrastructure.cs
│ │ │ │ ├── Messages.cs
│ │ │ │ └── Program.cs
│ │ │ └── Streamstone
│ │ │ ├── App.config
│ │ │ ├── Domain.cs
│ │ │ ├── Infrastructure.cs
│ │ │ ├── Messages.cs
│ │ │ ├── Program.cs
│ │ │ └── Streamstone.csproj
│ │ ├── FSM
│ │ │ ├── Lightbulb
│ │ │ │ ├── App.config
│ │ │ │ ├── Lightbulb.cs
│ │ │ │ ├── Lightbulb.csproj
│ │ │ │ └── Program.cs
│ │ │ └── ProcessManager
│ │ │ ├── App.razor
│ │ │ ├── appsettings.Development.json
│ │ │ ├── appsettings.json
│ │ │ ├── Copier.cs
│ │ │ ├── Extensions.cs
│ │ │ ├── _Imports.razor
│ │ │ ├── Pages
│ │ │ │ ├── _Host.cshtml
│ │ │ │ ├── Jobs.razor
│ │ │ │ └── Logs.razor
│ │ │ ├── ProcessManager.csproj
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── launchSettings.json
│ │ │ ├── Shared
│ │ │ │ ├── MainLayout.razor
│ │ │ │ └── NavMenu.razor
│ │ │ ├── Startup.cs
│ │ │ ├── Storage.cs
│ │ │ ├── Supervision.cs
│ │ │ └── wwwroot
│ │ │ ├── css
│ │ │ │ ├── bootstrap
│ │ │ │ │ ├── bootstrap.min.css
│ │ │ │ │ └── bootstrap.min.css.map
│ │ │ │ ├── open-iconic
│ │ │ │ │ ├── font
│ │ │ │ │ │ ├── css
│ │ │ │ │ │ │ └── open-iconic-bootstrap.min.css
│ │ │ │ │ │ └── fonts
│ │ │ │ │ │ ├── open-iconic.eot
│ │ │ │ │ │ ├── open-iconic.otf
│ │ │ │ │ │ ├── open-iconic.svg
│ │ │ │ │ │ ├── open-iconic.ttf
│ │ │ │ │ │ └── open-iconic.woff
│ │ │ │ │ ├── FONT-LICENSE
│ │ │ │ │ ├── ICON-LICENSE
│ │ │ │ │ └── README.md
│ │ │ │ └── site.css
│ │ │ ├── favicon.ico
│ │ │ └── scripts.js
│ │ ├── HelloWorld
│ │ │ ├── App.config
│ │ │ ├── HelloWorld.csproj
│ │ │ └── Program.cs
│ │ ├── Observers
│ │ │ ├── Chat.Client
│ │ │ │ ├── App.config
│ │ │ │ ├── ChatClient.cs
│ │ │ │ ├── Chat.Client.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── Chat.Server
│ │ │ │ ├── App.config
│ │ │ │ ├── ChatRoom.cs
│ │ │ │ ├── Chat.Server.csproj
│ │ │ │ └── Program.cs
│ │ │ └── Chat.Shared
│ │ │ ├── Actors.cs
│ │ │ ├── Chat.Shared.csproj
│ │ │ └── Messages.cs
│ │ ├── Reentrant
│ │ │ ├── App.config
│ │ │ ├── Program.cs
│ │ │ ├── ReaderWriterLock.cs
│ │ │ └── Reentrant.csproj
│ │ ├── Shared.cs
│ │ └── Streams
│ │ ├── Chat.Client
│ │ │ ├── App.config
│ │ │ ├── ChatClient.cs
│ │ │ ├── Chat.Client.csproj
│ │ │ └── Program.cs
│ │ ├── Chat.Server
│ │ │ ├── App.config
│ │ │ ├── Chat.Server.csproj
│ │ │ ├── ChatUser.cs
│ │ │ └── Program.cs
│ │ └── Chat.Shared
│ │ ├── Chat.Shared.csproj
│ │ └── Messages.cs
│ └── Directory.Build.props
├── Source
│ ├── Directory.Build.props
│ ├── Directory.Build.targets
│ ├── Orleankka
│ │ ├── ActorGrainInterface.cs
│ │ ├── ActorMessage.cs
│ │ ├── ActorPath.cs
│ │ ├── ActorRef.cs
│ │ ├── ActorRefExtensions.cs
│ │ ├── ActorRefMiddleware.cs
│ │ ├── ActorSystem.cs
│ │ ├── Client
│ │ │ └── ClientActorSystem.cs
│ │ ├── ClientEndpoint.cs
│ │ ├── ClientObservable.cs
│ │ ├── ClientRef.cs
│ │ ├── GrainReferenceInternals.cs
│ │ ├── Http
│ │ │ ├── ActorRouteMapper.cs
│ │ │ ├── ActorRouteMapping.cs
│ │ │ ├── HttpActorEndpoint.cs
│ │ │ ├── HttpActorSystem.cs
│ │ │ └── MessageRouteMapping.cs
│ │ ├── IActorGrain.cs
│ │ ├── IClientEndpoint.cs
│ │ ├── LifecycleMessages.cs
│ │ ├── Meta
│ │ │ ├── Command.cs
│ │ │ ├── Event.cs
│ │ │ ├── Extensions.cs
│ │ │ ├── Message.cs
│ │ │ ├── Query.cs
│ │ │ └── Result.cs
│ │ ├── ObserverRef.cs
│ │ ├── Orleankka.csproj
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── Receive.cs
│ │ ├── ReceiveResult.cs
│ │ ├── ReferencedAssemblyHelper.cs
│ │ ├── StreamMessages.cs
│ │ ├── StreamPath.cs
│ │ ├── StreamRef.cs
│ │ ├── StreamRefExtensions.cs
│ │ ├── StreamRefMiddleware.cs
│ │ ├── StreamSubscription.cs
│ │ ├── Syntax.cs
│ │ └── Utility
│ │ ├── Annotations.cs
│ │ ├── DictionaryExtensions.cs
│ │ └── Requires.cs
│ ├── Orleankka.Client
│ │ ├── ClientOptions.cs
│ │ └── Orleankka.Client.csproj
│ ├── Orleankka.Http.AspNetCore
│ │ ├── Orleankka.Http.AspNetCore.csproj
│ │ └── RoutingExtensions.cs
│ ├── Orleankka.Legacy.Runtime
│ │ ├── ActorAttributes.cs
│ │ ├── Actor.cs
│ │ ├── Behaviors
│ │ │ ├── ActorBehavior.cs
│ │ │ ├── BehaviorExtensions.cs
│ │ │ ├── CustomBehavior.cs
│ │ │ ├── Exceptions.cs
│ │ │ └── Transition.cs
│ │ ├── Cluster
│ │ │ └── ClusterOptions.cs
│ │ ├── Dispatcher.cs
│ │ ├── Orleankka.Legacy.Runtime.csproj
│ │ └── Properties
│ │ └── AssemblyInfo.cs
│ ├── Orleankka.Runtime
│ │ ├── ActorActivator.cs
│ │ ├── ActorGrain.cs
│ │ ├── ActorGrainImplementation.cs
│ │ ├── ActorGrainMessages.cs
│ │ ├── ActorMiddleware.cs
│ │ ├── ActorRuntime.cs
│ │ ├── Behaviors
│ │ │ ├── Behavior.cs
│ │ │ ├── BehaviorMessages.cs
│ │ │ ├── State.cs
│ │ │ ├── StateMachine.cs
│ │ │ ├── Trait.cs
│ │ │ └── Transition.cs
│ │ ├── Cluster
│ │ │ ├── ClusterActorSystem.cs
│ │ │ ├── ClusterOptions.cs
│ │ │ └── DashboardIntegration.cs
│ │ ├── DispatchActorGrain.cs
│ │ ├── Dispatcher.cs
│ │ ├── Exceptions.cs
│ │ ├── InvokeMethodRequestExtensions.cs
│ │ ├── ObserverCollection.cs
│ │ ├── Orleankka.Runtime.csproj
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── Services
│ │ │ ├── ActivationService.cs
│ │ │ ├── BackgroundJobService.cs
│ │ │ ├── GrainInternals.cs
│ │ │ ├── ReminderService.cs
│ │ │ └── TimerService.cs
│ │ ├── StreamRefServerExtensions.cs
│ │ └── TaskResult.cs
│ └── Orleankka.TestKit
│ ├── ActivationServiceMock.cs
│ ├── ActorRefMock.cs
│ ├── ActorRuntimeMock.cs
│ ├── ActorSystemMock.cs
│ ├── BackgroundJobServiceMock.cs
│ ├── ClientObservableMock.cs
│ ├── Expectations.cs
│ ├── ExpressionExtensions.cs
│ ├── MessageSerialization.cs
│ ├── Meta
│ │ └── Extensions.cs
│ ├── ObserverCollectionMock.cs
│ ├── ObserverRefStub.cs
│ ├── Orleankka.TestKit.csproj
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── ReminderServiceMock.cs
│ ├── StreamRefMock.cs
│ ├── StreamSubscriptionMock.cs
│ └── TimerServiceMock.cs
├── Tests
│ ├── Directory.Build.props
│ ├── Orleankka.TestKit.Tests
│ │ ├── ActorRefMockFixture.cs
│ │ ├── ActorSystemMockFixture.cs
│ │ ├── BackgroundJobServiceMockFixture.cs
│ │ ├── Orleankka.TestKit.Tests.csproj
│ │ └── Properties
│ │ └── AssemblyInfo.cs
│ └── Orleankka.Tests
│ ├── Checks
│ │ ├── ActorPathFixture.cs
│ │ ├── ActorRefFixture.cs
│ │ ├── ClientRefFixture.cs
│ │ ├── DispatcherFixture.cs
│ │ ├── ObserverCollectionFixture.cs
│ │ ├── StreamPathFixture.cs
│ │ └── StreamRefFixture.cs
│ ├── CSharp9.cs
│ ├── Features
│ │ ├── Actor_behaviors
│ │ │ ├── BehaviorTester.cs
│ │ │ ├── Hierarchical_state_machine.cs
│ │ │ ├── Reusing_handlers_via_traits.cs
│ │ │ └── Switchable_behaviors.cs
│ │ ├── Actor_identity.cs
│ │ ├── Background_jobs.cs
│ │ ├── Externally_managed_lifecycle.cs
│ │ ├── Http_rpc
│ │ │ └── Request_response.cs
│ │ ├── Intercepting_requests.cs
│ │ ├── Message_based_timers.cs
│ │ ├── Observing_notifications.cs
│ │ ├── One_off_timers.cs
│ │ ├── Reentrant_messages.cs
│ │ ├── Reminders_idempotency.cs
│ │ ├── Request_response.cs
│ │ ├── State_persistence.cs
│ │ ├── Stream_references.cs
│ │ ├── Stream_subscriptions.cs
│ │ ├── Strongly_typed_actors.cs
│ │ └── Using_reminders.cs
│ ├── Legacy
│ │ └── Features
│ │ └── Actor_behaviors
│ │ ├── Behavior_failures.cs
│ │ ├── @Mocks.cs
│ │ ├── Reusing_handlers_via_traits.cs
│ │ └── Switchable_behaviors.cs
│ ├── Orleankka.Tests.csproj
│ └── Testing
│ ├── Converters.cs
│ ├── TestActions.cs
│ ├── TestActor.cs
│ ├── TestActorSystem.cs
│ └── Utility.cs
└── Tools
└── Tools.csproj
76 directories, 283 files
标签:
好例子网口号:伸出你的我的手 — 分享!
相关软件
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论