Technology and how we build

Microsoft .NET, done properly, for a long time. You don't need to know any of this to work with us, but if you or your IT team want to see what's under the bonnet, here it is.

1996 coding since
100+ clients
400K+ lines of code looked after
.NET 10 current platform

Every generation of .NET

Richard Wilde has been writing software since 1996, and building business systems on Microsoft .NET since he founded Wildesoft in 2004. The systems in our case studies span every generation of .NET, from .NET Framework web applications and Windows desktop software to the latest ASP.NET Core on .NET 10.

That range matters. It means we can start something new on the current platform, and we can also take on a system written fifteen years ago, understand it quickly and move it forward without stopping the business that depends on it.

The LM3 solution open in Rider: 16 projects including the website, background services for address lookup, bulk email, indicative LM3 and SendGrid events, seven test projects and an Aspire app host, with a Razor Page's C# in the editor

LM3

The LM3 solution: the website, its background services and seven test projects, run together with .NET Aspire.

The stack

Applications

  • C#
  • ASP.NET Core on .NET 8 and .NET 10
  • Razor Pages, MVC and Web API
  • .NET Framework 4.8 for long-serving systems
  • Windows desktop (WinForms) applications

Background work

  • Worker services and Windows services
  • Scheduled jobs and data syncs
  • Webhook and queue processing, including Amazon SQS
  • .NET Aspire to run multi-service systems together

Data

  • Microsoft SQL Server
  • MariaDB and MySQL
  • Dapper and Entity Framework
  • Excel imports and exports, with every problem reported at once
  • PDF documents, such as quotes and receipts

Integration

  • REST APIs, built and consumed
  • Webhooks
  • OAuth 2 and token-based sign-in
  • Card payments with 3D Secure, and PayPal
  • Email delivery and tracking through SendGrid

Front end

  • Bootstrap and jQuery
  • Mobile-friendly, accessible pages
  • Interactive maps and address lookup
  • Seven-language user interfaces

Hosting

  • IIS on Windows Server
  • Amazon Web Services
  • Microsoft Azure
  • Scripted, repeatable deployments

Built to be joined up

Joined-up systems start with how the code is designed. Each piece of information has one home, and other systems ask for it through an API instead of keeping their own copy. Work that shouldn't keep someone waiting, such as looking up addresses, sending emails, syncing with Xero or collecting delivery reports, runs in background services. Every connection logs what it does, and tells someone when it fails.

Some of the systems we connect to today: Xero, webCRM, Freshdesk, Princity, OrderWise, PayPal, SendGrid, Amazon Web Services and partners' own order feeds. Every external API we use is kept in a shared, organised collection of test requests, so a connection can be checked in minutes when the other side changes.

Bruno, an API testing tool, with a collection of requests for each system and the Nutricalc API returning a planned manure diary report as a PDF

CXCS

Every system has its own collection of API requests, kept alongside the code. Here the Nutricalc API returns a farm's planned manure diary, ready to print.

See it for yourself: our live integration example shows the caching and failure handling described here, and the admin cost calculator shows what manual work is costing you.

Modernising without the big bang

Rewriting a working system from scratch is expensive, risky and usually unnecessary. We modernise a step at a time, alongside new features, so the business never has to stop. For example:

ACE Embroidery

We moved the API and order feed to .NET 8, which fixed failing secure connections. We're replacing an unmaintained data library area by area, and removed unused projects and integrations.

iTS

We upgraded the projects, added automated code-quality checks and retired old pricing years. The code is 7,400 lines smaller than two years ago, even with 70+ new features.

CXCS

A desktop application now talks to a central API, with secure sign-in, central logging, automatic crash reports and a warning when someone runs an out-of-date copy.

LM3

When a full rebuild was the right answer, we built it on the current .NET, with a dedicated service to move every existing customer and their projects across.

This website is an example too. It has just moved from an old ASP.NET MVC site onto .NET 10.

How we keep systems reliable

  • Staging environments. Every change is tried on a copy of the system and signed off by you before it goes live.
  • Automated tests. From individual calculations to whole user journeys in a real browser. LM3's calculator is checked against the master spreadsheet.
  • Source control. Every change is recorded, explained and can be rolled back.
  • Scripted deployments. Releases are repeatable, with no manual steps to forget.
  • Logging and alerts. Errors, crashes and failed connections are reported to us, usually before anyone has to tell us.
  • Performance profiling. Slow pages are measured and pinpointed rather than guessed at.

Central logging for Nutricalc: every API call with its timing, user and result, and signals down the side for errors, warnings, app crashes and each service

CXCS

Central logging for CXCS: every API call is recorded with how long it took and who made it, with separate views for errors, crashes and each service.

AI-assisted, human-reviewed

We use AI tools every day to write code faster and to produce more thorough tests than was practical before, so more gets done for your budget. AI doesn't make the decisions. The design, the business rules and the review of every change are Richard's, built on almost thirty years of writing software. We can also add practical AI features to your own systems, and take over AI or no-code builds that have outgrown themselves.

Security and your data

  • HTTPS everywhere, secure sign-in and role-based access, so each person only sees what their role allows.
  • Card payments are handled by the payment provider, with 3D Secure. We never store card details.
  • Connections to services such as Xero use their official, approved sign-in. Your passwords are never stored in our systems.
  • Regular backups, and data handled with UK GDPR in mind.

Got a .NET system that needs a new home?

Whether it's an older application nobody wants to touch, or a new system that needs building properly, call 07884 433240 or send us a message.