ASP.NET Community Standup – September 8, 2015

This is the next in a series of blog posts that will cover the topics discussed in the ASP.NET Community Standup.  The community standup is a short video-based discussion with some of the leaders of the ASP.NET development teams covering the accomplishments of the team on the new ASP.NET 5 framework over the previous week.  Within 30 minutes, Scott HanselmanDamian EdwardsJon Galloway and an occasional guest or two discuss new features and ask for feedback on important decisions being made by the ASP.NET development teams.  

Each week the standup is hosted live on Google Hangouts and the team publishes the recorded video of their discussion to YouTube for later reference. The guys answer your questions LIVE and unfiltered.  This is your chance to ask about the why and what of ASP.NET!  Join them each Tuesday on live.asp.net where the meeting’s schedule is posted and hosted.

This week’s meeting is below:

The team is back from vacation, and Scott feels that he has tasted retirement… and it is good.  This week, Jon is in the office with Damian and there are a number of things that have happened since the last standup.

  • Beta 7 was released.  This is the first release with cross-platform .NET core for Mac OS X and Linux that does not depend on Mono.  More details on the blog.
  • Beta 8 is underway and the due date was delayed by two weeks until October 5.  More roadmap details are online
    • More support and content coming from the .NET team in this release
    • More cross platform support and support for other Linux distros.
    • Work on the installation processes for Linux and PKGs for Mac
  • There is some investigation into breaking up the Web Tools Extensions so that the various components of ASP.NET 5 can be installed separately (DNX, Web Tools, Package Cache)
  • No new feature work is being developed – only completing existing APIs and features
  • A number of features in progress have been cut from the RTM planning and will be rescheduled for after RTM
    • SignalR and Web Pages are the most prominent items delayed

Big announcement preview: Kestrel is the only server that will be shipped.

  • The Helios server that interfaced with IIS and would rely on System.Web to boot up a CLR
  • Windows Nano server with a yet to be built Host that would be native for IIS
  • WebListener server that plugged in to the command-line host

Bottom line: the team had too many hosts and servers to manage and get to RTM, and instead would prefer to focus on delivering one really good host and server experience.  IIS will be supported through the HTTPPlatformHandler.  Scott has a good blog post about using IIS to start another process to proxy requests to it.   This allows the ASP.NET team to really focus on performance in the DNX host process and the Kestrel server.

This model also allows the Windows experience to mimic the Linux experience.  On Linux you would use nginx to proxy requests to kestrel.  On Windows you will use IIS to proxy requests to kestrel.  There is some work being done on IIS to ensure that Kestrel production experience is improved with dnx command support.

Damian explained that:

  • Helios will not be shipped
  • WebListener will not be shipped
  • Kestrel and DNX are the only server and host processes that will be shipped
  • IIS will manage starting and stopping the dnx and kestrel process that we typically run from the command line today.  All IIS handlers in the request pipeline will still function and can modify the dnx kestrel pipeline.  The dnx and kestrel process will run outside of IIS.
  • Currently, performance with this IIS model is starting to wane after 20k requests per second
  • More details and guidance to come

Questions:

Question: How many people work on ASP.NET at Microsoft?

Outside of the 4 PMs (Damian and the three that report to him).  There are 8 engineers working on dnx, another 8 on MVC, 2 or 3 working on middleware, 8 people working on Entity Framework. A total of 25 working on the runtime.  The tooling team that works on Visual Studio is another 13.  There are 5 development managers on ASP.NET  The .NET team that manages the frameworks is much larger than the ASP.NET team.  The total between the two groups is about 100.

Question: Are the ASP.NET Webhooks related to ASP.NET 5?

No, this is directly related to ASP.NET WebAPI 2 and ASP.NET 4.6

Question: If I wanted to create MVC middleware in a separate assembly with controllers and mount them in a custom URL prefix, what are my options?

There are some new features in MVC 6 that enable these features, but a full multi-tenancy set of features are not coming in this release. Post questions like this in the MVC repository on GitHub for further discussion

Question: What happened to the Autofac and Ninject implementations of the dependency injection facade?

These were proof-of-concept implementations by Microsoft, not intended to be supported by Microsoft. Autofac and Ninject have taken over the packages and are now managing them

Question: Are the ASP.NET team members going to attend DockerCon Europe?

We are not sure who may or may not will be attending, but we assume that some Microsoft speakers will be there. Scott pointed out that the container technology is not being done by the ASP.NET team, but we are implementing several items on top of that technology including the ASP.NET 5 docker image for Linux and Windows.

Question: Have you tested Yeoman generators on Windows 10?

They have been updated to beta 7 and should be available.  They are part of the ASP.NET sign off process.

Question: Any plans on hosting a .NET room at FOSDEM?

We’re not planning on it this year, but after .NET Core and ASP.NET 5 Linux versions in production, we will be ready for it next year.

Question: What about support for debugging in Visual Studio Code?

They are working very hard on this, and it will be in a future release. Now that .NET Core is running on Linux and Mac, this can be considered and built

Question: When is dnu publish output going to be solidified?

We are not aware of any major changes coming to the publish command.  If there is a specific issue you are seeing, please log it in the dnx repository on GitHub.

Question: Will it be possible in VS to stop debugging and keep IIS running?

Damian never starts debugging in Visual Studio with F5, and instead prefers to start with Ctrl-F5 and attach the debugger when needed. Visual Studio starts extra features when you start with debugger, and the process cannot be re-used across processes when the debugger is stopped and restarted.

Question: Any new talk on markup minification and line-termination?

This was delayed until after RTM.  In the meantime, the compilation pipeline in Razor can be modified at compile-time.  You could also write some middleware to modify the HTML content as the stream is output.

Question: How can I control assembly probing in ASP.NET 5?

You can’t….  ASP.NET 5 and dnx takes over the loading of assemblies.  This is how we can load assemblies from NuGet packages quickly at run-time.

Question: What role do the feature collection APIs play in the new runtimes?

There are 2 feature collections: server and request.  They are a collection of features that describe what is available on the server or what is in the request and response.  The web server populates a bunch of those and middleware can work with them as well.  This gives a flexible core set of APIs that can be adapted as ASP.NET advances.

Question: If Kestrel is the only server being shipped, does this mean WebListener is going away?

Yes… Kestrel will work cross-platform, and the community is welcome to work on and build any server they would like. WebListener is built on top of Http.sys, a kernel mode driver in Windows.  In order to add new features to WebListener, we need to wait for windows features.  Kestrel is completely owned by ASP.NET and can have features added as needed, like HTTP2.

Question: What if I wanted to host kestrel in my own process?

There is no self-host model.  Dnx is a hosted model, where you pass in the application that you want dnx to host.  This is similar to node where you execute node and pass in the application that you want node to run.

Question: Will we be able to select Local IIS in the Debug settings for Visual Studio?

Yes, this is being planned for the RC release

Question: Is there support coming for OData?

There is no planned work for Odata support in MVC 6.  Please ask more about this in the home repository and we can follow-up on it.

Question: I’m having a problem locating kestrel with dnu restore in Beta 7, what should I do?

There was a change made to name of the package for kestrel. Check the announcements repo issues list for more details about breaking changes.

Question: Scott mentioned he recorded a Microsoft Virtual Academy about ASP.NET 5, when can we expect that to be released?

It should be published early next week and we’ll have details in the next Community Standup.

Links of the Week:

Tune in on Tuesday September 15th at 15:45 Pacific Standard time for the next stand up.  Get your questions answered by the team live on video!