Skip to content

Consider changing the defaults between IIS Express vs Kestrel in VS #27277

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
mkArtakMSFT opened this issue Oct 27, 2020 · 15 comments
Closed
Assignees
Labels
affected-most This issue impacts most of the customers area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions enhancement This issue represents an ask for new feature or an enhancement to an existing one severity-nice-to-have This label is used by an internal tool Theme: inner-loop
Milestone

Comments

@mkArtakMSFT
Copy link
Contributor

mkArtakMSFT commented Oct 27, 2020

  • Calculate cost of IIS Express for both Debug and Release, F5 vs CTRL F5, for startup time.
  • Figure out feature differences between them.
@mkArtakMSFT mkArtakMSFT added enhancement This issue represents an ask for new feature or an enhancement to an existing one area-servers Theme: inner-loop labels Oct 27, 2020
@jkotalik jkotalik added this to the Next sprint planning milestone Nov 4, 2020
@ghost
Copy link

ghost commented Nov 4, 2020

Thanks for contacting us.
We're moving this issue to the Next sprint planning milestone for future evaluation / consideration. We will evaluate the request when we are planning the work for the next milestone. To learn more about what to expect next and how this issue will be handled you can read more about our triage process here.

@jkotalik jkotalik added affected-most This issue impacts most of the customers severity-nice-to-have This label is used by an internal tool labels Nov 13, 2020 — with ASP.NET Core Issue Ranking
@shirhatti
Copy link
Contributor

shirhatti commented Jan 6, 2021

  Sample 1 Sample 2 Sample 3 Sample 4 Sample 5 Average (ms) Std Deviation- Sample (ms)
IIS Express- F5 4488.525 4233.031 4157.722 4640.92 4275.969 4359.23336 199.7063997
Kestrel- F5 3491.112 3009.8 1628.884 2835.401 2892.896 2771.61864 689.0245524
IIS Express- Ctrl+F5 2077.545 1961.494 1964.514 1958.454 2030.64 1998.52938 53.40726911
Kestrel- Ctrl+F5 726.3475 718.6789 730.5764 729.79 729.2783 726.93422 4.883907612

Calculated using https://github.com/shirhatti/processaudit

IIS Express- F5

Process/Start                 2021-01-05T19:47:06.4792562-08:00                    iisexpress
HostStart/Start               2021-01-05T19:47:10.8586257-08:00                    iisexpress
RequestStart/Start            2021-01-05T19:47:10.9677814-08:00                    iisexpress
Process/Start                 2021-01-05T19:47:14.3839239-08:00                    iisexpress
HostStart/Start               2021-01-05T19:47:18.4926723-08:00                    iisexpress
RequestStart/Start            2021-01-05T19:47:18.6169548-08:00                    iisexpress
Process/Start                 2021-01-05T19:47:22.4438476-08:00                    iisexpress
HostStart/Start               2021-01-05T19:47:26.4770368-08:00                    iisexpress
RequestStart/Start            2021-01-05T19:47:26.6015692-08:00                    iisexpress
Process/Start                 2021-01-05T19:47:32.4910626-08:00                    iisexpress
HostStart/Start               2021-01-05T19:47:37.0121454-08:00                    iisexpress
RequestStart/Start            2021-01-05T19:47:37.1319824-08:00                    iisexpress
Process/Start                 2021-01-05T19:47:40.6837155-08:00                    iisexpress
HostStart/Start               2021-01-05T19:47:44.8214682-08:00                    iisexpress
RequestStart/Start            2021-01-05T19:47:44.9596848-08:00                    iisexpress

4488.5252,4233.0309,4157.7216,4640.9198,4275.9693

IIS Express- Ctrl+F5

Process/Start                 2021-01-05T19:49:28.4908748-08:00                    iisexpress
HostStart/Start               2021-01-05T19:49:30.5417439-08:00                    iisexpress
RequestStart/Start            2021-01-05T19:49:30.5684200-08:00                    iisexpress
Process/Start                 2021-01-05T19:49:37.6048547-08:00                    iisexpress
HostStart/Start               2021-01-05T19:49:39.5464717-08:00                    iisexpress
RequestStart/Start            2021-01-05T19:49:39.5663488-08:00                    iisexpress
Process/Start                 2021-01-05T19:49:45.5071357-08:00                    iisexpress
HostStart/Start               2021-01-05T19:49:47.4533663-08:00                    iisexpress
RequestStart/Start            2021-01-05T19:49:47.4716496-08:00                    iisexpress
Process/Start                 2021-01-05T19:49:50.8130059-08:00                    iisexpress
HostStart/Start               2021-01-05T19:49:52.7516877-08:00                    iisexpress
RequestStart/Start            2021-01-05T19:49:52.7714594-08:00                    iisexpress
Process/Start                 2021-01-05T19:49:57.2708380-08:00                    iisexpress
HostStart/Start               2021-01-05T19:49:59.2827210-08:00                    iisexpress
RequestStart/Start            2021-01-05T19:49:59.3014782-08:00                    iisexpress

2077.5452,1961.4941,1964.5139,1958.4535,2030.6402

Kestrel- F5

