fsprojects-archive / zzarchive-VisualFSharpPowerTools

[ARCHIVED] Power commands for F# in Visual Studio
http://fsprojects.github.io/VisualFSharpPowerTools/
Apache License 2.0
310 stars 77 forks source link

Visual F# Tools extension is reported by VS15 Preview 5 as slow #1474

Closed AmadeusW closed 7 years ago

AmadeusW commented 7 years ago

Description

Visual Studio 15 Preview 5 reports which extensions slow down Visual Studio. Visual F# Tools adds 5 seconds to the startup time.

We should take steps to reduce this time, for example by using AsyncPackage instead of Package.

2016-10-17_16h28_21

Repro steps

Install Visual F# Tools in Visual Studio 15 Preview 5 Start VS a few times Observe that at some point VS will report that the extension is slowing it down

Expected behavior

Visual F# Tools turns on quickly, without raising alarms.

Actual behavior

Visual F# Tools adds 5 seconds to VS load time.

Known workarounds

None.

Related information

cloudRoutine commented 7 years ago

@AmadeusW are there docs for the dev15 vssdk anywhere? I'd like to upgrade vfpt for dev15, but I don't know where I should be looking for guidance.

AmadeusW commented 7 years ago

Here's a guide to AsyncPackage.

A huge downside is that AsyncPackage is defined in Microsoft.VisualStudio.Shell.14 which comes with VS2015. There is no way to provide a single VSIX with both AsyncPackage for VS2015+ and Package for VS2013. Ultimately, this means that either users will see the yellow banner "F# Tools is slowing Visual Studio" or VS2013 support will be deprecated. What are your thoughts on this?

cloudRoutine commented 7 years ago

We already kind of do that, or at least we used to -

Everything is really in flux right now, the restructuring of the extension to an out of process service will probably do a lot more than an asyncPackage 😜 but that'll be a long time coming and this async package is something we can do in the shorter run.

AmadeusW commented 7 years ago

That's a major undertaking! I'm curious how version split in manifest work. Currently we have only one Package type. With AsyncPackage there will be two package types. Will the version split in manifest be able to distinguish between packages?

dungpa commented 7 years ago

@AmadeusW No, it will not be able to distinguish between packages. As you said, the easiest way is to remove support for VS2013.

kerams commented 7 years ago

But Visual F# Tools is https://github.com/Microsoft/visualfsharp, not VFPT, right? I can't even install VFPT under Preview 5.

vasily-kirichenko commented 7 years ago

@kerams good point @kerams VS Gallery does not allow to upload VFPT VSIX if it targets VS 15. AFAIK it must be compiled with VS 15, which adds some new metadata to it. You can set VS 15 target in VSIX properties and compile it yourself in VS 2015, then it should install into VS 15.

vasily-kirichenko commented 7 years ago

We are not going to support VS 2017.