Question Details

No question body available.

Tags

c# asp.net .net windows macos

Answers (20)

July 3, 2026 Score: 3 Rep: 28,387 Quality: Low Completeness: 0%

You are using the wrong training resources then.

July 3, 2026 Score: 2 Rep: 28,387 Quality: Low Completeness: 0%

Did you ask you friendly AI agent this question?

July 3, 2026 Score: 2 Rep: 39,819 Quality: Low Completeness: 20%

That sounds more like an issue with the training resources you are using than the language itself.

It is generally more important to learn fundamental concepts like type systems, data structures, algorithms etc, that are useful no matter language you use. Learning a specific framework, like Winforms, is only useful for using that particular framework.

If you are a novice I would recommend looking for resources that teach general programming concepts and uses c# for examples.

Ofc, if you dislike using windows, C# might not be the best choice from a career standpoint.

July 3, 2026 Score: 1 Rep: 63,246 Quality: Medium Completeness: 50%

As I've just explained, you can do a lot more with .NET/C# than just Windows Forms.

Perhaps you are confused about the different components and their purpose. Here is a basic overview:

  • .NET is Microsoft's cross-platform, multi-language application ecosystem. It provides a way to build and run applications of many different types. They can be written in several different programming languages and run on different operating systems.

  • C# is one of the programming languages supported by the .NET system - it's probably the main one, and the most popular and best supported. Other supported .NET languages include F# and Visual Basic. Programs written in these languages use the .NET runtime when they are executed.

  • Windows Forms is a development framework within .NET. You can use it to help you build a specific type of application - in this case desktop apps which only run on Windows. There are many other frameworks within .NET, such as MAUI and Avalonia for mobile and desktop apps, ASP.NET and Blazor for web apps, Unity for games, and so on. Most of them can be built and run on several different operating systems.

I hope that helps you to understand that your problem isn't the choice of .NET or C#, it's the choice of a legacy Windows-only framework within it. Use another framework to develop your applications which is supported on Mac and your problem is solved.

Also there are hundreds of courses, tutorials and books available covering all of these different options. You just seem to have had the misfortune to choose some old ones.

July 3, 2026 Score: 1 Rep: 39,819 Quality: Medium Completeness: 50%

No, windows is not required to run C#. But if you want to build desktop applications you more or less need windows, at least if you are following tutorials for winforms or WPF.

There is MAUI and avalonia. But MAUI seem to mainly target a mobile user experience, at least that is my impression. While avalonia is open source, it seem to have transitioned to a freemium-model, so some features will be locked behind a paywall, and future support and development is not certain.

Another option is to focus on asp.net and web development. That should work on both MAC and linux.

I would also consider why you want to learn programming. If you want to be a professional developer you need to consider the market. I would expect most C# shops to be mainly focused on windows, with some that run web-apps on linux. So if you intend to be a professional C# developer, learning how windows and visual studio works seem like a good idea. While getting a windows PC is not necessary for that, it should certainly help.

If you just want to play around with programming, you can learn plenty just writing simple console programs.

July 3, 2026 Score: 1 Rep: 135,412 Quality: Medium Completeness: 80%

I suspect the real problem here is following low quality courses and videos. Or asking the wrong question.

Any instructor that says C# and .NET requires Windows doesn't know what they're talking about. If you specifically asked about Windows Forms, they'd be kind-of-right but should have mentioned MAUI and Avalonia.

Maybe they didn't bother explaining that because you explicitly asked about Windows Forms. They should have.

The official Microsoft documentation pushes cross-platform development a lot. Fewer developers are interested in desktop development nowadays but still, if you google for .net desktop app cross platform the first result should be the .NET MAUI docs.

Then there's Blazor Hybrid, which allows running web apps on the client, similar to Slack and VS Code.

Microsoft is notorious for introducing and abandoning desktop UI stacks ( eg WinRT) though. Uno is a popular open source cross-platform stack used by many developers. There's also Avalonia UI, with a free OSS version and licensed versions that add extras.

All big component vendors like DevExpress, Telerik, Syncfusion etc offer component bundles for MAUI and Blazor Hybrid.

July 3, 2026 Score: 1 Rep: 63,246 Quality: Medium Completeness: 50%

The clue's in the name - Windows Forms.

But that's not the only way to build client-side applications using .NET/C#, and it's a bit of a legacy one, if anything.

MAUI is .NET's more modern, cross-platform tool for building native desktop and mobile apps. It works on Windows, macOS, iOS, and Android, and Linux support should be added soon as well. You should also look carefully at Avalonia which is an independent framework but very popular with .NET developers. In some cases it can offer advantages compared to MAUI - you should do a bit more research yourself if you're interested.

You can of course also build web apps which will run in any browser on any device using ASP.NET. If you're interested in developing games with .NET these are also cross-platform, as of course are console apps and so on.

Have a look at the whole .NET ecosystem here: https://dotnet.microsoft.com/en-us/

