FreedomDev
TeamAssessmentThe Systems Edge616-737-6350
FreedomDev Logo

Your Dedicated Dev Partner. Zero Hiring Risk. No Agency Contracts.

201 W Washington Ave, Ste. 210

Zeeland MI

616-737-6350

[email protected]

FacebookLinkedIn

Company

  • About Us
  • Culture
  • Our Team
  • Careers
  • Portfolio
  • Technologies
  • Contact

Core Services

  • All Services
  • Custom Software Development
  • Systems Integration
  • SQL Consulting
  • Database Services
  • Software Migrations
  • Performance Optimization

Specialized

  • QuickBooks Integration
  • ERP Development
  • Mobile App Development
  • Business Intelligence / Power BI
  • Business Consulting
  • AI Chatbots

Resources

  • Assessment
  • Blog
  • Resources
  • Testimonials
  • FAQ
  • The Systems Edge ↗

Solutions

  • Data Migration
  • Legacy Modernization
  • API Integration
  • Cloud Migration
  • Workflow Automation
  • Inventory Management
  • CRM Integration
  • Customer Portals
  • Reporting Dashboards
  • View All Solutions

Industries

  • Manufacturing
  • Automotive Manufacturing
  • Food Manufacturing
  • Healthcare
  • Logistics & Distribution
  • Construction
  • Financial Services
  • Retail & E-Commerce
  • View All Industries

Technologies

  • React
  • Node.js
  • .NET / C#
  • TypeScript
  • Python
  • SQL Server
  • PostgreSQL
  • Power BI
  • View All Technologies

Case Studies

  • Innotec ERP Migration
  • Great Lakes Fleet
  • Lakeshore QuickBooks
  • West MI Warehouse
  • View All Case Studies

Locations

  • Michigan
  • Ohio
  • Indiana
  • Illinois
  • View All Locations

Affiliations

  • FreedomDev is an InnoGroup Company
  • Located in the historic Colonial Clock Building
  • Proudly serving Innotec Corp. globally

Certifications

Proud member of the Michigan West Coast Chamber of Commerce

Gov. Contractor Codes

NAICS: 541511 (Custom Computer Programming)CAGE CODE: oYVQ9UEI: QS1AEB2PGF73
Download Capabilities Statement

© 2026 FreedomDev Sensible Software. All rights reserved.

HTML SitemapPrivacy & Cookies PolicyPortal
  1. Home
  2. /
  3. Technologies
  4. /
  5. .NET
Core Technology Stack

.NET Development Services for Enterprise Applications

Microsoft's .NET platform powers the backend systems behind the Fortune 500 — banking transactions, healthcare records, manufacturing ERP, logistics orchestration. FreedomDev has built and maintained enterprise .NET applications for over 20 years, from the original .NET Framework 1.1 through today's .NET 8 LTS. We handle the full lifecycle: greenfield development on .NET 8, migration from legacy .NET Framework 4.x, microservices decomposition with Azure and Docker, and long-term maintenance of the systems your business depends on.

.NET
20+ Years Microsoft .NET Ecosystem
.NET Framework Through .NET 8 Migration Specialists
Azure Architecture & Deployment
Enterprise C# and ASP.NET Core
Zeeland, Michigan (Grand Rapids Metro)

.NET 8 for Modern Enterprise Application Development

.NET 8 is a Long Term Support release backed by Microsoft through November 2026, and it represents the culmination of a platform transformation that began with .NET Core in 2016. The framework is fully cross-platform — it runs on Windows, Linux, and macOS with identical behavior. It ships with Minimal APIs for lightweight HTTP services, full MVC for complex web applications, gRPC for high-performance inter-service communication, SignalR for real-time WebSocket connections, and Blazor for building interactive web UIs in C# instead of JavaScript. Kestrel, the built-in web server, consistently benchmarks in the top tier of the TechEmpower framework benchmarks, handling millions of requests per second on commodity hardware. The hosting model is flexible: deploy to Azure App Service, AWS Elastic Beanstalk, a Kubernetes cluster, or a $5/month Linux VPS — the same Docker image works everywhere. The SDK ships with project templates for every application type, a built-in dependency injection container that most enterprise teams never need to replace, and middleware pipeline composition that makes request processing transparent and testable. This is not the same .NET that required Windows Server and IIS to run a web application.

