So, we all know that. the new .NET is not your father’s .NET, it’s cool, it’s Cross-platform, and it’s Open-Source. It’s simply modern. It’s Avocados and Soy lattes.

Yet, it is not easy to simply stop developing Apps based on .NET Framework or to migrate everything to the newest, container-based architecture using the newest .NET Version. More or less, .NET Framework has been good to us, and as a result, there are many legacy apps that still use it and depend on it.

As much as we developers would always prefer to throw away the old code. sometimes we do have to live in the real world and cannot simply migrate or start over because of, well – things such as life or budget.

That being said, we often also prefer not to have an additional PC which we would only sometimes use. Whatever the reason may be, sometimes we do wish to be able to simply fire up Windows, open our trusty Visual Studio and make that change we have to make. But how do we do this on a Mac?

Virtualization

We have already talked about virtualization a long time ago, in a Post about creating an Ubuntu virtual machine but the basic plot is still the same, so we won’t be going into gritty technical details now. Instead, we’ll skip directly to implementation.

We will use the Parallels Desktop for Mac Software to do this.

The first step is, of course, to download and install the software. However, be warned that there is no completely free or even ad-supported version. There is a free trial, however – and at least they managed to convince me.

Here you can see how it looks to be running Windows on a Mac using the Parallels Desktop:

Microsoft Edge running on a Windows running on a M1 Mac

We won’t be talking prices here, as it is possible that any such post would be quickly obsolete, so we’ll let their marketing worry about that. I have purchased the minimal version, for Home Users and Students and I have been able to use it for personal projects that use Visual Studio Community Edition and Microsoft SQL Server 2014 Express successfully, even if only the more expensive subscription is “for Developers”.

  • Yes, SQL Server 2014 Express. There are some problems with getting 2019 to run but I hope I will be able to address this in the future.

Please note: I am not a lawyer and I didn’t even explore if using the basic paid version is allowed in companies or in business contexts. I do not use it for work, only for personal Projects. It is your responsibility to research which version you would need to be able to use it in business.

Getting Started

After the installation, you will be able to decide how you wish to get and install Windows. You will be able to download the appropriate Windows Version for either Apple Silicon M1 (ARM) or Intel Macs from inside Parallels.

Of course, if you have a Windows 11 image, you will be able to use that.

Before you begin, you will probably get a nice Info/Warning about M1/M2 Macs, that you cannot use existing VMs or use the Intel-Based Installer. You need an ARM Version of Windows, but you can have Parallels download that for you automatically.

Create a new Windows VM using Parallels Desktop - Get Windows 11 from Microsoft

Windows will be downloaded and automatically installed. Of course, you can use Parallels to install another OS, but that would be beyond the scope here.

So, we will allow the Installer to download and install an appropriate version of Windows 11 for our Mac.

Windows is installing

What is important to note is that, of course, purchasing a Parallels Licence does not give you the Windows Licence. However, regardless of the fact that this is an ARM version of Windows, I was able to activate it using a Licence Key I purchased on Amazon.

The first screen you see after the Installation - Microsoft Edge Start Page and Windows Update Status

Setting up a Development Environment

The first thing you might be wondering is: is IIS available? Well, you are in luck, because the newest version of Windows 11 Home for ARM supports the IIS installation in the usual way – using Add Windows Features option in Control Panel.

Installing the IIS on Windows 11 Home Virtual Machine

Afterwards, I was able to normally add a new Website binding and make the Website built using the .NET 4.8 Framework to run.

Regading Visual Studio, just do what you would normally do on Windows. I have used Visual Studio Community Edition and it worked great.

Visual Studio Community Edition running or a Windows VM on a Mac

Regarding the SQL Server, I have been able to install Microsoft SQL Server 2014 Express normally, but not the 2019 version.

Installing the 2014 version should be painless – at least it was for me:

Installing SQL Server 2014 Express

Regarding 2019, there are some installation scripts on the Internet and after some googling, I also became convinced that it should be possible to install and run the 2019 version but I haven’t tried this personally yet, so I cannot guarantee success.

I will come back to this theme definitely, but for now, the Status Quo is that VS Community and SQL Server 2014 Express run.

.NET Framework Website running on Windows 11 VM under MacOS

In any case, I have succeeded in getting my old .NET Framework Website to run on Windows 11 VM on a MacBook Pro with M1 Chip, meaning that the development of legacy .NET Framework apps is possible when using a Mac.

Summary

So, technically speaking, it is possible to develop legacy .NET apps on a Mac. Sure, you are not developing using the tools available on the macOS but you are developing .NET Apps without having to wander very far from your Mac.

So, if you do need to come back from time to time to the legacy Code, using Parallels to do this might be a good idea, as in some segments it even feels superior to having an additional dedicated Windows PC – easy transfer of Files from and to the VM comes to mind, as you will be able to access your Mac files from inside a Windows VM.

And let us not forget games, as in many cases it will be possible to play Windows games on a Mac using Parallels. Sadly, I was disappointed to find out I wasn’t able to play Diablo 2: Resurrected, so I recommend that you search online if a specific game can be run using Parallels.

All in all, if you are primarily a Mac user but still have the occasional need to use Windows, I hope this post has been at least a little bit helpful.