Hacker News new | ask | show | jobs
by timsneath 3397 days ago
A few quick thoughts on the topic of ISOs, to give you all a little extra context.

1. Visual Studio 2017 is a huge product, because we support so many types of development: from Android to UWP to C++ to Unity to Linux. If we were to still offer a 'full' install, it would come in at over 50GB. That's one huge ISO image!

2. We surveyed hundreds of people during the previews and RCs, and people told us that they had historically used an ISO for two reasons: (i) because they wanted to download once and create a network install for enterprise deployment; (ii) because they had a shaky internet connection and wanted to be sure they'd downloaded successfully before installing. A single monolithic ISO isn't the best solution for either of those scenarios - it's just the one that people are habituated to over all these years.

3. For the former (enterprise deployment), we have a full administrators' guide that provides detailed guidance on how to deploy the product: https://docs.microsoft.com/en-us/visualstudio/install/visual.... This includes PowerShell scripts, examples of using the installer to create and update a network cache, descriptions of how to deploy Visual Studio in a fully offline environment, and so on.

4. For the latter, we've worked really hard to improve the robustness of the installer. The componentization work we've done means that the smallest install is one-tenth the size of Visual Studio 2015, making it far more likely to succeed. And other typical installs are smaller too. We download VS in small packages that are more likely to succeed, and we use multiple ways (WebClient, BITS, WinInet) to download those files to minimize problems with AV and proxy software. If you want to download first then install, you can use the offline guide to cache just those pieces that you need, which we've just rewritten for RTW: https://docs.microsoft.com/en-us/visualstudio/install/create...

5. Because of the nature of our product (rapidly updating, lots of third-party components), an ISO is problematic. We don't have the rights to redistribute several large components (including Android), and others update on a rapid cadence that often includes critical security fixes, meaning an ISO image is incomplete, often outdated, and potentially insecure. Most customers assume that an ISO would support offline installation, but that's not true. And so we fear that offering an ISO will just creating more disappointment.

Lastly, we're listening to requests for an ISO and paying attention to the feedback we're getting; at the same time, we're hoping that this is the release where we can gently move forward to a new model that better supports delivery of developer tools at a fast, well-maintained cadence.

Hope this is useful context. And again, we're listening :)

Tim Sneath | Visual Studio Team

6 comments

The lack of an ISO is a bit anti-enterprise I feel. Working in a bank with firewalls that flag a lot of stuff as false positive blocked items using the builder is problematic. The 2015 ISOs solved a lot of issues for us in terms of building a deployment via SCCM. I'm getting a headache just thinking about trying to get pulling hundreds of packaged executables through the firewall signed off by IT Security.

I feel an ISO including only standard packages from Microsoft itself would solve a lot of issues.

Layout is really crappy around blocked files or corporate firewalls. It feels untested in anything other than a completely open environment because some of the package downloads can fail silently with a fuzzy enterprise proxy. Creating layouts for patches seems dependant on what direction the wind is blowing, I think 2015 Update 3 took about 4 tries to download everything correctly and only way to verify was reading through the logs. Also that one needed a random Windows KB update on Windows 7 which was extra fun.

Better handling for layout around error handling and validation of downloads would be a boon. It would be great if there was a way of verifying an already created layout. Is there any way?

No one is asking for a 50GB ISO. ISO is another way of saying "a single file". If you could provide a single ZIP file with SHA or MD5 hash we are happy too. Look at Xcode - the main bundle is around 3GB and all the SDKs, simulators, and documents are available as in-app downloads. Or you can look at Android Studio, or Eclipse. The base software package is relative small and there are options to download plugins/components.
Tim.. in this day and age of broadband and terabyte drives, 50GB file size is a non issue. A 50GB file can be downloaded while I am having lunch, during the day while I am working or overnight and it's available the next time. No rush.

- During the installation, the installer can download the smaller needed updates. SQL Server installation does that.

- A company can download the 50GB file once only and put it on a network drive and the developers can install it from there. It saved bandwidth for the company instead of each dev downloading the same bits over and over.

- What about the machines that are not connected to the Internet? You mentioned there are ways around this.

I am fine with none ISO's but I wanted to post the counterarguments.

"The componentization work we've done means that the smallest install is one-tenth the size of Visual Studio 2015, making it far more likely to succeed" - Is VS going to be a UWP in the future? An installer is so 1999
"an ISO image is incomplete, often outdated, and potentially insecure" is simply not true. If we use the --layout option to download the package for offline installation, the packages can also be "incomplete, often outdated, and potentially insecure" after a while.Worse yet, because it's just a folder, people can add/remove file from the offline installation folder.
"And so we fear that offering an ISO will just creating more disappointment." - well, no, what we want is not a "ISO" file, but a single file can be downloaded easily. Look at Xcode please, that's how IDE update should be done. You don't need to innovate, just do exactly what Xcode does.