HN Theater @HNTheaterMonth

The best talks and videos of Hacker News.

Hacker News Comments on
Visual Studio 2017 Launch

launch.visualstudio.com · 242 HN points · 0 HN comments
HN Theater has aggregated all Hacker News stories and comments that mention launch.visualstudio.com's video "Visual Studio 2017 Launch".
Watch on launch.visualstudio.com [↗]
launch.visualstudio.com Summary
Write code using code completions, debugging, testing, Git management, and cloud deployments with Visual Studio. Download Community for free today.
HN Theater Rankings

Hacker News Stories and Comments

All the comments and stories posted to Hacker News that reference this video.
Mar 07, 2017 · 242 points, 165 comments · submitted by JacobLinney
erryoiruye
Where did the ISO:s go? Please give us something with a known hash.

I attempted to create the offline installer [1] but the vs_community.exe just silently quit after some mintues, having downloaded only some certificates.

The custom download idea is easily planted with malware and all those bad things. Also, please consider upgrading from SHA-1.

> We understand that a lot of customers want an offline installer for Visual Studio 2017. Even though we don't offer an ISO image, it's easy to create your own.

1: https://docs.microsoft.com/en-us/visualstudio/install/create...

LyalinDotCom
Due to licensing complexity of today's installer we just can't make the ISO for you but in the link above as you pointed out you can create your own. We're sorry for that but its what we can offer today.
erryoiruye
Okay, well. Will MSDN subscribers get iso's eventually?