Process/Start                 2021-01-05T19:52:00.1557415-08:00                       Timings
HostStart/Start               2021-01-05T19:52:02.0314622-08:00                       Timings
RequestStart/Start            2021-01-05T19:52:03.6468534-08:00                       Timings
Process/Start                 2021-01-05T19:52:13.6975968-08:00                       Timings
HostStart/Start               2021-01-05T19:52:15.2602723-08:00                       Timings
RequestStart/Start            2021-01-05T19:52:16.7073969-08:00                       Timings
Process/Start                 2021-01-05T19:52:19.1274063-08:00                       Timings
HostStart/Start               2021-01-05T19:52:20.4249394-08:00                       Timings
RequestStart/Start            2021-01-05T19:52:20.7562905-08:00                       Timings
Process/Start                 2021-01-05T19:52:23.1473057-08:00                       Timings
HostStart/Start               2021-01-05T19:52:24.2801725-08:00                       Timings
RequestStart/Start            2021-01-05T19:52:25.9827068-08:00                       Timings
Process/Start                 2021-01-05T19:52:28.1533240-08:00                       Timings
HostStart/Start               2021-01-05T19:52:29.4302469-08:00                       Timings
RequestStart/Start            2021-01-05T19:52:31.0462199-08:00                       Timings

3491.1119,3009.8001,1628.8842,2835.4011,2892.8959

Kestrel- Ctrl+F5

Process/Start                 2021-01-05T19:50:32.0470546-08:00                       Timings
HostStart/Start               2021-01-05T19:50:32.2286960-08:00                       Timings
RequestStart/Start            2021-01-05T19:50:32.7734021-08:00                       Timings
Process/Start                 2021-01-05T19:50:35.3528319-08:00                       Timings
HostStart/Start               2021-01-05T19:50:35.5134593-08:00                       Timings
RequestStart/Start            2021-01-05T19:50:36.0715108-08:00                       Timings
Process/Start                 2021-01-05T19:50:39.5221784-08:00                       Timings
HostStart/Start               2021-01-05T19:50:39.6840005-08:00                       Timings
RequestStart/Start            2021-01-05T19:50:40.2527548-08:00                       Timings
Process/Start                 2021-01-05T19:50:43.3084716-08:00                       Timings
HostStart/Start               2021-01-05T19:50:43.4686276-08:00                       Timings
RequestStart/Start            2021-01-05T19:50:44.0382616-08:00                       Timings
Process/Start                 2021-01-05T19:50:46.9270852-08:00                       Timings
HostStart/Start               2021-01-05T19:50:47.0872181-08:00                       Timings
RequestStart/Start            2021-01-05T19:50:47.6563635-08:00                       Timings

726.3475,718.6789,730.5764,729.79,729.2783

@jkotalik
Copy link
Contributor

@shirhatti I'm a little concerned that the Kestrel F5 scenarios aren't including the time for .NET starting, as you are looking for host start as the event to start timing here: https://github.com/shirhatti/ProcessAudit/blob/main/Program.cs#L37.

@jkotalik
Copy link
Contributor

Nvrm, apparently I needed to modify the process audit example to have the right app name for the Kestrel F5 scenario. My bad!

@jkotalik
Copy link
Contributor

I ran a twitter poll around IIS Express VS Kestrel, and overwhelmingly it leaned to making Kestrel the default. https://twitter.com/JustinKotalik/status/1352314886810812417.

image

@jkotalik
Copy link
Contributor

We met with @vijayrkn and @sayedihashimi and it sounds like we will reach out to @BillHiebert in March to see if he has capacity to implement this in VS.

#27463 for details on one feature we'd add to VS.

Besides that, I believe all of the other required work is switching the templates to have Kestrel first.

@sayedihashimi
Copy link
Member

I don't think any template change will impact this, launchSettings.json isn't a part of the template. It is auto generated by Visual Studio.

@jkotalik
Copy link
Contributor

It may be part of the websdk then. When you run dotnet new web on command line, a launchsettings.json is generated.

@sayedihashimi
Copy link
Member

@jkotalik ok, maybe things have changed. Bill will know what the correct steps are when we meet with him.

@BillHiebert
Copy link

@sayedihashimi launchsettings.json is defined in the templates, the first entry becomes the default. @phenning to confirm

@jkotalik
Copy link
Contributor

Need to follow up with web tool folks to figure out any other places we generate or implicitly create a launchsettings.json file.

@phenning
Copy link
Contributor

@BillHiebert Don't we also generate a launchsettings.json from the project system if the template does not already have one?

It looks like you guys already have the template change here:
https://github.com/dotnet/aspnetcore/blob/main/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Properties/launchSettings.json

@jkotalik
Copy link
Contributor

Yeah, the previous PR I just merged handled the templates. I filed an issue in the web tools azdo repo for generation of launchsettings.json

@davidfowl
Copy link
Member

This is done right @jkotalik ?

@jkotalik
Copy link
Contributor

I think this is done on our side.

@ghost ghost locked as resolved and limited conversation to collaborators Apr 30, 2021
@amcasey amcasey added area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions and removed area-runtime labels Aug 24, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
affected-most This issue impacts most of the customers area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions enhancement This issue represents an ask for new feature or an enhancement to an existing one severity-nice-to-have This label is used by an internal tool Theme: inner-loop
Projects
None yet
Development

No branches or pull requests

9 participants