C# development services
We provide C# development services for companies building rule-heavy business systems. We design domain models, shared libraries and background processing, and modernize existing C# codebases with tested changes your developers can maintain.
01Capabilities
Where the C# code itself is the deciding factor
C# is the language for a .NET system's rules and behaviour. .NET covers platform choices; ASP.NET covers the web framework.
- Domain
Business systems where the rules are the product
We model order management, dispatch, inspection and service workflows, including automotive service operations. We make domain rules explicit for your developers to review and change.
- Jobs
Background processing and long-running work
We build queue consumers, scheduled jobs, and import and reconciliation pipelines. We review async and cancellation behaviour alongside the business logic, including how tasks complete and how work stops.
- Libraries
Shared domain libraries across several front ends
We build one C# implementation of domain rules for a web API, a worker service and a mobile client. The package boundary and versioning policy define how they share and update it.
- Modernization
Language-level modernization of existing C#
We modernize older codebases, including C# 5 or 6, with features and tooling compatible with the target framework. We introduce nullable reference types for compiler diagnostics and assess pattern matching, records, async changes and analyzers. This language-level work is part of legacy modernization.
02Case studies
Systems whose rules live in C#
Compare the data-recognition backend and reporting application to define your C# scope.
See all case studies- AutomationDoubling data-entry throughput with a custom recognition toolunicrew automated a manual data-entry bottleneck with a C# and AWS recognition tool, doubling the data sets the team processed each month.2xData sets processed per month
- AnalyticsAutomating Word and PowerPoint reporting for Barrett Values Centreunicrew designed and built a C# app to automate Barrett Values Centre's Word and PowerPoint reports, with automated tests for independent QA.
AutomotiveService Intelligence: App for vehicle maintenanceunicrew helped eAutoClub launch Service Intelligence, an app that works out what service a vehicle needs from how it is actually used.
03Fit
Where the fix sits: C#, the platform or another language
We scope C# work around the required business change, the language and runtime boundaries, and who will maintain the code. The choice may be a bounded refactor, platform work or another language.
| Your situation | What we recommend |
|---|---|
| A rule-heavy transactional system in a Microsoft estate | Use C#Strong typing supports explicit domain rules. We design async and concurrency behaviour, shared-library boundaries and the upgrade path around the system's maintenance needs. |
| Runtime, hosting, desktop or service workload decisions | .NET platform workOur .NET page covers platform architecture, runtime, hosting and non-web workloads. |
| Web application routes, authentication or Web Forms migration | ASP.NET web workOur ASP.NET page covers web framework architecture, routes, authentication and Web Forms migration. |
| A data or machine-learning pipeline | Build it in PythonChoose Python when its data and machine-learning libraries fit the pipeline. The library and integration requirements guide that choice. |
| A hard latency floor, a fixed memory budget, or code that runs on a device | C++ or CReview C++ for the performance-critical component and C for constrained hardware, then define how the component integrates with the wider system. |
| A working internal tool in another language, and a corporate standard says move it to C# | Keep the working toolKeep the existing tool where it meets the business and maintenance requirements. Assess a move to C# against a specific integration, support or ownership benefit. |
Scope
We own the domain model, async and concurrency behaviour, and upgrade path, with code your developers can keep changing. We work under an ISO 27001:2022 certified information-security management system. unicrew has been building software since 2012, with 100+ senior in-house engineers across six countries.
Nullable reference types are the C# upgrade we run before any framework move. The compiler then tracks which references may be null, so engineers can change code with confidence. We switch them on step by step, alongside feature work.
Oleksandr TrofimovChief Technology Officer, unicrew04Delivery
Picking up a codebase written against an older C#
A C# modernization starts with the build configuration and tested business behaviour. We then introduce diagnostics and fix correctness issues in a controlled sequence.
- Inventory compiler and build settingsWe inspect the target framework, language version, warning settings and analyzer configuration, including suppressed warnings. This establishes which language features and diagnostics fit the codebase.
- Test the business-critical behaviourWe write characterisation tests around the behaviour the business depends on before refactoring. The tests provide a baseline for verifying code changes through our QA and test automation work.
- Introduce nullable analysis and analyzers graduallyWe enable nullable reference types and analyzers at warning level, with an agreed warning count that can only decrease. The diagnostics become part of ongoing feature work.
- Fix correctness before performanceWe examine blocking on async code, fire-and-forget tasks, disposables that outlive their scope, and the shared-state memory model. We resolve correctness issues before performance tuning.
05Client voices
The client's version of these engagements
Artelogic invested time to understand our needs and has subsequently proposed appropriate solutions. In the end, the team’s quality deliverables have created value for cost. The EDI tool generates significant daily revenue and helps us solve order collection issues.
I’ve been impressed by their work ethic and how they put me as the customer first. They’re always ready to jump in and go the extra mile. They put great effort into communicating to ensure that tasks are updated in a timely manner. The team keeps us apprised of exactly what they’re working on.
06Stack
What a C# system is usually wired into
C# uses .NET as its platform and ASP.NET for web applications. SQL Server and Azure are separate data and hosting choices around the codebase.
07Questions
The questions that decide the scope
Separate language changes from platform work, then agree the ownership and commercial scope for the C# codebase.
Yes. Our C# engineers can take ownership of a defined codebase scope or work alongside your developers with delivery coordination.
An architect outside the delivery team reviews the design. Our QA practice supports verification of domain rules and async behaviour.
Choose managed teams for ongoing C# work with delivery coordination, or custom software development for a defined project outcome.
Yes, when newer language features and diagnostics address the codebase's needs.
We check compatibility against the target framework and current build. Nullable reference types add compile-time warnings about possible null references; the annotations do not change runtime behaviour. We sequence them with characterisation tests and existing feature work.
Choose around the existing estate and the developers who will maintain the new system.
C# fits Active Directory, SQL Server and Windows infrastructure. Where operations, monitoring and the team's experience already centre on the JVM, Java supports that continuity. Where neither stack is established, we evaluate the domain and the team's ability to maintain the result.
We start with a scoping call with an engineer.
For an existing codebase, we ask for read access to the repository and build output. You receive a written recommendation on what to do first, what stays as it is and where the technical risk is concentrated.
Most engagements start within two to four weeks.
Pricing follows the C# work we agree to deliver, using three engagement models.
- Time and materials: billed hourly and quoted per project.
- Fixed price: outcome based and quoted per project.
- Team extension: billed monthly per team member.
Fixed price is agreed after the initial assessment defines the scope.
Plan the next change to your C# codebase
Tell us what the codebase needs to do next. We will review the language version, design and build output, and recommend a first scope with what to change and what to keep.