It seems also to be broken, or your servers are choked :-(

LyalinDotCom
Demand is very high but honestly I'm not 100% aware of MSDN Subscriber ISO status. I will report this comment to that team though
yiwang110
"Due to licensing complexity of today's installer" - LOL

If there is licensing complexity in making an ISO file, just make a ZIP file of the whole thing.

tracker1
The licensing complexity comes from things like downloading cordova and the android sdk, etc... Which are options that you can select. Distributing in ISO form, would mean changing the installer license, as opposed to optional licenses to agree to, you have to then composite the whole.
yiwang110
easy - how about making cordova, android sdks, etc as a downloadable component after the main Visual Studio is installed?
tracker1
Which then negates the purpose of an offline installer...
orf
> easy... just do this thing I have no idea about nor any clue how it would implemented

lol.

jasode
Fyi... I just tried the offline download and after 34 minutes, it is hung and won't finish.

The command line I used:

  vs_Enterprise.exe --layout z:\VS2017_RTM --lang en-US
last lines of the console:

  ...
  Download of 'https://go.microsoft.com/fwlink/?linkid=823168' succeeded using engine 'WebClient'
  Download of 'https://go.microsoft.com/fwlink/?linkid=833503' succeeded using engine 'WebClient'
  Download of 'https://go.microsoft.com/fwlink/?linkid=833501' succeeded using engine 'WebClient'
  Download of 'https://download.microsoft.com/download/B/5/5/B55373E5-8948-41DF-B1D5-F60896104294/WinSdkInstall.ps1' succeeded using engine 'WebClient'
  Download of 'https://go.microsoft.com/fwlink/?linkid=838828' succeeded using engine 'WebClient'
stats of the target directory so far:

  2,631 Files, 1,005 Folders total  14,444,652,261 bytes

I previously got the offline download to complete with version RC1 in November 2016 but RC2 in Janurary 2017 always hung in the same spot. I didn't pursue RC2 troubleshooting since RTM would be available a month later and I hoped whatever problem with RC2 would be resolved in RTM.

Well, it still doesn't work. Please let the MS team know that there's something about the offline download ("--layout" option) that's fragile and prone to hang. I don't believe it's an issue with overloaded servers because when I tried multiple times with RC2, it always hung on the exact same file whether it was morning/night/ weekday/weekend. I suspect the current problem is similar.

I took a screenshot of the hung process for RC2 in January and it seems to hang right after downloading WinSdkInstall.ps1 which is similar to RTM behavior:

RC2 hung in January: http://imgur.com/a/uwfoj

RTM hung in March (today): http://imgur.com/a/QxqC3

timsneath
Thanks the report, @jasode. I'm bringing in a few folk to take a look.
timsneath
Unfortunately the printed logs only show what has been downloaded, not what is currently downloading. I know - that's not very helpful in this case. It would be really useful to see the more detailed logs, which are stored in the %TEMP% folder. It might be that it's not hung at all - if it's a really large file that's being downloaded. If you're willing to mail me at [email protected], I'd be happy to work with you to grab your detailed logs and investigate further.
jasode
Thanks for your reply. It helped me get past the problem.

I want to the %TEMP% folder and looked at dd_setup_2017??.log and saw that it last executed:

  Running: C:\Windows\SysWOW64\\WindowsPowerShell\v1.0\powershell.exe with parameters: -NoLogo -NoProfile -ExecutionPolicy Unrestricted -InputFormat None -Command ...
I then went to Task Manager and noticed the powershell.exe command hanging with 0% cpu consumed.

I remembered that sometimes those commands hang on network paths so I ran "vs_Enterprise.exe --layout" again to local "C:\VS2017_RTM" instead of mapped "Z:\VS2017_RTM".

It then completed without hanging. The completed target folder has:

  1,901 Files, 765 Folders  total  22,171,951,890 bytes
It seems strange that the successful completion results in less files & folders but 8 more gigabytes. I assume some intermediate scripts cleaned up some files.
timsneath
Great - so glad that you're up and running. Thanks for the update. We'll take this back and see if we can repro this in-house.
neilsimp1
Scott Hanselman had a blog post a while back about this. Maybe his instructions will help? (I haven't compared this against your instructions so for all I know they're the same steps.)

https://www.hanselman.com/blog/HowToMakeAnOfflineInstallerFo...

timsneath
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

yiwang110
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.
tony2016
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.

yiwang110
"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
yiwang110
"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.
yiwang110
"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.
Hansi
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?

mistermann
For those who don't know, VS community is feature wise almost identical to professional, less CodeLens, Azure benefits, and TFS features.

https://www.visualstudio.com/vs/compare/

gnud
Note that you can't use VS community for your work if your organization has either of 1) more than 5 developers 2) more than $1 mill in revenue 3) more than 250 computers
dragonwriter
You can, if the work is contributing to open source software.
user5994461
What happened to VS express?
Coincoin
It still exists unfortunately. I say unfortunately because the multi billion company I work for is too cheap to spend a bit of money for our most important tool if a free gimped version exists.
user5994461
Mine has unlimited paid licenses with one-click install for most Visual Studio editions. Time to swap to a company that provides better tooling =D
gruez
>more than 5 developers

*more than 5 developers using visual studio community

gnud
Good point, thanks. Still close to useless for professional use, which I guess is Microsofts idea.
chrisbennet
Same as Apple - they don't have a free edition of the MacBook Pro. ;-)

As a one man shop, I used to buy Visual Studio but now I don't, so I'm thankful for the Community Edition.

Raphmedia
Good enough if your company has a small but experienced IT department with a few designers, a bunch of front-end guys on SublimeText and a handful of .NET guys.
LyalinDotCom
Also folks should check out or comprehensive release notes: https://www.visualstudio.com/en-us/news/releasenotes/vs2017-...
pornel
Sadly no mention of any improvements to their C compiler :( The C99 support is still incomplete and it looks like MS has given up on C.
MichaelGG
I'm using 2015 to develop a library for Linux. Their Linux support works great - pulls up gcc, debugs, etc. But it doesn't understand _Atomic in the IDE and so I get a lot of errors in Intellisense and stuff. It's sort of fair since I'm not sure I fully understand C11 atomics, but I like my IDE to be smarter.
pjmlp
It is called Visual C++ and hence the focus is on C++. The only C related updates are done to the extent as required by ANSI C++.

For anyone else that still wants to write straight C, there are other compilers and Microsoft has integrated clang's frontend with VC++ backend.

This has already been communicated in a few places.

Cloudfare's crash just proved once more why the world needs less C.

xorblurb
Your last sentence is curious because it's highly debatable whether the world needs less C to get more C++ ...
pjmlp
C++ provides the tools that C lacks for writing safer code.

Of course it doesn't help if people write "C with C++ compiler" and better alternatives are desired, where copy-pasting C code is not possible.

Eventually one of the current candidates will won over the roles of C and C++, except for environments married with C, like UNIX derivatives.

Until then, when the choice boils down only to C vs C++, there is no question that in regards to language features for writing safer code, C++ is the only possible answer.

xorblurb
C++ would not have helped as a target language for compiling Ragel, at the level the compiling is done. Actually IIRC Ragel enhanced their output to mitigate that kind of situation, and the intermediate language they target is still C.

I'm not sure anybody targets C++ as an intermediate language when emitting code at this level. (I do have written some code that emits some C++, but at a wildly different and higher level). I'm not sure this would bring any value.

pjmlp
Of course it would have helped if they made use of a std::vector like class with bounds checking enabled, instead of a pure C array.

"Many years later we asked our customers whether they wished us to provide an option to switch off these checks in the interests of efficiency on production runs. Unanimously, they urged us not to--they already knew how frequently subscript errors occur on production runs where failure to detect them could be disastrous. I note with fear and horror that even in 1980, language designers and users have not learned this lesson. In any respectable branch of engineering, failure to observe such elementary precautions would have long been against the law. "

Hoare, 1981 -- http://www.labouseur.com/projects/codeReckon/papers/The-Empe...

xorblurb
I'm still unsure of the rate at which this could be a solution to leverage checked C++ library types, and whether in the precise case of the Cloudfare issue this would be applicable. However I still think that in most case if you must handle out-of-bound conditions from a checked language outputting to an unchecked one, you just emit your checking code yourself...

Also the C++ standard is 1500 pages long. I prefer to avoid knowing that as a backend language when I can...

pjmlp
> you just emit your checking code yourself...

Which C programmers keep failing to do, regularly, according to the CVE database.

> Also the C++ standard is 1500 pages long. I prefer to avoid knowing that as a backend language when I can...

Which includes the libraries that C lacks.

ANSI C + POSIX isn't much shorter than that.

xorblurb
> Which C programmers keep failing to do, regularly, according to the CVE database.

Again, we were talking in the context of the language used as a backend, output by a compiler using an other higher level language as the source.

MichaelApproved
It's a live video stream, so you might be watching in the middle. Jump to the 1:10:00 mark to start watching at the beginning of the presentation.
Jare
Is it viable for those of us with only a handful of GB free in our C: drives? 2015 and previous would only put a few bits in the "install location", and still pollute the C: drive with up to 20 GB of stuff of hardcoded paths.
yiwang110
LOL - typical MS software.
Jare
I installed the basic C++ tools (precompiled modules, Win10 and 8.1 SDKs, etc) and it has taken 2.5GB out of my C: drive (hardcoded location for the Windows 10 Kit apparently) plus 2GB on my install location.

Then I added NodeJS tools and everything went into the C: drive.

If I select Cordova and other Android and mobile stuff it quickly complains that I do not have enough space - which suggests these tools and SDKs are hardcoded to C: as well. I have not investigated in more detail.

hackinthebochs
Windows junctions to the rescue
Jare
I recall from previous versions that attempting to use junctions would seriously screw up the updater. Given the amount of problems I had to completely uninstall vs2015 a while ago, I totally believe it.
n00b101
I'm excited to use VS 2017 and generally very pleased with their C++ language support and integrations like git and cmake.

It's a minor nitpick, but I must say I was disappointed to see this issue unceremoniously closed: https://visualstudio.uservoice.com/forums/121579-visual-stud...

sundvor
Your comment must have been seen, as it was just reopened and put on backlog. Hi, MS team members! :)
ebattalio
It has been reopened.

I am curious, did you vote for this item? If so, did you receive an email when we closed it?

Thanks! Eric, VC++ Team

n00b101
Cool! No I had not voted, but did now.
ebattalio
:D
None
None
petercooper
I don't use them very much, but this stream reminds me Microsoft really does a fantastic job of presenting its work in the developer tools space.
LyalinDotCom
thank you, we worked very hard on this keynote and the two day agenda. Today after keynote we'll have various interviews with Brian Harry, Miguel de Icaza, Julia Liuson and others. We'll then do various technical demos on top product features.

Tomorrow we have a full day of training for both a Web and App development track. Hope folks tune in and all the details are up on http://launch.visualstudio.com

None
None
interdrift
VS 2017 is rounding up to be the best 2017 yet released. It's much faster and packed with tons of useful new features. Pretty happy with using it!
interdrift
Now only if u would fix the damn XAML editor crashes!
moogly
Have you checked out Ammy[1]? It's been great to me so far. It does hot code reloading during runtime, so no need for a crummy designer that crashes 30 times every day (the XAML designer isn't 100% WYSIWYG anyway).