The performance story is concrete and measurable. .NET 8 introduced native Ahead-of-Time (AOT) compilation, which produces self-contained binaries that start in milliseconds instead of seconds — critical for serverless workloads on Azure Functions or AWS Lambda where cold start latency directly impacts user experience and cost. The garbage collector has been refined across every release since .NET Core 3.0, with regions-based GC reducing pause times and .NET 8 adding dynamic PGO (Profile-Guided Optimization) that the runtime uses to recompile hot paths during execution, delivering performance gains of 20-40% on real-world workloads without any code changes. System.Text.Json is now the default serializer, and in .NET 8 it supports source generation for zero-reflection serialization — eliminating one of the biggest AOT compatibility hurdles. For enterprise applications processing high transaction volumes — financial calculations, real-time inventory updates, telemetry ingestion — these improvements compound into measurable cost savings on infrastructure. Teams regularly report cutting their Azure compute spend by 30-50% after migrating from .NET Framework to .NET 8, purely from the runtime performance improvements and the ability to run on smaller Linux containers.

What makes .NET 8 compelling for enterprise development specifically is the breadth of the platform and how tightly the components integrate. Entity Framework Core 8 handles data access with LINQ-to-SQL translation, change tracking, compiled queries for hot paths, and migration tooling that maps cleanly to enterprise database schemas on SQL Server, PostgreSQL, or MySQL. For performance-critical queries where ORM overhead matters, Dapper sits alongside EF Core with minimal friction. ASP.NET Core Identity provides authentication and authorization with support for OAuth 2.0, OpenID Connect, and SAML — the protocols your enterprise SSO infrastructure already speaks. Background processing is handled by hosted services and the newer .NET 8 IHostedLifecycleService interface, or by mature libraries like Hangfire and Quartz.NET for scheduled jobs that previously required Windows Task Scheduler. .NET Aspire, introduced alongside .NET 8, provides an opinionated cloud-native application model with built-in service discovery, health checks, telemetry via OpenTelemetry, and a local development dashboard that lets developers run Redis, SQL Server, RabbitMQ, and all application services from a single dotnet run command — eliminating the Docker Compose YAML-wrangling overhead of Kubernetes-first development.

FreedomDev has worked inside the Microsoft ecosystem since before .NET existed — we were building COM+ components and ASP classic applications in the early 2000s. That history matters because enterprise .NET is never greenfield alone. Every project involves integrating with Active Directory or Azure AD for identity, connecting to SQL Server databases that have been running since 2008, consuming SOAP services that nobody wants to rewrite but everyone depends on, and deploying alongside Windows Services that handle background processing. We have migrated applications through every major .NET transition — from Web Forms to MVC, from .NET Framework to .NET Core, from WCF to gRPC, from full IIS hosting to containerized Kestrel. We understand the full surface area of Microsoft enterprise infrastructure, not just the latest framework release. This page focuses on the .NET platform, frameworks, deployment models, and migration patterns. For C# language-specific expertise — the type system, async/await patterns, LINQ, and language features that make .NET productive — see our C# development services page. Based in Zeeland, Michigan, we serve manufacturers, healthcare organizations, financial services firms, and logistics companies across West Michigan and the Midwest who have built their operations on Microsoft technology.

.NET 8 LTS
Current long-term support release (Nov 2026)
20+
Years of enterprise .NET experience at FreedomDev
Top 10
TechEmpower framework benchmark ranking for Kestrel
<50ms
Cold start with .NET 8 AOT compilation
100MB
Alpine-based .NET 8 Docker image size
Cross-Platform
Windows, Linux, and macOS since .NET Core 3.0

Need to rescue a failing .NET project?

Our .NET Capabilities

Greenfield .NET 8 Application Development

