Skip to content
SERVICE

.NET and ASP.NET Core Development

We build business systems on .NET: ERP and back-office applications, web applications, Web APIs, background jobs and integrations. C# and SQL Server are the core of most of what we deliver, and we take on both new builds and existing .NET systems that need continuing development.

WHAT THIS INVOLVES

The scope, and what has to get right.

  • BUILD New systems on current .NET. Applications built on current .NET rather than on whatever was current when the project started, so the platform is still supported in five years.
  • INHERIT Existing .NET systems. Taking over a codebase someone else wrote, including older .NET Framework applications, and continuing development on it rather than insisting on a rewrite.
  • SUPPORT Ongoing development. Most of our .NET work is long-running: the same system, extended year after year, with the people who built a module still maintaining it.
WHAT WE BUILD

What we build on .NET

01

ERP and business systems

Order, inventory, purchasing and accounting systems where the business logic is the hard part.

Read more
02

Web applications

Internal tools, customer portals and multi-user applications running against a shared database.

Read more
03

Web APIs and integrations

Services that other systems call, and the integrations that connect yours to trading partners, marketplaces and accounting.

Read more
04

SaaS products

Multi-tenant products where one deployment serves many customers, with tenant isolation designed in from the start.

Read more

Background jobs and scheduled work are part of every one of these. They are usually where the real processing happens, and they are the part most often left out of a plan.

THE STACK

What we actually work in

These are the parts of the .NET platform our delivered systems run on. Each one appears in the stack of a system we have built, rather than in a list of things we could pick up.

  • .NET 8 Current .NET. The target for new builds and for systems moving off .NET Framework.
  • CORE Cross-platform .NET. The runtime underneath current ASP.NET applications and services.
  • ASP.NET ASP.NET MVC. The web framework behind most of the business applications we maintain.
  • C# C#. The language almost all of our back-end work is written in.
  • EF Entity Framework. Used where an object model earns its keep, typically for application data.
  • DAPPER Dapper. Used where the query matters more than the object model, typically for reporting and high-volume reads.
  • WEB API Web API. For services consumed by front ends, mobile applications and other systems.
  • SQL SQL Server. The database behind most of what we build, including the reporting work below.
  • PGSQL PostgreSQL. Used where a product or client is standardised on it, including a multi-tenant SaaS platform we build.
  • QUARTZ Quartz.NET. For scheduled and recurring background work inside an application.
DATABASE WORK

SQL Server work, not just application code

On business systems the database is usually where the difficulty lives. We do schema design, stored procedures, and the query work that decides whether a screen takes a moment or a minute.

Reporting is treated as its own problem. That means data marts built for the questions people actually ask, and read-only reporting replicas so that analysis cannot slow down the system taking orders.

Our ERP AI assistant case study is the clearest example of that data-mart work: refreshes that load into staging tables and swap in one transaction behind a row-count guard, so a failed refresh cannot leave a reporting table empty.

ENGAGEMENTS

How the work is usually structured

Fixed-scope builds, where the deliverable is well enough understood to agree up front. These suit a defined module, an integration, or a first version.

Ongoing development and support, which is how most of our .NET work actually runs: a system in production that keeps being extended. That side is covered on IT support and maintenance.

Taking over an existing .NET system, including older applications that need to move forward rather than be replaced. Where that means moving off .NET Framework, the approach is on legacy ASP.NET modernization.

HOW WE BUILD IT

Inside the system, not bolted on.

01

Current platform for new work

New builds target current .NET, because a system started on an already-old version inherits a migration before it ships.

02

The database designed, not accumulated

Schema and queries are designed for how the data will actually be read, rather than growing one column at a time until reporting becomes impossible.

03

Inherited code read before it is changed

On a system someone else wrote, the first work is understanding what it does. Rewriting what you have not understood is how working behaviour gets lost.

ANCHOR CASE STUDY

Maintaining and extending a lone worker safety SaaS platform

A US LONE WORKER SAFETY SAAS PLATFORM · WORKFORCE SAFETY SAAS
  • Found and fixed a structural multi-tenant flaw: Identified a structural issue in how the inherited codebase isolated data between tenant companies, and corrected the isolation model so each company's safety and account data stays properly separated on shared infrastructure.
  • Automated missed-checkout detection: A background process continuously watches for missed checkouts with no manual oversight, triggering escalation in near real time rather than waiting for someone to notice.
  • Added an automated phone check-out flow: Built a phone-based IVR flow through SignalWire: the system calls the worker, plays safety prompts, and confirms safety through a keypress, alongside the existing push and SMS channels.
  • Subscription billing kept self-correcting: Chargify handles recurring billing with card capture fully delegated to its hosted pages, and a scheduled job syncs subscription state daily, deactivating employees at expired companies automatically.
  • Added a background-check integration: Layered in PeopleConnect background-check lookups with per-user monthly usage caps, extending the platform's screening capability without disrupting the core monitoring engine.
Read the full case study

Also relevant: A profitability and re-marketing system for a US Amazon seller , Order-to-cash ERP for a US orthotic and prosthetic manufacturing lab

QUESTIONS

Common questions.

Do you take over existing .NET codebases?

Yes, and a good share of our work starts that way. We read the system before changing it, because the undocumented behaviour in a working application is usually the part that matters most.

What is the difference between .NET Framework and .NET 8?

.NET Framework is the older Windows-only platform that is no longer gaining features. .NET 8 is the current cross-platform line. The practical issue is dependencies: a Framework application tied to Windows-only components needs those addressed before it can move.

SQL Server or PostgreSQL?

Whichever your system already runs on, or whichever your hosting and team can support. Most of our work is on SQL Server, and we build on PostgreSQL where a product is standardised on it.

How do we start?

Tell us what the system has to do, what it connects to, and whether it already exists. We will tell you what we think the work involves before anyone commits to a scope.

LET'S TALK

Have a .NET system that needs building, or one that needs someone to take it over?

Tell us what it runs on today and what it has to connect to, and we will tell you what the work actually involves.

Start a project