Plus, IMO, the language is a lot more readable and enjoyable to author in than overly verbose XAML.

[1]: http://www.ammyui.com/

partycoder
I've used Visual Studio for many years.

Visual Studio 5.0 was very responsive. Visual Studio 2015 is not as responsive. Nowadays it seemes a bit bloated, even after disabling unused plugins and features.

Switched to CLion and Rider, which are not known for their speed, but feel more responsible than VS to me. That and a more affordable price and cross-platform support.

tony2016
There's so much productivity features in VS there's no excuse to invest in a faster machine. Or add more memory. Memory is cheap.
LyalinDotCom
I am sorry we lost you and we're very aware of the need to improve IDE performance and have invested a lot into this release towards that goal. Just one example to read is this blog series when the product was still codenamed VS "15". https://blogs.msdn.microsoft.com/visualstudio/2016/10/14/imp...

(VS "15" is Visual Studio 2017)

We also have Visual Studio Code for those who want a lighter code editor, see: http://code.visualstudio.com

m_fayer
I have the feeling that a big problem with VS is less about raw performance and more about old school blocking code, ironic considering how good C/F# are for async programming. VS just tends to "freeze" where other IDEs would throw up a spinner somewhere and let you carry on more or less unmolested. It does seem to be getting better though, keep up the good work!
Pxtl
From what I'm hearing from the talk, there's a heavy focus on making the individual components faster, but my biggest performance problem si that slow things lock up the whole IDE. I'm okay that some thing take long but when they mean I can't edit anything, even completely unrelated stuff when you're grinding away opening the lousy table designer UI in SSDT, that's a big problem.
xiaoma
I used to be a pretty big fan of VS Code until it started defaulting to Powershell recently. Due to PS security policies, common development tasks are blocked in all but the most common tools. It's also got some aliases that get in the way. I know it's possible to get around these issues, but it's enough of a hassle that I migrated back to Atom for web development.
signal11
My experience of installing VS Community Edition several years ago was that it downloaded a lot of dependencies when I requested a fairly basic C# and C++ environment: versions of SQLXML, Windows SDK, etc, which had to be managed and upgraded separately.

Is it much more self-contained now? perhaps via nuget?

mastax
New Installation Experience - A reduced minimum footprint for faster and more customizable installations, as well as support for offline installs.

Visual Studio IDE - A broad range of enhancements in Visual Studio 2017, including reduction in startup and solution load times, sign in and identity improvements, improved code navigation, open folder view, and connected services enable connections between your app and any service on-premises or in the cloud.

https://www.visualstudio.com/en-us/news/releasenotes/vs2017-...

partycoder
The perceived performance might not be necessarily only due to Visual Studio itself.

Could also have to do with the filesystem in newer versions of Windows (file operations seem slower in modern versions), the shell, background services and other characteristics of the OS.

LyalinDotCom
I help launch products here at Microsoft and run developer events (including this launch) but at heart and for 18+ years I'm a developer first, and I can totally relate to what you mean in terms of everything being part of the bigger story that matters.

I am very biased so don't listen to me lol, but I do think Windows 10 and the various developer tools release we've done over the last few years have really pushed things forward but of course we are very much listening to our community so please make your voice heard.

partycoder
Well, in fairness, it is a very solid product.