It may be wiser to focus your efforts on learning these newer technologies than on Windows Forms, especially if you're not a regular Windows user yourself.

July 3, 2026 Score: 1 Rep: 412,208 Quality: Low Completeness: 40%

It took a little trickery, but I got WinForms to work in the Rider IDE on Linux.

If you use Rider on macOS that might work there too. Otherwise you could look into your choice of IDE and see if it's possible to do something similar?

With that said, and as mentioned by others, WinForms seems to be getting outdated quickly for better alternatives.


On a different note, perhaps there are other resources to teach the basics of C# and .NET in a more platform-independent way? Depending on what you want to do, creating a simple game in Unity could be a fun way to learn C#.

July 3, 2026 Score: 1 Rep: 37,859 Quality: Low Completeness: 40%

You can try Mono framework.
It is a:

Cross platform, open source .NET framework

I used it on Linux/Ubuntu, for a WinForms application in C# and it worked quite well (there are probably some limitations, but I haven't bumped into them).

It also supports Mac, see here:

Mono supports macOS version 10.9 (Mavericks) and later.

July 3, 2026 Score: 1 Rep: 135,412 Quality: Low Completeness: 30%

You probably asked the wrong thing. Rider is a cross-platform .NET IDE, not a library. It can create the desktop apps you want on a Mac and even set up the environment. Install it on a Mac and select the app type you want from the list of templates

July 3, 2026 Score: 1 Rep: 63,246 Quality: Low Completeness: 40%

No, the mistake was starting with Windows Forms really. C# is used in lots of enterprises. To be fair, Windows Forms is probably still used in lots of enterprises who maintain long-established applications, but as a new developer it's probably not something you should spend much time on. Newer and better desktop frameworks have largely replaced it.

I would have thought .NET is now much more heavily used for web applications. In my own organisation we only maintain one small legacy WinForms application, and that will get replaced eventually - everything else we build is web-based using ASP.NET or other technologies.

As I said in my first comment, the .NET/C# ecosystem is much wider than just Windows Forms - please have a look at the links I provided, especially the overview at https://dotnet.microsoft.com/en-us/

July 3, 2026 Score: 1 Rep: 135,412 Quality: Low Completeness: 10%

The mistake is trying to learn from bad videos, not C#. Stack Overflow itself is built using C# and ASP.NET Core. Microsoft offers a lot of quickstarts, tutorials, courses.

Did you try any of the tutorials on Microsoft Learn? Any of the Pluralsight courses?

With Udemy .... you get what you pay.

July 3, 2026 Score: 0 Rep: 8,862 Quality: Low Completeness: 30%

https://learn.microsoft.com/en-us/dotnet/core/install/macos

https://code.visualstudio.com/docs/setup/mac

However, AFAIK, you can't build desktop apps for the Mac using .NET.

Also, note that .NET will build and run on Linux, but again, console apps not desktop apps.

July 3, 2026 Score: 0 Rep: 63,246 Quality: Low Completeness: 10%

That's not quite true. You can't build Windows Forms apps for the Mac (or anything else that isn't Windows), but you can build and run many other types of .NET app cross-platform, including desktop apps using MAUI or Avalonia.

July 3, 2026 Score: 0 Rep: 1 Quality: Low Completeness: 0%

Yes, I asked, but I wasn't very satisfied with the answer. He said I could do this better with Mac and Rider than with Windows PCs, only the forms part wouldn't work.

July 3, 2026 Score: 0 Rep: 63,246 Quality: Low Completeness: 40%

The Mono implementation of Windows Forms is incomplete, but it's true that it may not be an issue, depending on what the application being built needs to do.

But honestly why pursue WinForms as a new developer these days? It's such old technology that on its run-down of available .NET desktop frameworks, Microsoft barely even mentions it - there's just one tiny hyperlink right at the bottom, along with the barely-supported WPF.

July 3, 2026 Score: 0 Rep: 1 Quality: Low Completeness: 10%

Thank you for your suggestions, I will research them, but I'm currently taking my first steps and, as I said, I'm progressing with YouTube and Udemy tutorial videos, and it's challenging because it's constantly using Windows.

July 3, 2026 Score: 0 Rep: 63,246 Quality: Low Completeness: 10%

There is nothing wrong with courses, but I would suggest that you should look at different courses and tutorials - if the ones you're following are using Windows Forms then probably they're out of date.

July 3, 2026 Score: 0 Rep: 1 Quality: Low Completeness: 10%

Actually, I want to create web-based applications and automations, but my goal is to do this at the enterprise level. I chose C# because it's used at the enterprise level, but did I make a mistake starting with C#?

July 3, 2026 Score: 0 Rep: 1 Quality: Low Completeness: 10%

Thank you all individually for your valuable comments. I liked the C# syntax and rules, but I'm wondering if I made a mistake in choosing it because the video resources used in the training process are old and only for Windows PCs.