Dasync
NuGet publisher profile
Packages (27)
AsyncEnumerator
Introduces IAsyncEnumerable, IAsyncEnumerator, ForEachAsync(), and ParallelForEachAsync() GitHub: https://github.com/Dasync/AsyncEnumerable PROBLEM SPACE Helps to (a) create an element provider, where producing an element can take a lot of time due to dependency on other asynchronous events (e.g. wait handles, network streams), and (b) a consumer that processes those element as soon as they are ready without blocking the thread (the processing is scheduled on a worker thread instead). EXAMPLE using Dasync.Collections; static IAsyncEnumerable<int> ProduceAsyncNumbers(int start, int end) { return new AsyncEnumerable<int>(async yield => { // Just to show that ReturnAsync can be used multiple times await yield.ReturnAsync(start); for (int number = start + 1; number <= end; number++) await yield.ReturnAsync(number); // You can break the enumeration loop with the following call: yield.Break(); // This won't be executed due to the loop break above await yield.ReturnAsync(12345); }); } // Just to compare with synchronous version of enumerator static IEnumerable<int> ProduceNumbers(int start, int end) { yield return start; for (int number = start + 1; number <= end; number++) yield return number; yield break; yield return 12345; } static async Task ConsumeNumbersAsync() { var asyncEnumerableCollection = ProduceAsyncNumbers(start: 1, end: 10); await asyncEnumerableCollection.ForEachAsync(async number => { await Console.Out.WriteLineAsync(
quot;{number}"); }); } // Just to compare with synchronous version of enumeration static void ConsumeNumbers() { var enumerableCollection = ProduceNumbers(start: 1, end: 10); foreach (var number in enumerableCollection) { Console.Out.WriteLine(quot;{number}"); } }Dasync.AspNetCore
HTTP fabric for ASP.NET Core applications
Dasync.AzureStorage
Better abstractions of WindowsAzure.Storage.
Dasync.Serialization
Serialization contracts for D-ASYNC.
Dasync.ValueContainer
Used by D-ASYNC serialization.
Dasync.AsyncStateMachine
Used by the D-ASYNC Execution Engine.
Dasync.Proxy
Creates proxy classes at runtime from interfaces and classes of microservices powered by D-ASYNC.
Dasync.Serializers.StandardTypes
Deprecated serialization assets.
Dasync.Serialization.Json
JSON serializer for D-ASYNC.
Dasync.EntityFrameworkCore.Extensions.Projections
Decouples the read model from entities themselves. The read model is automatically generated at runtime from given projection/view interfaces. Essentially works like views for tables in RDBMS. See the project page for examples.
Dasync.Serialization.DasyncJson
Deprecated extended JSON serializer for D-ASYNC.
Dasync.ExecutionEngine
The D-ASYNC Execution Engine.
Dasync.Fabric.AspNetCore
Binds together all necessary components to run D-ASYNC on ASP NET Core with minimal effort.
Dasync.Accessors
Used by the D-ASYNC Execution Engine.
Dasync.Modeling
Describes microservices, their queries, commands, and events.
Dasync.EETypes
Contracts for the core and extensions.
Dasync.DependencyInjection
DI-related abstractions and helpers specific to D-ASYNC infrastructure.
Dasync.Serializers.EETypes
Deprecated serialization assets.
Dasync.Hosting.AspNetCore
Hosting environment for D-ASYNC microservice ecosystem that processes HTTP requests.
Dasync.Communication.InMemory
In-memory communication for D-ASYNC microservices is used for development purposes.
Dasync.Serializers.DomainTypes
Deprecated serialization assets.
Dasync.Communication.Http
A client for commands and queries over HTTP (no events). Requires an HTTP hosting on the server side.
Dasync.Fabric.InMemory
Binds together all necessary components to run D-ASYNC in-memory for advanced development purposes.
Dasync.Persistence.InMemory
In-memory state persistence for D-ASYNC microservices is used for development purposes.
Dasync.Communication.RabbitMQ
Enables use of RabbitMQ queues to execute commands and queries, and exchanges to publish and listen to events between microservices powered by D-ASYNC.
Dasync.Persistence.Cassandra
Cassandra provides high availability and scalability state storage for D-ASYNC microservices.
Dasync.Persistence.FileSystem
File System-based state persistence for D-ASYNC microservices is useful with NAS drives.