I haven't quantifiably measured the time that each operation takes, so I might be biased to some extent.

louthy
@LyalinDotCom, if you want a real world example of something causing poor performance, then clone my project [1]. There are a couple of 3mb T4 code-gen'd files [2][3] that bring VS to its knees. I suspect it's actually the Roslyn compiler, but can't be certain. I know that if I wipe the code in those files then the performance is restored.

[1] https://github.com/louthy/language-ext/

[2] https://github.com/louthy/language-ext/blob/master/LanguageE...

[3] https://github.com/louthy/language-ext/blob/master/LanguageE...

hackcrafter
Very cool that their "Mobile Center" SDK has React Native support. [0]

This looks very feature competitive with the "AWS Mobile Hub", even going beyond it with its CI app build integration with GitHub and device simulators!

Also, although they announced Amazon Pinpoint in December, there is still no support for it in their "beta" React Native Mobile SDK [0] (Which has had no commits in 5 months)

[0] https://docs.microsoft.com/en-us/mobile-center/sdk/getting-s...

[1] https://github.com/awslabs/aws-sdk-react-native

LyalinDotCom
We also have a new video on Mobile Center if you're interested, we just released it as part of launch event:

https://channel9.msdn.com/Events/Visual-Studio/Visual-Studio...

(its by the product team)

hackcrafter
I'm curious if CodePush[0] can be used along side (or integrated into) Mobile Center.

That seems like a no-brainer if you are supporting React Native based apps.

Also, I didn't see any support for platform native Notification APIs for React Native. The current notification service is for pure-JS / Cordova[1]

[0] https://microsoft.github.io/code-push/

[1] https://azure.github.io/azure-mobile-apps-js-client/

