Skip to content
AbstractBinding

AbstractBinding

AbstractBinding Wiki

AbstractBinding's vision is a C# library that provides developers with an abstract binding layer between their libraries and a client/service. For instance, GRPC is a great tool for quickly implementing a proto-type RPC, but what it lacks is persistence when the RPC structure needs refactoring in the life cycle of the software. The idea is to create a versatile library that allows the developer to register binding operations of interfaces and classes at the application start and allow the library to handle client/service requests, responses, and notifications.

This Wiki will be used to document the test driven development of the AbstractBinding library.

Definitions

  • Binding operation: Object event subscribe, event unsubscribe, event notification, property value get, property value set, and method invoke.
  • Request: Instruction for recipient to perform.
  • Response: Result of request performed by recipient.
  • Registered object: Object whose binding operations are registered with abstraction layer.
  • Service layer: Abstraction layer between service and registered objects.
  • Client layer: Abstraction layer between registered objects and client.
  • Service: Implementation that receives client requests to invoke on recipient and provides callback notification to the client.
  • Client: Implementation that receives sender requests to send to service and provides callback notification to the sender.

Features

Service Abstraction Layer

AbstractBinding will provide a layer between any service and the custom objects to be exposed on that service. This additional layer will allow you to decouple the service from your libraries, additionally simplifying the service and giving you the ability to change services easily.

Client Abstraction Layer

AbstractBinding will also provide a layer between the application and client. Again, this decouples the application objects from the client with the intent of code re-use for the common objects used across your client and service application.

Object Bindings

AbstractBinding will provide the following object bindings:

  • Events
  • Properties
  • Methods

Future Features

  • Bindings
    • Property Indexers
    • Overloaded methods

Documentation

Use Cases

Requirements

Test Cases

API