New enterprise applications built on .NET 8 LTS with clean architecture patterns — domain-driven design with clearly separated layers, CQRS where read and write patterns diverge, and MediatR for in-process messaging that keeps controllers thin and business logic testable. We use Minimal APIs for microservice endpoints where a full MVC pipeline adds unnecessary overhead, and standard controllers with model binding, validation, and content negotiation for applications that need the expressiveness. Every project ships with structured logging via Serilog piped to a centralized sink (Seq, Elasticsearch, or Azure Application Insights), health check endpoints for load balancers and container orchestrators, OpenTelemetry instrumentation for distributed tracing across service boundaries, and a CI/CD pipeline in GitHub Actions or Azure DevOps that runs tests, builds containers, and deploys to staging automatically. We configure .NET Aspire for the local development experience so new team members can clone the repo and run the full stack — application, database, cache, message broker — with a single dotnet run command. The architecture is designed for the team that maintains it after us, not just the team that builds it.

Greenfield .NET 8 Application Development
01

.NET Framework to .NET 8 Migration

Legacy .NET Framework 4.x applications are locked to Windows, locked to IIS, and increasingly locked to an aging developer pool that prefers modern stacks. We migrate these applications to .NET 8 using an incremental approach: the .NET Upgrade Assistant identifies breaking changes and generates an initial compatibility report, we resolve API incompatibilities module by module, replace System.Web dependencies with ASP.NET Core middleware equivalents, swap WCF service references for gRPC or REST clients, and migrate Entity Framework 6 data access to Entity Framework Core or Dapper depending on query patterns. Both versions run in parallel behind YARP (Yet Another Reverse Proxy) — Microsoft's own .NET reverse proxy library — routing traffic to the new implementation as each module is validated. For applications that depend on Windows-specific APIs — Windows Forms, WPF desktop applications, Windows Services — we evaluate whether those dependencies can be replaced with cross-platform alternatives like .NET MAUI or BackgroundService, or whether a hybrid deployment with Windows containers makes more sense for the business. The result is an application that runs on Linux containers, deploys to any cloud provider, and can be maintained by the broader .NET developer market instead of the shrinking pool of .NET Framework specialists.

.NET Framework to .NET 8 Migration
02

.NET Microservices Architecture

Decomposing a .NET monolith into microservices requires more than drawing boxes on a whiteboard. We identify service boundaries using domain analysis and the actual change frequency of your codebase — modules that change together should stay together, modules that change independently are candidates for extraction. We extract bounded contexts into independent services that communicate via asynchronous messaging (RabbitMQ, Azure Service Bus) or synchronous gRPC calls depending on consistency requirements, implement the transactional outbox pattern for reliable event publishing that survives process crashes, and use .NET Aspire for local development orchestration so developers can run the full service mesh on their laptops without maintaining Docker Compose files. Each service gets its own database (SQL Server, PostgreSQL, or Cosmos DB depending on the data model), its own CI/CD pipeline, and its own deployment cadence. We use Dapr sidecar architecture when teams need infrastructure abstraction across cloud providers, and direct SDK integration when they need maximum control and minimal latency. API gateways are implemented with YARP or Ocelot depending on routing complexity and authentication requirements.

.NET Microservices Architecture
03

.NET API Development and Integration

Enterprise .NET applications rarely exist in isolation. They consume data from ERP systems, publish events to middleware platforms, authenticate against corporate identity providers, and serve mobile and frontend clients simultaneously. We build REST APIs with OpenAPI documentation generated from code using Swashbuckle or NSwag, versioned endpoints using URL path or header-based strategies, and rate limiting middleware with sliding window or token bucket algorithms to protect backend resources from abuse. For internal service-to-service communication, we use gRPC with Protocol Buffers for type-safe contracts and bidirectional streaming where appropriate — gRPC services in .NET 8 achieve significantly higher throughput than REST for internal calls due to binary serialization and HTTP/2 multiplexing. We integrate with Dynamics 365, SAP, Salesforce, and industry-specific platforms via their REST or OData APIs, using typed HttpClient instances with Polly retry policies and circuit breakers to handle transient failures gracefully. We build custom middleware when off-the-shelf connectors do not handle your business logic correctly, and we implement webhook receivers for event-driven integrations where polling would waste resources.

