I remember when I was first getting started with the .NET Framework back in 2003. I had delved a bit in PHP, Java, and then I started a project in C++...that is, managed C++ running on .NET for which I had to download and install Visual Studio 2003. Shortly after, I found C# and it was love at first code. Fast forward to 2016 and today .NET Core has expanded its reign to Mac and Linux, and consequently the .NET tooling is following suit by making itself available on Mac in the form of the beloved Visual Studio IDE. It's nothing short of an amazing feat in the story of .NET so far.
So after the Connect(); 2016 conference and the announcement of the Visual Studio for Mac (Preview) I went ahead and downloaded the preview in order to try it out. In this post I aim to highlight my first impressions using the tool from a web development perspective. So let's get started.
The installation was for the most part straight forward. However, since I do not usually develop for iOS native applications, I had to remember to install Xcode (required by Visual Studio for Mac) first before I could successfully install the Visual Studio for Mac (Preview). Just something to remember if you don't already have it installed.
After Xcode was installed I tried to install Visual Studio for Mac, but during part of the installation I did get a failure during the process. However, I just restarted the install, crossed my fingers, and the application installed that time without any issues.
As part of the installation I got a prompt asking me for what components I would like to install, I just went ahead and chose the ones that were checked by default (all of them) and continued.
After it was all said and done I got a brand new Visual Studio icon next to my Visual Studio Code icon, the blue and violet duo. :) I clicked on the Visual Studio for Mac icon and voila!
Booting up with ASP.NET Core
After taking a look around and "right clicking on everything" I wanted to see the IDE run an actual project, and since my current focus is web development I clicked on File/New Solution and under .NET Core/App/ASP.NET I chose the ASP.NET Core Empty Web Application (C#) and gave my new test solution a name. The template, as its name implies, is pretty much bare bones so not much to see there. However, I had another ASP.NET Core sample application that I had created in Windows using Visual Studio 2015, so I thought I would copy it over to my Mac and open it up on the Visual Studio for Mac (Preview) IDE and see how it worked. This is where the fun started... :)
A few hiccups
Alright, so keeping in mind this is still a preview I figured some things might not work as expected and sure enough I hit my first hiccup when I tried to open the Windows version of a sample ASP.NET Core project I had being playing with on Windows:
So as you can see, the ".xproj" project format is not supported in Visual Studio for Mac (Preview), and in fact the format will be dropped in subsequent releases. On the other hand, the ".csproj" project format will be making a comeback (for ASP.NET Core projects) and I assume things will work much smoother then. Nevertheless, I did go ahead and started porting my files by hand into an empty ASP.NET Core project on my Mac, however, I stumbled upon a few more issues with package dependencies and such to the point that I found myself spending more time than I would have liked just to try and make things work, at least for now. Thus, I shelved my efforts on that for the time being, as I assume that things will keep changing as new previews are released. But to be fair I have not delved into the mobile first functionality of Visual Studio for Mac yet, although I am starting to do so now and over the next few months. Thus, I am confident it will be an enjoyable quest.
It is exciting to see that Visual Studio is exploring new territories, and I can only assume that someone, somewhere in Redmond is also thinking and working on how to make the same Visual Studio goodness available on Linux.
In fact, I previously blogged a bit about exercising on the promise of cross platform development using Visual Studio Code, which was a much smoother experience in comparison. But regardless of that, there are still some kinks to iron out, not only in the Visual Studio for Mac (Preview), but also in the future of .NET Core in order to make the sharing of Visual Studio projects and consequently .NET code a truly seamless experience. One in which it will not matter what the primary OS of the developer is, because Visual Studio will abstract any OS idiosyncrasies and remove any friction points, in order to allow a .NET developer to truly develop for any platform and on any platform.
If you are interested in knowing more about the upcoming changes to .NET Core, among other many exciting announcements, then I highly recommend you listen to this episode of .NET Rocks in which Scott Hunter, Director of Program Management on the .NET team at Microsoft, debriefs us all on the current and future direction around .NET Core.
All in all, the Microsoft Connect(); 2016 conference was a real hit, and I am excited about the future of .NET and its ecosystem. Kudos for the excellent effort all the teams at Microsoft put forward in order to make things like Visual Studio for Mac a reality. Truly, there has never been a better time to be a .NET developer, and tomorrow is looking even brighter.
Until next time, happy coding.