When building server-side applications with .NET, developers must choose between .NET Framework and .NET Core. While both share a lot of the same .NET platform components, there are fundamental differences between the two which will determine which is the more appropriate for what you want to achieve.
Experts suggest that .NET Core is “the future of .NET” as it supports all platforms: Windows, Linux and Mac. The .NET Core platform is also open source, making it perfect for those who promote open collaboration.
However, .NET Core requires developers to have educated themselves accordingly to make the step up from .NET Framework. The .NET Framework platform supports Windows and Web applications, but isn’t particularly future-proof.
That said, for teams with a pre-configured environment and systems, .NET Framework is seen as the better choice.
To help you decide what route to go down, heed the following guidance based on your capabilities and what you wish to achieve.
.NET Framework is a better choice if you:
- Do not have .NET Core capabilities, nor the time/money to bring the right skills on board
- Require a stable environment in which to build and deploy your app
- Need to get building your app immediately
- Are working on a project which involves an existing app and extending its functionality
- Have a pre-existing team with.NET expertise who have a proven record for building production-ready software
- Feel uneasy with the ‘newness’ of .NET Core and the continuous upgrades and changes
- Are building Windows client applications using Windows Forms or WPF
.NET Core is a better choice if you:
- Want to target Windows, Linux, and Mac operating systems with your apps
- Have the time and capacity to take on new skills
- Are prepared for the inevitable learning curve that comes with .NET Core, with it not yet having fully matured
- Are just setting out in the world of .NET
- Are an advocate of open-source
This should hopefully steer you in the right direction in terms of what sort of expertise you’ll need to get the desired outcome for your .NET project.
Senior Consultant – Software Engineering – C#/.NET & Java