There are many existing pagination solutions for UI frameworks, but few solutions for paginating data in memory within the .NET runtime environment. In many use cases data sets are filtered down to a small size before they are even fetched from the database. However, sometimes we might need APIs that could potentially return large sets of data. For example, a search tool could return hundreds or even thousands of matches, and in this scenario it would be useful to get the data from the database one page at a time.
We have recently been migrating our compliance platform from .NET 4.7 to .NET Core 3.
The existing code uses Autofac to manage inversion of control and we wanted to stick with it for now, instead of using the built-in DI middleware that comes packaged with .NET Core 3.
Part of the Autofac container building process involves scanning assemblies within the bin folder for plugins. The existing code contained a section that looked something like:
For this post I’m going to explore some of the ways that have helped me and may help you become more a productive dev. I’m not going to talk about practices such as Agile, Scrum or DevOps because those are focussed on teams. In this post I want to focus on the individual developer and how they can improve their own productivity.
The Developer Let’s start with the obvious, but often overlooked (and most important) area, the developer.
I’ve recently started working on a greenfield project to replace an existing platform we have. When starting new projects in recent years I’ve applied more of a pure DDD (Domain Driven Design) architectural approach. One of the fundamental ideas within DDD is the ValueObject, a term coined by Martin Fowler. There is a great article about implementing value objects that you should check out if you’re not familiar with them.
For most of my career, I have worked as a one-person dev team. I was essentially a full stack developer before I had even heard of the title!
It wasn’t until relatively recently that I started to work in dev teams of 2 or more people. In fact, our dev team is still quite small at just 6 people (although we plan to increase this to about 8 very soon).