.NET API Development and Integration
04

Entity Framework Core and Data Access Optimization

Entity Framework Core is the default ORM for .NET applications, and it works well when used correctly — and creates serious performance problems when used carelessly. We design EF Core data models with proper relationship configuration using fluent API over data annotations for complex schemas, use split queries to avoid Cartesian explosion on multi-include queries, implement compiled queries for hot paths that execute thousands of times per minute, and profile every database interaction with MiniProfiler during development to catch N+1 queries before they reach production. EF Core 8 added complex type support and raw SQL for unmapped types, closing gaps that previously forced workarounds. For read-heavy workloads where EF Core's change tracking adds unnecessary overhead — reporting dashboards, search results, bulk data exports — we use Dapper for raw SQL with compile-time query validation. The choice between EF Core and Dapper is not ideological — it is driven by measuring actual query performance against your data volumes and access patterns, and many of our applications use both in the same project. We also handle database migrations, schema evolution strategies for zero-downtime deployments using expand-and-contract patterns, and read replica routing for applications that need to scale reads independently from writes.

Entity Framework Core and Data Access Optimization
05

Blazor and .NET Frontend Development

Blazor lets your C# developers build interactive web UIs without maintaining a separate JavaScript frontend team and a separate build pipeline. Blazor Server renders on the server and sends UI diffs over a SignalR WebSocket connection — low bandwidth, fast initial load, but requires a persistent connection to the server. Blazor WebAssembly runs the full .NET runtime in the browser — offline-capable, CDN-distributable, but larger initial download (approximately 2-3MB on first visit, cached afterward). Blazor's Auto render mode in .NET 8 combines both: server rendering for the first load with instant interactivity, then seamless handoff to WebAssembly once the runtime downloads in the background. Component libraries like MudBlazor and Radzen provide Material Design and enterprise UI components out of the box, and JavaScript interop lets you use any existing JS library when the .NET ecosystem does not have an equivalent. We build Blazor applications for internal enterprise tools — admin dashboards, data entry systems, reporting portals, and configuration management UIs — where the development velocity of a single C# codebase and shared domain models between frontend and backend outweighs the ecosystem advantages of React or Angular for consumer-facing UIs. For public-facing applications where SEO and first-paint performance are critical, we recommend React or Next.js with a .NET API backend.

Blazor and .NET Frontend Development
06

Need Senior Talent for Your Project?

Skip the recruiting headaches. Our experienced developers integrate with your team and deliver from day one.

  • Senior-level developers, no juniors
  • Flexible engagement — scale up or down
  • Zero hiring risk, no agency contracts
“
We had a .NET Framework 4.6 ERP that only ran on a single Windows Server and nobody wanted to touch it. FreedomDev migrated it to .NET 8 over six months — module by module, zero downtime. It runs in Docker on Linux now, deploys in minutes instead of hours, and our infrastructure costs dropped 40%. More importantly, we can actually hire developers who want to work on it.
Director of IT—West Michigan Manufacturing Company

Perfect Use Cases for .NET

Manufacturing ERP Modernization from .NET Framework to .NET 8

A West Michigan manufacturer running a custom ERP system built on .NET Framework 4.6.2, ASP.NET Web Forms, and SQL Server 2016. The application manages production scheduling, inventory tracking, purchase orders, and quality control workflows for three plants. It is deployed on a single Windows Server 2016 VM, requires IIS, and has no API layer — the mobile inventory scanners scrape HTML responses to update stock counts. The original development team is gone, and the one contractor who understands the codebase charges a premium for every change. We perform a two-phase modernization: Phase 1 (3 months) wraps the existing SQL Server database with a .NET 8 REST API using Entity Framework Core, giving the warehouse scanners proper endpoints with proper authentication and enabling a React dashboard for plant managers to view production metrics in real time instead of running nightly reports. Phase 2 (5-7 months) migrates the Web Forms UI to Blazor Server module by module — production scheduling first because it changes most frequently, then inventory, then purchasing — using the strangler fig pattern with YARP reverse proxy routing between old and new. The legacy system stays live for unmigrated modules until each replacement is validated in production with real users. Total investment: $250K-$450K depending on the number of custom reports and third-party integrations. Result: a cross-platform application that runs in Docker containers on Linux, deploys via CI/CD in minutes instead of hours, and any qualified .NET developer can maintain without specialized knowledge of the original codebase.

