Which .net Framework For Mac Parallels

Active2 years, 6 months ago

.NET Framework October 2018 Security and Quality Rollup. ASP.NET Community Standup - Oct 9, 2018 - The Blazor Show! I switched to developing.Net in a Mac in 2011 and I can’t imagine being on a PC anymore. I create a VM for each project I work on so the environment is simple and consistent. Parallels is nice, but your MacBook resource. Apr 04, 2012  Support Communities / Mac OS & System Software / Mac OS X v10.7 Lion Looks like no one’s replied in a while. To start the conversation again, simply ask a new question.

What, if any, are the Microsoft supported options for running C#/.NET 4.0 code natively on the Mac? Yes, I know about Mono, but among other things, it lags Microsoft. And Silverlight only works in a web browser. A VMWare-type solution won't cut it either.

Is there any semi-authoritative answer to why Microsoft just doesn't support .NET on the Mac itself? It would seem like they could Silverlight and/or buy Mono and quickly be there. No need for native Visual Studio; cross-compiling and remote debugging is fine.

The reason is that where I work there is a growing amount of Uncertainty about the future which is causing a lot more development to be done in C++ instead of C#; brand new projects are chosing to use C++. Nobody wants to tell management 18–24 months from now 'sorry' should the Mac (or iPad) become a requirement. C++ is seen as the safer option, even if it (arguably) means a loss in productivity today.

Ðаn
ÐаnÐаn
3201 gold badge3 silver badges15 bronze badges

12 Answers

is there any semi-authoritative answer to why Microsoft just doesn't support .NET on the Mac itself?

The best answer is probably that you don't 'just support' .NET on the Mac. You spend hundreds of millions of dollars and several years porting .NET to the Mac.

While some things are fully managed and would not require porting, most things are wrappers around the Win32 API (windows, controls, gdi+, cryptography, active directory, COM, enterprise services, device access, sound, video, codecs, winforms, etc, etc).

Every single one of these would have to be abstracted in the backend and remapped to equivalent native libraries on OSX. Of course, there's not going to be a nice clean mapping, so you also have to write hacks upon hacks to get it functioning exactly the same.

Then there's the issue that these APIs on OSX can be brittle and Apple isn't very good at backwards compatibility, so you get to redo your hacks with every major release (and sometimes minor release and hotfixes), racking up a high maintenance cost.

Basically, it's a tremendous amount of money and work for very little gain on a platform whose owner would be against you doing it anyways. And you don't really want to spend money to help people migrate off of your own platform onto a competitor's.

So you are left with not-perfect cross-platform choices:

  • C++, which will still require porting in the future
  • Silverlight out of the browser, for Microsoft support
  • Mono, which does the work to support a healthy subset of .NET, but isn't Microsoft
jpobstjpobst

No, Silverlight is the only Microsoft option from .Net on OS X. Mono does not 'lag' as much as you think; it supports .Net 4.0 and C# 4, for example. However, the UI toolkits (WinForms and WPF) are not well supported on OS X. Mono doesn't support WPF at all. Neither could Microsoft without rewriting the entire rendering engine. That's probably OK, though. If you want to write a native Mac app, you should be writing a native UI (perhaps using MonoMac).

Barry WarkBarry Wark

No. Mono's your best bet.

Other open source projects like DotGNU may serve you as well. http://www.gnu.org/software/dotgnu/ But none of these is MSFT supported.

IshpeckIshpeck

Silverlight is not browser only. Since version 3 OOB has existed and would be the route I would take if a Microsoft supported platform is a must-have.

While Mono may lag it is not as removed from the .NET stack as you may think and should not be cast aside as a viable option.

As to why Microsoft does not implement the entire .NET stack; ROI.

Aaron McIverAaron McIver

Most of Microsoft’s profit comes from two products - Windows and Office. Cross platform compatibility would hurt Windows.

If you really want the same code running cross platform, write a web app. It doesn't sound like you do though. “Just in case” isn’t a good reason, it’s scope creep.

Even if you do decide to target Mac OS X or iOS in 16 months from now, do you really think you could take your existing C++ code and turn it into a good (or even functional) native app? Unless you're working on a full-screen game, the answer’s no.

