How to develop Windows app on Visual Studio for Mac

25,329

Solution 1

You will need to run a Windows installation (eg, via Parallels or Boot Camp) and then run the Windows version of Visual Studio to create UWP apps.

You can do a lot of the business-logic coding inside Visual Studio on MacOS, but you will need Visual Studio and the Windows SDK to use WinRT types (which are required to build a UWP app) and to correctly build / package the app for deployment.

Solution 2

.NET is a big ecosystem. As you cannot develop all kinds of .NET projects using Visual Studio on Windows (Xamarin.Mac for example), you cannot do the same using Visual Studio for Mac (like you found, WinForms/WPF/UWP and so on). Such limitation comes from vendor SDK availability or other underlying systems.

In your case, you can easily develop web apps, Mac apps, and iOS apps. If you do want to develop Windows specific apps, like the other answer shows, please use Windows.

You mentioned ".NET SDK", but I believe that should be ".NET Core SDK". .NET Core apps are cross platform. Thus, you can develop such apps in Visual Studio for Mac, and then deploy to Windows. However, so far only console apps and web apps can be developed. What might happen in the future is still to be determined.

Visual Studio Code, however, is just a code editor. It won't give you extra flexibility.

Solution 3

For those whom imperatively needs to develop their app on all platforms, here is what I did, and the pros and cons:

  • Buying an Imac, thinking that I could also develop UWP projects within it

After realizing that I couldn't, I bought a cheap Windows 7 pro License on ebay (around 5$), and installed it on VirtualBox.

From there, I upgraded to Windows 10 for free and installed everything. It worked like a charm.

Cons: Buying a brand new IMac while a Macbook pro would have been better. An old one even since YOU CAN'T upgrade the ram.

Working on 8go of ram computer when you must give 4go of RAM to your VM isn't quite great. 4go gets you a laggy environment! Really frustrating. So, prefer something older, but up-gradable (a cheap Macbook pro with 16go of RAM would do). Not to mention that you will have to install Ubuntu as another VM in order to setup a .Net core Server for the majority of you.

  • What environment to favor while developing, most importantly when you are a C# and Xamarin noob like me?

The best being to develop from Mac as you will have FAR LESS ERRORS AND BUGS than in VS for Windows. Correcting mistakes is really daunting and the best is really to develop from Mac to mitigate the damages, but it won't be hurdles free as well! It took me more time debugging than coding within VS Windows.

After developing chunk of your app within Visual Studio MAC, the best is to get the code on the windows machine and arrange it to work in UWP. UWP apps compile fastly and like a charm, so better is to get rid of errors within macOS, IOS, Android, and then go and adapt to UWP. This is easier IF YOU THINK ABOUT CHOOSING THE CORRECT LIBRARIES (working on all platforms, hence check my last advice).

From VS Mac, compile using macOS as a host! It's the easiest way to develop fastly, and correct your bugs.

Here is an article on how to get started from Mac:

https://blog.xamarin.com/preview-bringing-macos-to-xamarin-forms/

Cons: Always having to commit the code for it's use within UWP. But that's also a good way to save your project as well, so that if you screw up (like it happened to me numerous time) you roll back.

Hope that helps others whom didn't know what to do and where to start.

ALSO:

Don't follow tutorials dating from before 2017. Use the .Netstandard/.NET Core framework to develop your App so that libraries are more portable (following the blog article above should do).

Otherwise, headaches ahead!

Share:
25,329
Khal_Tech
Author by

Khal_Tech

Updated on July 09, 2022

Comments

  • Khal_Tech
    Khal_Tech almost 2 years

    I recently bought an iMac in order to develop my App on Visual Studio for Mac in a better environment (lots of issues on Windows), but on the Visual Studio for mac, there is no UWP projects.

    It is understood that I have to create a new .NET project, but what are exactly the steps to follow in order to achieve that correctly for the app to work on Windows with a peace of mind? Should I have gone with Visual Studio code, which support the .NET core framework completely?

    I saw on other answers that I need the .NET SDK tool, and so forth, but further details are needed if you don't mind on the why (not the installation stuffs, only the tech savvy explanations for the app to build correctly at the end!

  • Khal_Tech
    Khal_Tech about 7 years
    Hi, Thanks. That I know. Same as my answer to Peter Torr. Can I make all of my project within mac to compile on a windows machine at the end? And how to do so for my app to be cross-platform ( type of project to create, and some directions regarding the steps). Thanks a lot, I am kind of lost....
  • Lex Li
    Lex Li about 7 years
    @Khalid_Tech I believe the first paragraph I wrote answered it already. "Can I make all of my project within mac to compile on a windows machine at the end?" Impossible, as not all projects are supported. You are not at lost, but simply too lazy to try out.