axemclion
Yes, CodePush can be used with Mobile Center - here is a demo video (https://www.youtube.com/watch?v=lfqZ8Uy2p3U)

CodePush will also be integrated into Mobile Center, so that you can also making CodePush a part of your CI process. We are also working on adding support for Authentication, storage, testing and Push notifications.

[I am the PM on CodePush and React Native Mobile Center stuff]

hackcrafter
Awesome to hear!

Do you have a general timeframe?

I'm going to be deciding between Azure Mobile Center and AWS Mobile Hub in the next couple months for a personal project.

axemclion
You should be able to use Mobile Center and CodePush separately today. We are planning to incrementally roll out a backward compatible solution over the next 2 months.
DashRattlesnake
Does anyone know how to unsubscribe from the "Your Visual Studio Subscriptions update for March" spam emails from Microsoft? I think they're super annoying, and have no unsubscribe instructions at all. I just got one announcing this launch.
will_hughes
Microsoft emails are absurdly hard to unsubscribe from.

I've had to resort to dropping MS domains at our exchange edge to stop receiving them.

Their Azure sales team are even worse - I've actually had to shout (repeatedly) at them to stop them from calling me, all because I wanted to try Azure AD as a test. They're on my permanent blacklist now, I won't even consider Azure because of the constant harassment over email and phone.

greggyb
The answer to any sales calls that won't stop (I found this out by happenstance):

"We're a consultancy selling services for these tools/products."

or

"We're a competitor, and I registered for your free trial for competitive research."

In my case, these are true answers, but I never get more than one sales call from anyone.

I can't help you on the email front, but it's easy to set up filters for those.

cm2187
Usually a new version of VS comes with a new version of the .net framework. It doesn't seem to be the case here. I can't see the tuples announced for VB for instance.

I am getting an error with Dim p As (x As Integer, y As Integer) saying that I am missing a reference to 'System.Runtime.CompilerServices.TupleElementNamesAttribute' (but if tuples are part of the language why do I need an external reference? and this assembly doesn't seem to exist anyway). In fact right now a simple empty command line program containing nothing more than the below hangs the VS IDE completely...

  Module Module1

    Sub Main()
        Dim p As (x As Integer, y As Integer)
    End Sub

  End Module
louthy
I can't comment for VB or the error you're getting, but System.ValueTuple is a nu-get package that facilitates the new tuples in C#; so maybe try including that in your project?
cm2187
But how can it be called a new language feature if it's not supported unless I add some external references (and the what's new page doesn't make any reference to a nuget package).
louthy
The type is library code, the only part that's a language feature is the grammar. ValueTuple is a type like any other, and the CLR will need it referenced to use it.
cm2187
Microsoft seriously needs to rediscover the value of simplicity. I don't need to install some third party library to use tuples in python. Tuples being part of the language means it just works.
recursive
Well I mean, it's not 3rd party. It's a 1st party library.
cm2187
My point is that it's not even an assembly which is part of the installed .net framework. It's an assembly that needs to be downloaded from the internet. That's not exactly the syntax of the language nor a model of simplicity... Again compare it to python.
recursive
I pretty much agree with the essence of what you're saying. However, it could still be syntax. For instance linq query expressions are a defined to translate into various .Select(), .Where(), .SelectMany(), and other method calls. However, those methods aren't necessarily defined in the standard library. I mean, they usually are, but they could be just as easily defined for a given type in a 3rd party library. So this isn't an entirely new concept in .net.
Metasyntactic
Hi CM, i'm Cyrus, a developer on the C#/VB IDE.

First: The benefit of this approach is that people can now use this sort of feature down-level. i.e. you can interoperate with this code even if you're on a previous version of C# or VB. Also, it means that the libraries can be rev'ed independently of compiler and IDE releases. There's a lot of value in having this sort of thing. And in the past people would rightfully complain about the lockstep nature of wanting to adopt a language feature, but having to switch over an entire toolchain to do so.

Second: We actually do have a feature to help you out here. It's available in C# in RTM and will be in VB in the next update. If you enable: Tools | Options | Text Editor | (C#/VB) | Advanced | 'Suggest usings for types in NuGet packages'

then we'll offer to add the NuGet package for this for you when you use a tuple.

We'd like to eventually make this option on by default. However, there is a memory cost to it, and we'll need to win back that memory usage in some way so that we can abide by our commitment to VS using less memory and being more lightweight by default than previous versions.

cm2187
But, to repeat another comment I made below, are you satisfied with this solution? Would you expect to have to go to a package manager to use tuples in python? The power of .net, and of visual basic in particular was its simplicity. What I am seing is Microsoft going into the opposite direction, with an ever more fractured ecosystem, .net, .net core, .net portable and .net standard running in parallel. Asp.net and asp.net core running in parallel, winform, wpf, winRT apps, uwapps, xamarin, etc running in parallel. And now when a new feature is introduced in the syntax it requires to add some external dependencies, which can be simplified by changing some default deep into the IDE...

My opinion is that simplicity matters a lot to the success of a platform. And by the way nothing in the error that you display when using tuples in VS2017 suggests a nuget package or an assembly name that can be searched.

Metasyntactic
> are you satisfied with this solution?

Yes. This approach allows for far more interoperability in this space. Instead of having language features be locked into specific compilers/toolsets. You mentioned 'simplicity' and we've traded off one sort of simplicity for another. The approach you would like (which we used in the past) used to not be simple for the customer that wanted the scenarios to work that we're enabling now.

> Would you expect to have to go to a package manager to use tuples in python?

I could definitely expect that new language features might require library updates, yes.

> My opinion is that simplicity matters a lot to the success of a platform.

I think a lot of things matter to the success of a platform. For every developer who wants the type of simplicity you mention, there are developers who want other sorts of things to be simple.

> And by the way nothing in the error that you display when using tuples in VS2017 suggests a nuget package or an assembly name that can be searched.

Yes. We could certainly make this experience better, and that's on me. However, as i mentioned already, there were difficult constraints to balance. We're hoping that our work moving things Out-Of-Process will help make it so that we can just light up this scenario by default. Then, you'd get this error, and the lightbulb would be right there to fix it up.

However, like with all things in development, you can't always get everything you want complete for every release. In this case we did not feel like it was justified to hold back all the rest of great feature work and performance improvements in VS just because users would have to do one manual step with one language feature when working with C#. You are free to disagree with that assessment on our part. But we're always going to end up having to pick a set of things we don't think will make it into any given release, and it's quite likely that for any given release there will be some things that you'd want (and which would make things better) that won't make it.

A great benefit of the new VS is that it's now much simpler for us to ship updates very rapidly. Instead of needing to wait literally years for updates, we can patch things immediately and we can complete features and get them in the hands of users in a matter of weeks. In that regard, i'm ok if this one particular experience isn't perfect. We can improve things as we move forward and continue delivering better and better experiences.

Thanks!

cm2187
Actually I tried using that nuget package on VS2015 but it doesn't seem to work. Is VS2015 support C# only?
dmarlow
What are the dependencies to C# 7? Is it only available on dotnet core and on some future version of full .net?
Metasyntactic
Hey DMarlow, could you clarify your question? A C# 7.0 program should run on pretty much any version of .Net after 2.0. Similar to C# 2.0-6.0.

The only thing we ever really adopted in C# that needed a new runtime version was Generics.

dmarlow
So with c# 7 all I need is VS 2017? It'll work with existing .net 4.5.x and 4.6.x projects? I tried tuples and VS complained. Are there instructions to get that working somewhere?

In order to compile on a build server do I need an updated toolchain?

duncans
Yes. Download "Build Tools for Visual Studio 2017" from https://www.visualstudio.com/downloads/ - then use `C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe`. For the new Tuple support add a NuGet reference to System.ValueTuple.
Metasyntactic
> So with c# 7 all I need is VS 2017?

All you really need is the new C# compiler. You can get that with VS2017, or standalone. But the programs produced by this compiler should be runnable on pretty much every runtime out there.

> It'll work with existing .net 4.5.x and 4.6.x projects?

Definitely.

> I tried tuples and VS complained

What was the complaint? in order to use Tuples, you need a reference to add the System.ValueTuple NuGet package as that's the type under-the-hood that packages up the tuple values so other people can consume them.

This is a nice approach because it means your APIs can use Tuples, while people using C# 6.0 and earlier can still use them. effectively.

> In order to compile on a build server do I need an updated toolchain?

If you use C# 7.0 features, then use. You always need the appropriate compiler to use the latest language features. But you shouldn't need to really 'upgrade' anything else if you don't want to. (You can, of course, if you do want to).

snarfy
I just want to say thanks to the VS team for all their hard work. VS is by far my favorite MS product.
None
None
duncans
Finally seems that wildcards in project files are handled correctly by Visual Studio now, i.e.

    <Compile Include="**\*.cs" />
looking forward saying goodbye to the no.1 source of merge conflicts for us!
suyash
Most of the web dev features they are so excited about already have been in various IDE's (IDEA, Sublime with plugins, Netbeans etc) for couple of years. Some of which are source map, live reload, linter, ES5/6 support etc.
ramshanker
I am on bazel learning curve and was searching to integrate Bazel build system with visual studio (xamarin) project, apparently Bazel support for windows is still too nascent. I home something comes up on this lines.
None
None
vladimirralev
So is there a Mac version?
LyalinDotCom
It's not GA yet (only Visual Studio 2017 for Windows is GA today) but we have shipped an update so Visual Studio for Mac Preview 4 is now available.

Details: https://blog.xamarin.com/better-apps-visual-studio-2017/

evo_9
So this is full, 100% Visual Studio for Mac (soonish), or is it Xamarin Studio rebranded?
captainmuon
They'd need to port at least COM, .NET, and XAML/WPF to Mac to do that, so I'd say that is never going to happen. Also, you'd have a very un-mac like experience.

OTOH, Microsoft is the one company I'd trust with refactoring a gordian knot if neccessary. Look what they're doing to the console subsystem, the windows system DLLs, the ~25 year old C compiler, and so on (granted, some are different teams, but still...).

Maybe they'll be able to salvage some cool parts (the extention API, Intellisense, ...) and make them modular or put them into VS code or Xamarin Studio. I don't know, they probably don't have a complete plan themselves :-).

krzat
It's probably easier to invent AI singularity than to port VS.
LyalinDotCom
Visual Studio for Mac will be our Mac IDE going forward and will grow in features, sure its past is Xamarin Studio but its future will have A LOT of investment so its worth checking out in Preview 4.
CyberDildonics
So the answer was no
baldfat
> So this is full, 100% Visual Studio for Mac (soonish), or is it Xamarin Studio rebranded?

No isn't an answer to that question.

> Visual Studio for Mac will be our Mac IDE going forward and will grow in features, sure its past is Xamarin Studio but its future will have A LOT of investment so its worth checking out in Preview 4.

Is a good answer to that question.

sigzero
I am pretty excited to see where MS takes this.
jhasse
I really hope they add wildcard (e. g. src/*.cpp) support in C++ project files
cobalt
It does support it (though, it can use a lot of CPU for some reason)
TillE
Does that feature exist in other Visual Studio project types? There's always CMake to help in situations like that.
zamalek
It does and can most likely be enabled by editing the vcxproj directly. Edit: something along the lines of:

    <ItemGroup>
        <Content Include="**\*.h" />
        <Content Include="**\*.cpp" />
    </ItemGroup>
Edit: see response.
stinos
That should probably be

    <ClCompile Include="**\*.cpp" />
at least if you want to get the sources compiled
ebattalio
This is correct, take a look at https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuil... and child topics on inclusion/exclusion.

-eric PM, VC++ team

int_19h
While it does work in the builds, the IDE is not supporting this particularly well. As another comment pointed out, changes on the filesystem are not automatically detected. Also, some IDE functionality doesn't work propetly in a project with <ClCompile Include="*.cpp"/> - for example, Add New/Existing Item fails with an error.
Pxtl
Visual studio already supports this in 2015 and older iirc, at least for C# and SQL projects, but it's an undocumented feature. You have to close and re-open the project if you add/remove a file so it notices that it's different.

part of the new project system that grew out of the ill-fated project.json is to make this a first-class experience, but again that's focusing on the .csproj, I have no idea if it applies to C++.

int_19h
It also works in C++ projects. But it breaks a bunch of IDE stuff, e.g. Add New Item.
jra101
What happen to Python support? It was supported in the release candidate.
int_19h
Please read this:

https://blogs.msdn.microsoft.com/pythonengineering/2017/02/2...

And this:

https://blogs.msdn.microsoft.com/pythonengineering/2017/03/0...

jra101
Perfect, thank you.
None
None
romanovcode
I'm super excited about VS2017.

But excuse me this launch video (beginning, with Chinese presenter) is super cringe-inducing. Horrible.

johnduhart
I'm also super excited about VS2017.

But excuse me this HN comment (last line, with the insensitive remark) is super cringe-inducing. Horrible.

becausepc
Yes, the comment was not nice (comment is now dead). However, I've stopped watching the video because the presenter's English accent was not easy on my ear. The problem reminds me about "Founders' Accents" article:

http://www.paulgraham.com/accents.html

superduper44
How many people actually read the paul graham article before they knee-jerked and voted the comment down "because racism"
LyalinDotCom
We're a worldwide company that embraces diversity and benefits hugely for it, so honestly I am disappointed very much with your comment.
None
None
None
None
romanovcode
You can do that, but without pushing it down my throat using people who are clearly are not interested in participating in said activities.
nathanm412
This announcement wasn't targeted to just you individually. I don't see "Visual Studio 2017 Launch Video for overly sensitive romanovcode" anywhere in the title. Do you not think that the Corporate Vice President of Visual Studio would be a qualified person to be speaking during this event? No one is forcing you to participate in watching this video. The whole industry would do better without people like you. In fact, it is!
aanm1988
> Do you not think that the Corporate Vice President of Visual Studio would be a qualified person to be speaking during this event?

Public speaking and the ability to give a presentation well don't necessarily follow from that title.

MichaelGG
FWIW I took the ethnic descriptor just as a bookmark not as a condemnation of the person. I think they were referring to the scripted father/daughter bits and the "oh wow you were 6 thats great", not anything about the presenters accent or background.

Probably not relevant for an HN comment, but also probably not anti diversity.

romanovcode
That's actually what I didn't liked. It felt so played and fake that it gives opposite message.
douche
Someday I hope it finally gets ported to x64 so that it can use more than a tiny fraction of the RAM in my desktop, instead of page thrashing all the time.
xorblurb
There seems to be some people in the IDE team who believe that a 32-bits only IDE is a feature and not a bug, including for reasons as fun as because it crashes sooner in case of memory leaks... I guess eventually those people will move to other things and/or the market pressure will be such that we will see a 64-bits IDE. Just don't know exactly when...
Metasyntactic
Hi Xorblurb :)

I'm a dev on the "IDE team" :)

We've actually done a huge amount of work investigating and addressing perf issues and working to create an architecture that can scale well. 64bits is not a panacea. And if we had simply moved to that, most people would find that their IDE was using much more ram AND behaving more sluggishly.

We decided to invest our energies in work that would actually benefit the vast majority of customers. This led to efforts that we were able to demonstrably measure as producing better experiences for people. If there's a point that 64bit will actually produce better results for people, we'll gladly move to it. Thanks!

xorblurb
I'm sure you carefully evaluated the pro and cons and that for now the best option for customers, also maybe given the state of your code (I've got no idea if you have problems in that area or not, but hypothetically this is the kind of thing that could have an impact) and your resources and what you want to do with such resources, is to stick to 32-bits. Because, well, you did stick to 32-bits, and it does not suck (although I've never tried to open extremely huge projects in VS)

But I also "know", and you also maybe secretly "know", that you will eventually move to 64-bits :P I completely don't know when, and I would completely understand that neither do you, and I would also understand that there is currently no immediate plan to move. But eventually you just will.

Now, ok, I'm not 100% sure about that. But my mind would be overly blown if this does not happen (given I don't have a clue of when, I guess I could have to wait for 20 years to see if my mind is blown or not :P ). I mean come on, even iPhone programs are 64-bits now.

(You know what this reminds me of a little bit?: Mozilla not working on a multiprocess architecture as a priority a while ago...)

Metasyntactic
> but hypothetically this is the kind of thing that could have an impact

It's not hypothetical :) We've measured, and moving to 64bits is a serious issue and would directly affect many customers who could not take the RAM hit.

> But I also "know", and you also maybe secretly "know", that you will eventually move to 64-bits

At some point we probably will. but it certainly isn't now. We have ample information on the types of machines that people use for development and we've measured extensively the different approaches that are possible. Right now 64bits would be a bad decision, and going the multi-process route turned out to be quite good.

> I mean come on, even iPhone programs are 64-bits now.

That's not a reason to move. We should move to 64bits if it delivers a quality improvement and does not dramatically degrade the experience for many customers. That's not what would be the case today.

> There seems to be some people in the IDE team who believe that a 32-bits only IDE is a feature and not a bug, including for reasons as fun as because it crashes sooner in case of memory leaks...

To be clear. There are zero people on the IDE that think this. The IDE team has to deal with the reality of the situation that there are humongous solutions, and very resource constrained machines. And we've been hearing from huge numbers of developers that they absolutely do not want memory requirements to go up. Just moving to 64bits is extremely problematic. As i've already mentioned that can easily double the memory requirements for many components in VS. That's going to make VS2017 a complete non-starter for many customers.

We do not haphazardly make changes "just because". We measure measure measure, and we're loathe to do anything that we've got enormous real data on on how negative the impact could be.

The approach we've taken has actually extremely improved throughput, scaling and latency, all while actually decreasing memory usage. We're going to continue making the changes that support those goals. If/when we can have a 64 bit architecture that supports those same needs, and gives an acceptable impact on the vast majority of user machines, then we can move there.

Metasyntactic
Hi Douche,

I'm Cyrus, a developer on the C#/VB IDE team.

One of the areas we invested a lot in (and will continue working on) is moving a lot of our analysis and processing work out-of-process. It turns out this is a much effective way to get improved performance while taking advantage of the available RAM in the system.

There are several reasons why this is, and why it's a better solution for performance than just moving to 64bits. For one, moving to 64bits substantially increases the memory requirements to the system. For the C#/VB compiler/IDEs, it can easily double the amount of ram necessary, which can be a substantial burden on many systems. For another, when you are in a single process, you massively increase the pressure on the GC, which can lead to exacerbated GC-pauses (which are one of the single worst contributors to the IDE feeling slow or sluggish).

By moving out of proc, we can actually use less ram, have far less chance of hitting 32bit limits, and greatly improve perceived and actual latency of operations (as GCs can happen in one process without affecting the other).

We, and other teams have been using this approach with great success, and we expect to continue moving more in this direction with future updates and releases. For example, I'm doing work right now to get our indices for 'Navigate To', 'Find all References' and 'Add using' to be computed and queried outside of the main VS process. The results have been hugely successful, with the features actually running better than before, VS being even more responsive, and no excess memory usage (like we would get with 64bit).

There has been significant investigations of 64bit, and the actual empirical results of those investigations have driven our decisions. Thanks!

LyalinDotCom
Its a great sense of relief to finally ship this product, we really hope folks give it a try and join our live keynote which is streaming now at http://launch.visualstudio.com
wmccullough
I'm loving it already. I was able to update from RC to RTM within 20 minutes on two machines with no hiccups. I was expecting hours of downtime. This is great stuff!
tracker1
Definitely sounds much better than <= 2015, where you may as well walk away for a few hours... and hope it doesn't hang for some weird reason.
eitland
As a newcomer to .net I was really confused by the lacking refactoring support in Visual Studio (yes, things we spoiled Java brats take for granted like extract method, extract class, move to separate file etc).

Is this available in VS 2017?

Edit: and live unit testing! I was looking forward to that until I found out it was only available in the enterprise version. (And yes, here you have an edge on Java anyway I think)

mistermann
I think "most everyone" just uses Resharper - Microsoft kind of has a background of letting a healthy ecosystem of 3rd party addin providers exist, and only gradually incorporates the best features into the core product.
memsom
Not at all. Never used resharper after 10+ years of .Net.
novaleaf
i love the features of resharper, but after all these years, the performance is still super awful when you have large projects.

Every new version I give it a try to see if the perf problems are fixed, and every time I have to turn it off after a few hours.

kogir
Most times when someone complains that Visual Studio is slow, you'll find they have Resharper installed.
sundvor
Hard to live without though! I upgraded my PC to a 4.2ghz six core 6850k i7, 32gb ram and a 950 Pro NVME soon after I started dev in C#.

It was still slow, but somewhat less so. :)

xenonite
Visual Assist by Whole Tomato Software [1] is a solid and well known refactoring plugin. For C++, it provides me a huge productivity boost. There is a C# version as well.

[1] http://www.wholetomato.com/

sundvor
For live unit testing you really cannot go past Ncrunch.net. It is absolutely brilliant, colour coding the testing coverage and test results in the margins of the editor - which run and update as you type. I bought my own personal license for this.

Core support is coming; first beta just released. I believe that targeting a constantly changing tooling set was/is quite a challenge.

sundvor
Correction: Remco has now released initial Core support in the mainline. :)))
None
None
eitland
Running a trial of that now. Loving it.

Will try reshaper as well before deciding to buy any of them.

sundvor
Awesome, good luck! New to C# in January '16, I have been using both from day 1. The test runner in RS is an improvement on the built in, but doesn't really hold a candle to NCrunch. You use Resharper for all the other good bits though :) Together, the trifecta of Studio, NCrunch and Resharper is an unbeatable combination.

Beware: I'm pretty sure I failed a job interview as I was so used to Resharper, when I needed to do a test on a PC without I was fairly lost. They had no interest in my setting up unit tests first for the programming tasks so it might have been just as well.

eitland
New to C# in January '16

Same here.

Thanks for the updates.

For some reason I though Reshaper would be incompatible with NCrunch but I will try them together now.

miguelrochefort
- "Extract method" has always been supported.

- Resharper supports "Extract class" and "Move to separate file".

tony2016
There are many refactorings already and if you want more you can invest in Resharper or CodeRush.
Metasyntactic
Hi Eitland!

I'm a dev on the C#/VB IDE experience (and i've written and maintain many of the Refactorings for those languages). C# and VB do support refactorings like 'Extract Method' and 'Move to Separate File'.

We've also exposed a full analysis and code manipulation API through 'Roslyn' so that community members can contribute even more refactorings through extensions.

One reason this may not have been clear is that previously we didn't strongly indicate to you that a refactoring was available. i.e. when you selected some code to extract a method, you would then have to use ctrl-dot to get the list of things you could do. Now, in VS2017 we pop up our 'Lightbulb' whenever refactorings are available. This helps make the refactorings much more discoverable and we've seen a very large uptick in people invoking them now that it's much clearer that they're available.

If you use VS2017 and find issues with our fixes/refactorings, or you would like us to add more, please file feedback at https://github.com/dotnet/roslyn Thanks!

cm2187
I'm afraid intellisense in VS 2017 is still a bit of a regression from VS2013, at least for the VB IDE.

Some gifs I prepared a while ago to explain what I mean (it seems that the parenthesis problem has been fixed in VS2017 though):

https://zbpublic.blob.core.windows.net/grrrrr/Grrrrr.htm

Metasyntactic
Hi CM2187. Can you file these bugs over at https://github.com/dotnet/roslyn We can take a look and hopefully get fixes out for you soon!
jarsin
Downloading...i pray to god that intellisense finally works for large c++ code bases such as Unreal Engine.

Wishful thinking?

contextfree
Congrats on the launch.

The download link takes you to a page ( https://www.visualstudio.com/vs/whatsnew/ ) where the main download button doesn't actually appear when the window is resized below a certain width, and there's no obvious indication of what's going on. This really confused and frustrated me.

erryoiruye
Lyalin, the download links seems to be broken? Tried with multiple browsers now, no download is starting :(

https://www.visualstudio.com/thank-you-downloading-visual-st...

argio
Worked after 10 tries or so. Just keep clicking retry
LyalinDotCom
hmm very strange ill report it to the team, thank you both
erryoiruye
Thanks, got the vs_Community.exe after a bunch of tries.
None
None
mistermann
One complaint....the installer doesn't seem to show required disk space per component....with the features I've chose the install is 40 GB!!! I don't have nearly that room on my SSD but that's where I want it, but there's no way of knowing if I can pare my install down to fit in what I do have!
tony2016
Add and remove a component and look at the total in each. The difference is the component's size.
hailmike
I had the same 40.8 GB surprise. ~34 GB was Xamarin.
HN Theater is an independent project and is not operated by Y Combinator or any of the video hosting platforms linked to on this site.
~ yaj@
;laksdfhjdhksalkfj more things
yahnd.com ~ Privacy Policy ~
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.