Healthcare Claims Processing Platform on .NET 8 and Azure

A healthcare technology company processing insurance claims needs a new adjudication engine that handles 50,000+ claims per day with full HIPAA compliance and audit logging. The existing system is a monolithic .NET Framework application that processes claims in batch overnight — providers wait until the next business day for adjudication results, and errors require manual intervention by a team of three analysts. We build the replacement platform on .NET 8 with a microservices architecture: an ingestion service that accepts claims via HL7 FHIR and X12 EDI formats with schema validation at the boundary, a rules engine service that applies payer-specific adjudication logic using a configurable rule set that business analysts can update without code deployments, a notification service for provider and member communications via email and SMS, and an analytics service feeding a Power BI dashboard with real-time claim status metrics. Services communicate via Azure Service Bus for reliable message delivery with dead-letter handling for claims that fail adjudication — no claim is ever silently dropped. Data is stored in Azure SQL with row-level security and Always Encrypted for PHI columns. The API layer uses ASP.NET Core Identity with Azure AD B2C for provider portal authentication and certificate-based mutual TLS for payer integrations. Every claim state change is written to an immutable audit log in Azure Table Storage, satisfying HIPAA audit trail requirements. Infrastructure is defined in Bicep templates and deployed via Azure DevOps pipelines with environment-specific configurations for dev, staging, and production.

Real-Time Logistics Tracking System with SignalR and .NET 8

A regional logistics company managing a fleet of 300+ vehicles needs real-time GPS tracking, automated dispatch, and customer-facing delivery ETAs. The existing system is a batch process that updates locations every 15 minutes from a third-party telematics provider — drivers call dispatch manually when they are running late, and customers have no visibility. We build a .NET 8 backend that ingests GPS telemetry via an MQTT broker, processes location updates through a SignalR hub that pushes real-time positions to dispatch dashboards and customer tracking pages, calculates dynamic ETAs using historical route data stored in PostgreSQL with PostGIS spatial queries, and triggers automated SMS and email notifications when deliveries are within configurable geofences of their destinations. The dispatch interface is a Blazor Server application with Mapbox integration showing live vehicle positions, route optimization suggestions based on current traffic data, and driver assignment workflows with drag-and-drop scheduling. The system processes 500,000+ location updates per day and serves 2,000 concurrent WebSocket connections on two Azure App Service instances behind a sticky-session load balancer. SignalR backplane uses Azure Redis Cache for message distribution across instances. Background workers built with .NET 8 hosted services calculate route analytics overnight and generate daily fleet utilization reports that operations managers review each morning.

Financial Services API Platform with .NET Microservices

A financial services firm needs to replace a monolithic .NET Framework 4.8 application that handles client onboarding, portfolio management, and regulatory reporting. The application has grown over 12 years to 400K lines of code with deeply entangled business logic and a SQL Server database with 600+ tables. Deploying a single bug fix requires a full regression test cycle because no one can predict what a change in the portfolio module will do to regulatory reporting. We decompose it into bounded contexts: a client onboarding service handling KYC/AML verification with third-party identity providers, a portfolio service managing positions and transactions with event sourcing for complete audit history, a reporting service generating SEC-mandated reports on schedule, and a gateway API that presents a unified interface to the advisor-facing Angular frontend. Each service owns its data store — the portfolio service uses Event Store for append-only event streams with SQL Server projections for query models, the reporting service uses a read-optimized SQL Server replica that can be rebuilt from events at any time. Inter-service communication uses MassTransit on RabbitMQ with the saga pattern for multi-step workflows like account opening that span services and must complete atomically or compensate on failure. The entire platform is containerized with Docker, orchestrated with Kubernetes on Azure AKS, and monitored with Application Insights and Grafana dashboards for both infrastructure and business metrics. Migration from the monolith takes 12-16 months with quarterly production releases, each delivering a fully functional subset of services that the advisory team can use immediately.

We Integrate .NET With:

AzureSQL ServerPostgreSQLDockerKubernetesRabbitMQRedisEntity Framework CoreSignalRgRPCAzure DevOpsGitHub ActionsDynamics 365Power BIActive Directory

Talk to a .NET Architect

Schedule a technical scoping session to review your app architecture.

Frequently Asked Questions

Should I migrate from .NET Framework to .NET 8?
Yes, in almost every case. .NET Framework 4.8 is the final major release of the legacy framework — Microsoft has stated there will be no .NET Framework 5. It receives only security patches, no new features, and no performance improvements. That means your .NET Framework application is running on a platform with a fixed ceiling: no AOT compilation, no cross-platform deployment, no container-native hosting, no access to .NET Aspire, no Minimal APIs, and no benefit from the substantial performance work Microsoft has invested in .NET 6, 7, and 8. Practically, .NET Framework locks you to Windows Server and IIS, which limits your hosting options and increases infrastructure costs compared to Linux containers. Windows Server licensing alone can cost $6,000+ per year per production server — a cost that drops to near zero when you run on Linux. The developer pool is also shifting: new C# developers learn .NET 8, and experienced developers want to work on modern stacks. Recruiting for .NET Framework maintenance work is getting harder every year. The migration cost depends on your application's complexity — a straightforward ASP.NET MVC application with standard EF6 data access might migrate in 4-8 weeks, while a large WCF-heavy enterprise application with Windows-specific dependencies could take 6-12 months. We use the .NET Upgrade Assistant as a starting point, then manually resolve API incompatibilities, replace System.Web middleware with ASP.NET Core equivalents, and validate behavior parity with automated tests. The investment pays back in reduced hosting costs, improved performance, faster deployments, and access to the modern .NET ecosystem.
How much does .NET development cost?
New .NET application development typically ranges from $80,000 for a focused internal tool or API to $1.5 million or more for a complex enterprise platform with multiple microservices, third-party integrations, and compliance requirements. A mid-market project — a custom business application with 15-30 screens, authentication, role-based access, database integration, and CI/CD pipeline — runs $150K-$350K over 3-6 months. Migration projects from .NET Framework to .NET 8 range from $40K for a small application to $500K+ for a large enterprise monolith with WCF services and Windows-specific dependencies. Ongoing maintenance and support averages $8K-$20K per month depending on application complexity and SLA requirements. The cost drivers in .NET projects are integration complexity (how many external systems does the application connect to), data model complexity (how many entities, relationships, and business rules govern data integrity), and compliance requirements (HIPAA, PCI-DSS, SOX each add audit logging, encryption, and testing overhead that increase both development and QA timelines). Infrastructure costs for .NET 8 applications are generally lower than .NET Framework because you can run on Linux — a Linux-based Azure App Service plan costs roughly 30% less than its Windows equivalent for the same compute tier. We scope every engagement with a paid discovery phase ($10K-$25K over 2-3 weeks) that produces a detailed technical specification, architecture diagram, and fixed-price proposal for the implementation phase.
Is .NET good for microservices?
.NET 8 is one of the strongest platforms for microservices development today, and it has closed the gap that previously made Java Spring Boot or Go the default choices. The Minimal API surface lets you define a complete HTTP service in under 20 lines of code — no MVC ceremony, no startup class boilerplate, just endpoint mapping with dependency injection. gRPC has first-class support for high-performance inter-service communication with bidirectional streaming, and Protocol Buffers provide language-neutral contract definitions so your .NET services can communicate with Go, Java, or Python services in the same mesh without any serialization ambiguity. .NET Aspire, released with .NET 8, provides a cloud-native application model with service discovery, health checks, telemetry integration via OpenTelemetry, and a local development dashboard that lets you run your entire microservices topology on a developer laptop without writing Docker Compose files. For container deployment, .NET 8 produces optimized Docker images — the base runtime image is under 100MB on Alpine, and with AOT compilation you can produce self-contained binaries under 20MB that start in under 50ms, making .NET competitive with Go for cold-start-sensitive workloads. MassTransit and NServiceBus provide mature message-based communication patterns — sagas, retries, dead-letter handling, and distributed transaction coordination — on RabbitMQ, Azure Service Bus, or Amazon SQS. The ecosystem is production-tested at scale: Stack Overflow, Microsoft's own Azure services, and numerous Fortune 500 financial platforms run .NET microservices architectures handling millions of transactions daily.
What is the difference between .NET Framework and .NET 8?
.NET Framework and .NET 8 share C# as their programming language and many conceptual similarities, but they are fundamentally different platforms. .NET Framework (versions 1.0 through 4.8) is Windows-only, ships as a component of the Windows operating system, and is limited to the APIs Microsoft included in its final 4.8 release. It uses the legacy CLR (Common Language Runtime), the original MSBuild project system with verbose XML, and ASP.NET based on System.Web and the IIS HTTP pipeline. .NET 8 (the modern .NET, evolved from .NET Core) is cross-platform — it runs identically on Windows, Linux, and macOS. It uses the CoreCLR runtime with dramatically improved garbage collection, JIT compilation, and optional AOT compilation for instant startup. The project system uses simplified SDK-style .csproj files. ASP.NET Core replaces System.Web with Kestrel, a high-performance cross-platform web server that benchmarks among the fastest in the industry. Key concrete differences: .NET 8 supports Docker containers natively while .NET Framework requires Windows containers (which are 5-10x larger). .NET 8 has Minimal APIs while .NET Framework has only the full MVC or Web API pipeline. .NET 8 includes Blazor for C#-based web UI while .NET Framework's options were Web Forms or MVC with Razor. .NET 8 supports gRPC while .NET Framework uses WCF (which is not available in modern .NET). Entity Framework Core in .NET 8 is a ground-up rewrite of Entity Framework 6, with different APIs and capabilities. If you are starting a new project, there is no scenario where .NET Framework is the right choice.
Can .NET run on Linux?
.NET has been fully cross-platform since .NET Core 3.0, released in September 2019. .NET 8 runs on Ubuntu, Debian, Red Hat Enterprise Linux, Alpine Linux, Amazon Linux, and SUSE — all officially supported by Microsoft with the same SLA as Windows deployments. This is not a compatibility layer or emulation. The CoreCLR runtime, the JIT compiler, the garbage collector, and the entire ASP.NET Core stack are native Linux implementations that Microsoft develops and tests on Linux alongside Windows. In production, the majority of .NET 8 web applications run on Linux today because the deployment model is overwhelmingly Docker containers on Kubernetes, and Linux containers are smaller (under 100MB vs 1.5GB+ for Windows Nano Server), faster to start, and cheaper to host on every cloud provider. Microsoft's own Azure App Service runs .NET on Linux by default when you create a new web app. The official .NET Docker images are Debian or Alpine-based. When we deploy .NET applications, we use Alpine-based Docker images for their minimal attack surface and small footprint — a typical .NET 8 API runs in a container that consumes 50-80MB of RAM at idle, comparable to a Go service. The only .NET workloads that still require Windows are those using Windows Forms, WPF, or Windows Services — desktop and system-level features that inherently depend on the Windows API. Every web application, API, background worker, and console application we build on .NET 8 targets Linux deployment, and we test on Linux in CI before any code reaches production.

Official Resources

Microsoft .NET →

Explore More

Custom Software DevelopmentLegacy ModernizationAzureAPI IntegrationDevops ConsultingCsharpBlazorAzureSQL ServerDockerReactPower BINodejs

Need Senior .NET Talent?

Whether you need to build from scratch or rescue a failing project, we can help.