.NET Development on Mac

What did you say?

Just a couple of short years ago, the idea of using a Mac for .NET development would have sounded completely insane, but much has changed.  The .NET Framework has since been open sourced and Microsoft has been clear about its intent to make .NET development cross-platform, which it has achieved with the release of ASP.NET 5.

Enter Visual Studio Code

It’s no Visual Studio 2015, but Visual Studio Code is an Electron-based editor for .NET along with support for a plethora of other languages.  It has a debugger, intellisense and many other features that you would expect from Visual Studio.  While I’m sure that their will be a full, cross-platform version of Visual Studio in the future, Visual Studio Code is a great option for Mac and Linux users.  (Tip:  If you ever need to do a web search for Visual Studio Code related content, search for VSCode instead.  That will return results specific to Visual Studio Code, rather than Visual Studio.)

Staying Connected

Visual Studio Code has git support built in, but if you’re like me then you also do work on .NET projects over FTP.  While Visual Studio provides FTP support, VSCode does not at this time and plugin support is still coming in a future release.  I have found a great option for using VSCode over FTP with the help of Transmit.  Transmit will allow you to mount an FTP site as a drive and then VSCode can open that drive as a working folder and take over from there.  Transmit will take care of transferring files in the background for you.  It is an all around great FTP client.

Where’s the Remote?

As a part of my switch to the Mac, I was almost embarrassed to be discovering so late that Microsoft Remote Desktop is so much better on the Mac than it is on Windows.  Remote Desktop has a much better way of managing saved connections than the simple drop down list on the Windows version.  My favorite feature by far is that each open connection displays as a new desktop in Expose, making it very easy to manage all of your open desktops.

For All Else, There’s Virtualization

Sometimes you just have to work in Windows.  There’s no way of getting around it and Windows 8.1 is great and only getting better with Windows 10, so why should you?  Using Boot Camp you can install Windows on a separate partition on your Mac, but then you need to completely shut down your session in OS X when you need to do work in Windows.  These days that is just not necessary as virtualization is as good as working on a machine natively.  With Windows installed in VirtualBox, an adequate amount of memory assigned and the VM in full screen mode, I can hardly tell the difference between working directly on a Windows machine.

I’d love to hear about your experiences moving to the Mac for development.  Leave a comment below.

CodeCalculated Web Site Launch!

For the launch of CodeCalculated, I have built an entirely new web site.  I wanted to throw together a blog post that goes in depth on the technologies that were used and a little bit about the development workflow.

The web site was built using Docpad, a fantastic, node based static site generator that I am growing to love.  Docpad takes a set of template files, static content and HTML documents which it combines to create a full fledged web site.   Your template contains all of the repeating information on your site, such as navigation, footer and stylesheets.  A document file represents each page of your site.  You just tell Docpad which template to use, provide the page content in your document and the output is a set of flattened pages ready to be pushed out to your web host.  I keep an instance of Docpad running with a web server pointed to the output directory so that I can view my changes instantly.

The front end is much more basic.  I chose Bootstrap, with some slight style modifications to achieve my look.  I tend to waver back and forth between Bootstrap and Foundation, but now I’m back to Bootstrap.  I find it much easier to customize and it contains much more of the visual elements that I like to use, such as the glyph icons.  With either framework you get a set of scaffolding components that make responsive design a piece of cake.

At the moment I do not have any true back end functionality on the web site, so I can host it easily on Amazon S3.  The process for setting up a bucket for hosting static web sites on Amazon S3 is very easy.  You can check that out here if you are interested.  In the end, it’s the most affordable static hosting solution available and you only pay for what you use.

The web site was coded entirely using Atom on the Mac.  Some graphics work was done using Paint.net.   That’s it.  A very simple tool chain for development.

Take a look at the web site at codecalculated.com and let me know if you have any feedback.