Tag Archives: Programming

Visual Studio for Mac: Developing C# on OS X

If you only had a Mac with you and you need to work on a project which was written in Microsoft proprietary language (C#), what would you do? I did a quick search on Google and most of the results pointed me to the Mono solution.

Mono is a cross platform, open source .NET framework. It is being sponsored by Xamarin, a popular C# development platform for mobile (Android, iOS) apps, Mac and Windows. Without further ado, I quickly downloaded and installed the Mono solution.

To start using Mono, you will need to install 2 things:

  1. Mono MDK package (.pkg), an open source .NET framework, which will occupy around 600+ MB of space once installed.
  2. Xamarin Studio, MonoDevelop IDE (Integrated Development Environment), which will occupy around 300+ MB of space once installed. The IDE is free as long as you are not developing for iOS/Android projects.

After installing the Mono package and Xamarin Studio (the installation process was quick and painless), I started playing with the Xaramin Studio. To my surprise, the interface is very similar to Visual Studio. I can even say that Xamarin Studio is the Visual Studio for Mac. 🙂 This is good news for C# developers since they don’t have to go through the steep learning curve of picking up a new development tool.

Visual Studio for Mac

Xamarin Studio

Xamarin Studio

Xamarin Studio can open the solution file (.sln) of an existing C# project directly and build the solution without any additional configuration. This is very good. Another good thing is it also has the Nuget package manager integrated in the IDE. NuGet is helpful for finding useful open source packages like Selenium which I need for development.

NuGet in Xamarin Studio

NuGet in Xamarin Studio

Xamarin Studio has built-in Git and SVN version controls support. If your project is version controlled, it will auto-detect the setting and track your pending changes in the IDE. Cool.

It also has the powerful auto-complete feature which literally helps you write your program. The contextual menu has the common options as in Visual Studio like auto-resolve namespace if you are using a class from a non-referenced namespace, rename variable throughout the solution, refactor selected code, etc.

I haven’t tried the debugger fully due to the exception encountered during run-time for the library that I was using. It does have the step-over, step-into, step-out features.

The program that is built using Xamarin Studio can run on a Windows directly too (as long as you don’t use any Mono specific libraries according to this and vice versa where you don’t use any Microsoft/Windows specific libraries such as WPF, Workflow Foundation, COM+ etc in order for the program to build correctly using Mono). I tested the program on the Amazon Elastic Compute Cloud (Amazon EC2) service with Microsoft Windows Server 2012 Base 64-bit (which is free).

Well that’s it. Xamarin Studio, the Visual Studio for Mac.





Binary Radix Sort

Exploring radix sort. Radix sort has the reputation of being the fastest algorithm to sort through millions of integers in the computing literature. It has a complexity of \mathcal{O}(nk) where n is the number of elements, and k is the element’s length.

I modified the version on the Wikipedia to use binary representation to sort the unsigned integers. Here is my version in C#: