As the years went by, we realized each project had a fair amount in common. Particularly client/server, data-driven products. Rather than continue to develop the same basic code for models, network stacks and threading, we’ve decided to create our own framework to bring with us from project to project.

BedRock is a tightly-coupled set of APIs based on a loosely coupled set of frameworks, targeted specifically at data modeled asynchronous client-server development.

Sound a bit confusing? We didn’t try to stuff it with buzzwords, but we did try to appeal to a broad audience and usage. The loosely coupled frameworks are the lower-level basic tools to handling data models, connection streams and independent logical execution handling. The APIs build on this foundation and are purpose-built for a variety of use-cases.

Why did we take this approach? Because we firmly believe in building successive layers in our large applications, that eventually cohere into easy-to-utilize abstractions that seamlessly perform large tasks in a specific way AND we also believe that different problems require different solutions. This model allows us to provide extremely flexible building blocks underneath inflexible specification layers that can either be mixed and matched or re-implemented as needed. Each successive layer is modular, yet still leanly focused on it’s purpose. The end product is an API module that can achieve it’s intended goal in a myriad of ways, remains extensible and stays on target.

BedRock is a work in progress, being specifically created for an implementation of sHARDs, our Client-Server-Client model.

BedRock Features:
Data Library:
APIs, with framework to support any ADO.NET or the SQLitePCL connections
Interoperational with MVVM’s INotifyProperty
Data Contexting model compatible with EntityFramework, simple ORM and standard query-driven manual models.
A complete model, source, access layer set