When we started working with .NET Core In 2017, and with EF Core in its infancy, there was a shortage of fully-fledged, efficient, DB-first ORM’s (Object Relational Mapper) built specifically around .NET Core. As this is a core part of our development workflow, we decided that if we were to seriously bring .NET Core in our stack, we needed to create our own base libraries from scratch. And that’s how Paradigm Framework was born.
Our main concern was putting together a pack of service libraries with basic, project-agnostic functionalities such as dependency injection, object mapping and repository management. We also needed a robust ORM that we could use to interact seamlessly with our persistence layers, abstracting. The ORM needed to be optimized for performance and scalability, remaining agnostic of the database engine itself.
The first challenge that we found with Paradigm was adding support for NoSQL. Because of big data and machine learning workflows, our storage layer needed to be high-performance and high-availability, in order to handle huge data throughputs efficiently. But NoSQL databases are non-relational, and an ORM needs to go a long way before coupling with such a system. This, paired with high multithreading capabilities to leverage the NoSQL engine presented a number of challenges that we had to overcome before we ended up with something that truly worked in the real world. And we found a way: so much so, that we were invited to Scylla Summit 2018 to share our experience and give insight on our integration.
Released under an MIT license and fully available on GitHub, we made Paradigm Framework available from day zero. Users are welcome to clone, branch and fork our codebase to their heart’s content, and we are always happy to receive questions, pull requests and collaboration opportunities.
As frequent open source users, we realize documentation is key for libraries to go beyond home usage. Documentation allows users to integrate packages into their own software, allowing programmers to further customize and modify the underlying code to better suit their specific needs. That’s why we made sure the Paradigm Framework was clearly documented, making the resources and examples available in its main website.