I want to learn C# for Unity and my personal computer is a MacBook Air. Can I program in C# on a Mac?
Your first option is Microsoft Visual Studio for Mac which was released in 2017. If you're used to VS ide then I suggested you download this.
If not then you can have a look into MonoDevelop. You can download from here
MRE = Mono Runtime Environment
MDK = Mono Development Kit.
MDK = MRE + Extra tools, libraries, .NET PCL (Portable Class Library) profiles, etc.
If you have an application that you want to run that needs Mono you can install just the MRE.
If you are doing development, writing C# applications, whilst you can sometimes get away with just having the MRE installed, you may hit some missing features such as not having the .NET PCL profiles. So I would install the MDK if you are doing development. Reference
Yes, it is. Microsoft has released Visual Studio Code 2017. It works on Windows, Mac OS, and Linux; It is quite nice development text-editor. It works similar to the full-version, available on Windows - with a few draw-backs, and it will allow to write programs, as well as run and test them right on your Mac.
Microsoft Docs offer a quick getting started tutorial and a Hello World program out-of-the-box with the Visual Studio Code.
You will need to install a few dependencies, however. Which may sound kinda of obvious:
Visual Studio Code
.Net Core SDK
C# extension from the marketplace.
I had good luck getting started and Visual Studio got all of the dependencies for me; so I simply went into the program, opened the integrated terminal (View > Integrated Terminal) and ran the command dotnet new console, and boom, a few seconds later I had a Hello World program, written in C#, running on my MacBook Pro.
There is now a Visual Studio for Mac available as a free community version as well as professional and enterprise versions by subscription.
JetBrains also has an IDE for C#, called Rider, that runs on the Mac. If you use IntelliJ or any of their other products you might like it - it feels better to me than MonoDevelop or Visual Studio for Mac. It is a commercial product but JetBrains offers very generous license terms (as in free) for students and open source projects. They also have a substantial discount for startups.
It is possible, but you won't be able to use Microsoft's tools, you'll need to use a third-party program like Xamarin Studio (MonoDevelop).
Edit
at the time of this answer there wasn't a Microsoft tool/IDE that could be used for developing .net / C# programs on a Mac. Now there are two:
Visual Studio Code
Visual Studio for Mac
Note that while everyone mentions Mono and Xamarin, which you should absolutely look into for C# development, Unity works on Mac directly, specifically Mac OSX 10.6+
while both use the C# language, some of the paradigms espoused by Unity are a little different from standard C# development. I personally recommend learning both.
ADDENDUM: Note that MS has recently announced that they'll be moving the standard .NET implementation cross-platform, and are doing so with the help of the Mono team, so while there's currently a confusing dual set of tools, it'll be shifting away from this in the future
It is entirely possible, if you install a version of Windows using Bootcamp you can switch between the two at start up and have the full functionality of both by installing Visual Studio on the Windows partition. Alternatively, you could use VMware such as Virtual Box and use Windows within your Mac OS.
Related
I am considering options for a new computer and I am debating between a Windows and MacOS platform. I'm a windows (C#/.net) developer and I work primarily in visual studio, but I also work in other open source technologies in my personal time.
Microsoft has recently released Visual Studio for MacOS and I'm wondering if there are any significant limitations that would make .net core in visual studio on a Mac too difficult to be worthwhile.
I've heard of some early limitations such as not being able to publish to the filesystem and not being able to run multiple instances of Visual Studio, but I'm unsure if these have been resolved, or if they are on the VS for Mac roadmap.
I am trying not to make this an opinion-based question so I am looking for factual limitations or benefits. One of the benefits I see is being able to develop software and test on all three major platforms via virtualization (mac, windows, linux).
You will be able to do on Mac
Run and debug .NET Core projects.
Run multiple instances of Visual Studio 2019.
Run and debug Xamarin projects.
You won't be able to do on Mac
Run ASP.NET Full Framework projects.
Run Winforms projects (you might if you use Mono, but it won't be transparent).
Run IIS.
Visual Studio for Windows has more project templates, especially for Azure.
Benefits?
Running .NET projects if you have a Mac.
I think Xamarin development is better on Mac.
Personal conclusion
I use both environments every day. If you are a Mac user is great being able to run .NET Core apps without a VM. But, I consider VS on Window way more mature than VS for Mac.
You may use JetBrains Rider on your Mac or run the Visual Studio for Windows under Parallels Tools.
I'm trying to do some treehouse tutorials on C#. Unfortunately, the instructor is teaching this course in an windows machine with a windows version of VS Community while I follow along VS Community for mac. Got to a point where she is trying to use the C# interactive (REPL) but I can't seem to find it on the mac version. Anyone know if its even possible to do this on the mac? Thanks.
You can't run it in Visual Studio. You can, however, use the terminal.
When you install mono the command csharp gets installed as well.
Simply type csharp and the terminal will become a C# interactive window.
If you have Mono installed you can also use: csi
No Interactive Window support in VS 2017 Mac.
Future versions may have this feature. If it is important you could use Parallels and run the Windows version.
Or work around it by doing the same sorts of things with a debugger and Immediate Window.
Use Xamarin Workbooks!
If you don't like Xamarin Workbooks for whatever reason, you can also use csi in the console, but it doesn't have code completions :/ I couldn't edit Sachin's answer above, but to be more clear, all you need to do is open the terminal and type csi to start the C# interactive tool. Of course this only works after you've installed Visual Studio (it should have installed Mono in the process).
I'm still a coding/C# newbie. I've spent the last 30 days learning C# probably about 8-12 hours per day. That said, I'm trying to get a setup where I can build Android apps, do some Swift programming, and continue learning C#.
I am currently running Visual Studio Express 2015 and it's for the Desktop platform, not Windows 10 apps.
My question is, can I use Visual Studio to do all of these things in one combined installation? I ask this because I was just about to install Xamarin and then I also found this Silver compiler which ALSO says it includes Visual Studio 2015: http://www.elementscompiler.com/elements/silver/default.aspx .
However, I'm not sure if I were to install Xamarin and then try to install Silver, is the Silver's Visual Studio going to over-write the Xamarin or my original installation of the IDE? I want to have ONE Visual Studio installation that allows me to start C#, Swift, AND Android projects.
I am also slightly confused on the different variations of Visual Studio 2015. By having Express, do I already have Community or is this a different IDE?
Thank you.
I would suggest you get Visual Studio Community instead of Express since Express is very limited. In community you are able to do all of those.
For Swift you only can use the language in the Xcode IDE. Swift can use in the Mac OS and Ubuntu, can not use in the windows now.
It's not correct. Silver is a project where you can use swift to write native apps on Windows. Xamarin is a completely different thing. With this tool you can write platform-independent with C#. For Mac, Android, iOS, and nativly with C# on Windows. It should be your prepared way, if you want to write many code in C#.
How do I use Visual Studio to develop applications on Mono? Is this possible?
You just build the applications in Visual Studio, and run them under Mono instead of under .NET. The binaries should be compatible... but you'll need to make sure you don't use any libraries which aren't available in Mono - see the Mono Application Compatibility Guidelines.
(According to that page, you need to turn off incremental builds in Visual Studio though - a point I wasn't aware of before :)
See this article on how to run your apps while targeting the mono framework from VS.
Miguel has posted this entry a while ago, so it's quite dated. You can also try this and this (all hail Web Archive!)
Since version 2.0 MonoDevelop supports VisualStudio project/solutions file format. This means that you can use the same code base on Windows with VS and .Net and on Linux with MonoDevelop and Mono. That in my opinion is the best way to go about it. There are no major reasons to run application in Mono on Windows, other than for testing purposes and for that I'd rather set up a virtual machine to test the software in native environment.
I've posted an article on how to integrate Mono 2.8 (the build for .Net 4.0) into Visual Studio 2010 here - there's a link there to another profile built for Mono 2.4 (.Net 3.5) if that's what you're aiming for.
You can integrate the new Mono 2.8 profile with 3 simple steps:
Download the profile itself from here.
Unzip the contents of the profile Zip to one of the following directories:
32-bit systems: C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile
64-bit systems: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile
The "Mono" folder in the ZIP should be directly under the "Profile" directory.
Restart Visual Studio if it had been running, open the properties of the project you want to use with Mono, and select the Mono Profile for 2.8:
Note: You will not be able to select the Mono Profile straight from the New Project dialog box; for some reason, that list of profiles doesn't match. Create your project as a .Net Framework 4.0 project first, and after creation set the project properties to Mono.
If you've upgraded your MonoDevelop install to the latest version (as of today, anyway), this Visual Studio solution & Project file will open with no problem - no changes required at all.
If you encounter the problem that you need .NETFramework,Version=v4.0,Profile=Mono in order to run the application, the trick was to create registry key.
For running Windows 7 x64, it was: HKEY\_LOCAL\_MACHINESOFTWAREWow6432NodeMicrosoft .NETFrameworkv4.0.30319SKUs .NETFramework,Version=v4.0,Profile=Mono
I suppose for x86 it’s HKEY\_LOCAL\_MACHINESOFTWAREMicrosoft.NETFramework v4.0.30319SKUs.NETFramework,Version=v4.0,Profile=Mono
(Where v4.0.30319 would be the version of the current 4.0 framework installed.)
Yes, you can develop on Visual Studio and target Mono (Mono for x86).
Here is an answer I made on all the available possible alternative to compile against Mono on Windows. However, it's focused for Mono x86.
As a summary, let's list the possible choice for VS development:
MonoHelper addin
Mono Profile
For Android/Ios, you can also cross-compile and debug inside Visual Studio with Xamarin addin. Although it's not free for commercial huge applications, there a free version available to make small ones.
Note: For those who wonder why in the world I would like to develop in Visual Studio on Windows, instead of MonoDevelop on Unix, let say that developer experience in MonoDevelop does not compare to VS one (especially when it comes to debugger/refactoring, the last due more to Resharper than to VS itself).
Is mono the only route , any specific visual studio like editors that you recommend?
Without meaning to state the obvious and miss the point, if you mean a Mac computer rather than a Mac OS, you could install bootcamp or use parallels to run windows on the Mac and then use Visual Studio (there are also free versions of Visual Studio)
Yeah, mono is really your only option, unless some undergrad somewhere has developed some very experimental thing I don't know about. As for an IDE, well I believe the only thing half way stable that will work right now on Mac OS X is Monodevelop:
http://tirania.org/blog/archive/2008/Feb-07-2.html
I mean, you could run Parallels and develop your code on a Windows VM with Visual Studio and as long as you follow certain guidelines about portability, you could use VS to develop your mono apps. Although, you probably might as well get familiar with Monodevelop. It would be interesting to see if SharpDevelop ever gets ported.
Well, you could also try Silverlight...
Pro:
It is an official Microsoft implementation, so it is more likely to work
Its support for recent stuff like C# 3.0 is much better
Con:
It is browser-only, Silverlight apps do not run standalone
You won't get the whole .NET Class Library, only a subset, so it is somewhat limited
You won't get Visual Studio on a Mac
For IDE, I suggest Eclipse Tools for Microsoft Silverlight (apparently it is Windows-only at the moment) you should use MonoDevelop or SharpDevelop or something like that.
Use Xamarin Studio IDE.
https://xamarin.com/mac
Uses Mono and C#. It has any features you might expect from a modern IDE and combines with XCode for GUI.
Mono is pretty much your only route right now, though there are incessant rumours (I wouldn't give much thought to them, though) that Microsoft is planning to port C# to Mac in the future. I'd be very surprised if that happened, though.
As for IDEs, I can't help there... If I want C#, I stick to Visual Studio (run it through Parallels or BootCamp, if you really want to use VS).
Edit: As Graham points out, there is Cocoa#, but I'd caution that simply because the project has stalled, and there's unlikely to be much future for it. :(
I would go the virtualization route, either Parallels or VMware Fusion. Both will run Windows XP and Visual Studio very well on a modern Mac. Windows has the best tools for .NET and C# development and it only makes to use them, especially when you're just starting out.
Virtual Box is my new favorite and open source (means free) VM software. Don't pay for Parallels. Also, with BootCamp, you have to reboot the machine to switch between Windows and OS X, so Virtual Box is the way to go.