Save time with C# now, and if you decide to move onto the Mac, rewrite it the Mac way with Objective-C and Cocoa - your users will thank you.

Tobias CohenTobias Cohen

is there any semi-authoritative answer to why Microsoft just doesn't support .NET on the Mac itself?

Where's the market that would justify MS spending the treasure coding it? In order to do this, they'd have to drop serious cash--millions of dollars in salary. An ongoing process, as fixes and updates come along.

And for what? Bragging rights? All they get out of it is the ability for people to ditch Windows for Apple and be able to still run their apps.

If anyone would profit from doing this, it would be Apple. Make it easier for people to transition to their platform and for developers (DEVELOPERS DEVELOPERS) to code on it. But do you think SJ gives a crap? They'd rather invent new stuff to stick an i infront of. Besides, most of the framework is OS and the CLR specs are free for anybody to implement. You can't stick a filthy NDA on any of it.

Microsoft Framework For Mac

WillWill
2,4423 gold badges17 silver badges24 bronze badges

You might find the MonoMac project useful - http://www.mono-project.com/MonoMac

It allows for developing Cocoa applications Mono style, which can be deployed to the Mac App store.

I would strongly consider this approach for a developer unfamiliar with Objective-C but with .NET/Mono/Java who has to deliver an application in a time restrained scenario.

user1249

None.

I recommend either writing a cross-compilable C++ application - may you have joy in it - or using Ruby with wxWidgets.

I consider .NET a bad proposition for cross-platform development and long-term product maintenance. Although, man, you can whiz out apps fast in it. :-/

Wish Delphi was still a major contender.

Net Framework For Mac

Paul NathanPaul Nathan
8,4401 gold badge29 silver badges40 bronze badges

If you want to run .NET natively on a Mac, you can use BootCamp to do this (i.e. you run Windows on the Mac, and your .NET applications in Windows).

If you meant Mac OS X rather than just the hardware, then you can use VMWare or Parallels to run the .NET applications in Windows (in emulation) in OS X. Both have visual modes that let your application appear as if it is running only within OS X (it will look and behave like a Windows application, but if you are writing a cross-platform non-web application without a custom interface for each OS you will always have that problem).

You will get the same amount of 'support' by doing this, since you're running the app in Windows, albeit virtualized. Of course, anyone running the app will need a copy of the virtualization software, and Windows, and be willing to put up with an app that doesn't behave like an OS X app - but it is the only way to have 'native' .NET running on a Mac.

Tony MeyerTony Meyer

Dan, I don't think you can do this. However, a possible solution (still vapourware) is to use Embarcadero Rad Studio C++ Builder, which has a nice VCL for developing visual applications (upon which much of .net is based), and they are RUMOURED to have cross-platform support coming out in the next release.

This will be develop on windows, target to Mac or Linux. Or so their roadmap says.

The C++ environment is reasonable and if you develop against the VCL then in theory the application will just work on the other platforms.

Of course until its actually shipped it remains to be seen how effective this really is.

quickly_nowquickly_now
13.8k1 gold badge31 silver badges46 bronze badges

The answer is no.

Actually your case seems to be a very good example of when not to choose .NET.

Which .net Framework For Mac Parallels
Gabriel MaganaGabriel Magana

If you want to develop for an OS then use the right tools. There are no truly professional apps written in mono for the Mac. There is on the other hand a lot of non-professional developers using a lot of tools creating a lot of garbage. Look at the mono app reviews that have been written for OSX. The developers are writing using an incomplete framework hacked to match the OSX platform. Start out write - if you have used C# Objective C is a quick learn.

Professional developers for the mac use C++, Objective C, Cocoa, and Xcode. I develop on several platforms and each has their own best tools. Use Xcode for the Mac and iOS.

Just as a side note Xcode is no Visual Studio it is not as stable and is a disgrace to apple in comparison, but it works well when you get used to he quirks. It is very difficult to beat Microsofts tools - but they were written for Windows not Linux, iOS, OSX, AIX etc.

Dr. MaynordDr. Maynord

protected by gnatFeb 13 '15 at 14:56

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged c#.netmacmono or ask your own question.