My team is one of those teams which are called „early adopter“ when it comes to developing technologies. Same is true for Visual Studio and the complete infrastructure of course. The latest release is one of the most ugliest I experienced in this area and I’ll share my experiences with you here. Be warned!
This goes to my regular readers. I decided to write this post in English because I want to reach as much people as possible. Looking at my site analytics the sad truth is that writing in German does not count anymore. That’s why I’m starting to write posts in English too. Sorry to all Germans.
Before I start: readers of my blog should already know, that I’m a huge fan of Microsoft products and ideas and I like their way generally. I say this to avoid misinterpretations. This is meant as a constructive critic and to help others not to fall into the traps.
All startet 2 weeks ago when I completely cleaned up my first PC and installed Windows 10 including VS 2015 RTM. First everything looked great. I could open my solutions and I started exploring all the stuff.
On the second day I felt that the list of problems was so huge that I recognized I needed to create a OneNote-page for this. This is all about this stuff.
Some of the issues I point out here are related to specific technologies and not to the VS itself. I will cluster the problems for clearing that better out.
Performance & Stability
Every major release in the past 3 or 4 years brought a slightly better performance for the tool. This release is the first one since I recognize as slower than the 2013. The tool is freezing on operations like Azure-connections, solution-opening.
Even worse: I restart the Studio like one time per hour because it simple starts lying to me. It stops publishing stuff with strange errors but when I simply restart the program it works. Same happens when I start debug-sessions with IIS in my environment.
I use an Enterprise version of VS 2015 – in other words I have the most expensive subscription one can buy at MS. One part of it was and is the ability to create more stuff for tests. Today I wanted to create a Load Test (a local one not that thing in Azure). I can create it and even the Assistent shows up. But after the file is in the project I can do nothing with it. Trying to open it results in a simple NotImplementedException from VS. What the ….?
Here are some of the screens I see every day:
What about …?
I was suprised to see that the following core components where not finished together with the Studio;
- Entity Framework 7
- ASP.NET MVC 6
Thats a huge change for all VS-fans. Every major release brought something new in those areas. I know that those teams are decoupled from VS now but what is VS 2015 without them? A little smile came on my face when I saw that SlowCheetah is still supported as a Extentsion for VS 2015. This is crucial I think because it was said that it’ll disappear because of the new building system completely. It’s there!
I also would’ve loved to test EF 7 and the new Code First which is not the same Code First as it was before. Or is it? I don’t know.
Now 2 weeks after the RTM the following of my extensions don’t appear:
- SSIS BI
- Crystal Reports
VSCommands makers reported that the SDK-API has changed so dramatically that they have problems to ship a new version.
One of my favorite parts of VS is NuGet which I used to love for it’s seamless integration. Currently it is a constant source of pain.
First of all the NuGet-guys decided for some strange reason that it would be a good idea to UrlEncode all the downloadable informations when you get it from nuget.org. That leads to errors when you try to get packages that need folders containing a „+“-sign. This means that including packages in portable version is painful. Solution: for this: Configure a local package source, download the package from nuget.org to it and install it from there.
Next mindblower is the fact that suddenly the „All“-option in both Package Manager Console and NuGet-window are disappeared. That means that you have to choose from which source to make the update. That’s a huge crap because a lot of people are using different sources and you get problems when of the sources does not contain ALL dependencies and versions that you target. The missing „All“ is already an accepted bug at NuGet.
Important for all NuGet-users: Package Restore has changed dramatically! Go to NuGet and read the specs there. The .nuget-Folder should not be used anymore. No one is talking on transition from old solutions their but thats normal. Let’s see.
Things can happen but how could they mess the stuff up which worked perfect before? BTW: Those problem where not there in RC-state as far as I know.
With the new VS there is a new Azure SDK 2.7 available. This element is crucial when it comes to everything regarding the Microsoft Cloud which is obviously very high rated in Redmond. This message was somehow not received at the SDK-team I guess.
I have 2 different Azure Subscribtions. In both I’m admin with the same Microsoft Account. Know when I log into Cloud Explorer (new) or Server Explorer with this Microsoft Account I only see the ressources of one of them. My other subscription is alive and everything works fine but it does not appear in VS. Those of you using cloud-tools from MS know that this is a little catastrophe in its own!
Edit: Here is a screenshot with the Subscription-Manage-Window of both Studios 2013 and 2015 side-by-side. Note that I installed this 2013-version after gettings trouble with 2015 and that it already is using the latest Azure SDK too:
Even the newest stuff from Microsoft is not freaking able to store my Azure credentials permanently. I can reproduce this by logging into Azure on my PC, closing the VS there, doeing the same on my Laptop and loosing the login at the next VS-start on the PC. Meanwhile I hate this litte „Keep my signed on“-thing at the login box because it’s too ironic for my taste!
Azure Publish is still the same nichtmare when you are working on different machines or with team mates. One is configuring the publish options and the other person has to overwrite or re-import them because even if you wanted to there is no options to store these passwords. Why MS?
I can’t deliver any performance values but it seems to me that the Azure tooling is slower than it used to be. I tried to update a SQL Azure table via the tools and experiened 2 minutes of a completely blocked VS.
Edit: Web Essentials
I was suprised that the Web Essentials 2015 extension was installing very quick. After a while I recognized that you need a second extension called Web Compiler to get the ability to handle LESS, Scss and so on. When you open a LESS file now for instance you don’t get the nice split screen any more. You have to right click a LESS file and hit compile to get the corresponding CSS instead.
This is not an error or the fault of Mads Kristensen. It is because the next version of Web Tools will handle this stuff using technologies like Bower. The bad thing is now that this next version is not available yet. So now this means that using 2015 I get less features at the moment.
I was curious to see what will happen to mobile development under VS. To all of you who don’t know much about it: It is the new version of DLL hell when you want to create Multi-Platform-Apps. I don’t mean the fact that the 3 big players are making everything differenz. I mean the installation and configuration of your development environment.
Let’s step a little back in time and take a look at the VS-2013-problems:
Xamarin could’ve solve it for us but they act like freakin Ferengies from Star Trek! You have to pay about $1000 per year and seat for each platform they support (Windows is included in VS already – thanks MS!). Now let’s say my collegue is developing with Xamarin and he got the license. His project is part of our solution. That works.
Now guess what happens when I try to open that solution and there is a Xamarin-project in it. On nearly every action (even a simple build) a modal dialog comes from Xamarin asking me to enter my license-credentials or buy the right version! I needed to create differenz sln-Files because of this. And no, it does not help to take those projects out of the build-order!
Now back to VS 2015. I was excited when I heared that Xamarin can be installed right at the VS-setup. That smelled like a form of better integration and solution for our problem. But that was a dream. MS simply added the Xamarin-installer and the same windows appear in VS 2015. This means, that it’s nothing but a marketing gag for Xamarin. I don’t get the point. Go there Sadya and buy this company finally! What’s the point?
Edit: Side-by-Side is not an option
First I installed 2015 next to 2013. This works but you get strange results when you try to keep both versions up to date. VS 2015 brings a new version of SSDT for instance. You can update it but then you can not install the update for 2013 because the setup complains that there is already a newer version of SSDT installed.
Edit: Why so furious?
After re-reading my own post and adding some additional stuff I recognized that there is a slightly furious note in it. I tell you why I leave it this way. VS 2015 is not a Beta or RC or something like this. Microsoft released the RC months ago and me and many other developers started gibing feedback on it. This process makes no sense if the RC is behaving different from the RTM and when things like EF 7 or vNext don’t come at the RTM time.
On the other hand I don’t understand why big companies like SAP are not able to update their extensions at the time the RTM is finished. This version I’m complaining about is a product. I pay a lot of money and – even worst – spend a lot of time in dealing with bugs for a thing that is centric to my business.
I like Cloud-first and Mobile-first in principle. But nothing will happen in this area when VS is not stable. I can’t understand the logic here and that’s why I’m angry.
So what’s the point?
I wanted to share the main problems with you guys. We are discovering some solutions for those problems actually and one of them I posted already (see Nuget). But that’s not the point.
MS is telling us, that they give us the tools for ALM (application lifecycle management). They want us to exactly avoid the type of things that happened here. In my opinion this is a time machine to the old days when the Marketing would say something like „Hey dev-guys! Windows 10 is going to be pushed and nobody can develop for it. Release what you’ve got and we’ll see! Let’s put a smile and a frown at the top of this thing and people are happy!“.
Dear Microsoft: you can do this kind of stuff with end consumers for a while. A developer is a person who knows what you’ve done instantly. Don’t go back to your roots because the new way was far better!