Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unified IMessageBus interface #16

Merged
merged 27 commits into from
Oct 3, 2022
Merged

Unified IMessageBus interface #16

merged 27 commits into from
Oct 3, 2022

Commits on Sep 22, 2022

  1. Configuration menu
    Copy the full SHA
    ddb1351 View commit details
    Browse the repository at this point in the history
  2. Add initial event implementation to message bus DI

    The new DI project is intended for usage with Microsoft.Extensions.DependencyInjection, and provides the AddMessageBus extension method.
    
    This commit implements the event side of the bus (Observe/Notify) and ports all tests from the EventStream to ensure behavior compatiblity.
    kzu committed Sep 22, 2022
    Configuration menu
    Copy the full SHA
    19eff42 View commit details
    Browse the repository at this point in the history
  3. Add initial command implementation to message bus DI

    The existing code from CommandBus was ported pretty much entirely,
    
    Removed restriction on Notify for externally produced events, since subscribers can still get it in either case, so this adds consistency.
    kzu committed Sep 22, 2022
    Configuration menu
    Copy the full SHA
    2f0ff8f View commit details
    Browse the repository at this point in the history
  4. Create a unified MessageBus implementation based on IServiceProvider

    This new implementation is more performant than the original CommandBus for public types, since it relies on dynamic dispatch which is faster, as meassured by the new benchmarks project. For the non-public types scenarios, it performs like the original command bus, which is great too and only incurs a downcast.
    kzu committed Sep 22, 2022
    Configuration menu
    Copy the full SHA
    bab1801 View commit details
    Browse the repository at this point in the history
  5. Unify all implementations with Core, create MEF/DI adapters

    This finally brings all hosting scenarios to use the same implementation and finally removes the legacy ICommandBus and IEventStream.
    kzu committed Sep 22, 2022
    Configuration menu
    Copy the full SHA
    407c383 View commit details
    Browse the repository at this point in the history
  6. SImplify CanExecute implementation and handler registration

    This removes the need to register command handlers with more than just the handler interface they implement.
    kzu committed Sep 22, 2022
    Configuration menu
    Copy the full SHA
    fb39ca0 View commit details
    Browse the repository at this point in the history
  7. Fix test warnings

    kzu committed Sep 22, 2022
    Configuration menu
    Copy the full SHA
    0887cca View commit details
    Browse the repository at this point in the history
  8. Add documentation on the MEF component exports

    Document how to decorate the default message bus too.
    kzu committed Sep 22, 2022
    Configuration menu
    Copy the full SHA
    96e66e1 View commit details
    Browse the repository at this point in the history
  9. Fix doc comment warnings

    kzu committed Sep 22, 2022
    Configuration menu
    Copy the full SHA
    d0d3d72 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    6ae2f6b View commit details
    Browse the repository at this point in the history

Commits on Sep 23, 2022

  1. Configuration menu
    Copy the full SHA
    654cc55 View commit details
    Browse the repository at this point in the history
  2. Add automatic message bus component registrations

    This adds an incremental source generator to the DI package that
    discovers services annotated with [Service(lifetime)] so that they
    can be properly registered in the service collection with the
    right lifetime as well as proper instantiation and registration of the
    required interfaces for the bus to work properly.
    kzu committed Sep 23, 2022
    Configuration menu
    Copy the full SHA
    0186bd2 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    7726b56 View commit details
    Browse the repository at this point in the history
  4. Rename matrix lookup job/steps

    kzu committed Sep 23, 2022
    Configuration menu
    Copy the full SHA
    b9fb817 View commit details
    Browse the repository at this point in the history
  5. Always push to CI feed from builds

    Since the os matrix is configurable now and we use windows-latest, we'd otherwise never push a CI package
    kzu committed Sep 23, 2022
    Configuration menu
    Copy the full SHA
    effdc01 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    1ed0f96 View commit details
    Browse the repository at this point in the history

Commits on Sep 26, 2022

  1. Configuration menu
    Copy the full SHA
    dd61a52 View commit details
    Browse the repository at this point in the history
  2. Simplify build

    kzu committed Sep 26, 2022
    Configuration menu
    Copy the full SHA
    c2e26f7 View commit details
    Browse the repository at this point in the history
  3. Switch to a package reference for dependency

    This will make it easier to keep the dependency up to date with dependabot
    kzu committed Sep 26, 2022
    Configuration menu
    Copy the full SHA
    a331b7e View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    9d9266e View commit details
    Browse the repository at this point in the history

Commits on Sep 27, 2022

  1. Configuration menu
    Copy the full SHA
    80f4978 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    62939f6 View commit details
    Browse the repository at this point in the history
  3. Bump to latest DI.Attributed

    kzu committed Sep 27, 2022
    Configuration menu
    Copy the full SHA
    1d6e625 View commit details
    Browse the repository at this point in the history
  4. Target dependency specifically to our own TF

    Packaging projects don't consider the TF in the project
    itself to be meaningful for declaring dependencies.
    Not declaring the dependency as targeting any TF,
    however, causes the transitive dependency to not be
    restored at all. So we make it TF specific by setting the
    TF to the project's TF.
    kzu committed Sep 27, 2022
    Configuration menu
    Copy the full SHA
    0d49934 View commit details
    Browse the repository at this point in the history

Commits on Oct 3, 2022

  1. Configuration menu
    Copy the full SHA
    53b0de3 View commit details
    Browse the repository at this point in the history
  2. Showcase excluding service attribute

    Since we get it from the one made public via a
    partial class in the sample project.
    kzu committed Oct 3, 2022
    Configuration menu
    Copy the full SHA
    f24dc43 View commit details
    Browse the repository at this point in the history
  3. Isolate VS/MEF tests from the rest, to avoid failures

    Now that the latest DI generator supports MEF attributes,
    we shouldn't test in teh same proect types annotated with
    MEF attributes with the actual MEF tests since we'd get
    duplicate registrations in some cases.
    kzu committed Oct 3, 2022
    Configuration menu
    Copy the full SHA
    85cb61d View commit details
    Browse the repository at this point in the history