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 Hanselman, Damian Edwards, Jon 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.

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?

Tags

Join the conversation

I have been reading through the books "Professional ASP.NET 4" and "Professional ASP.NET 5", by Jon Galloway (and others). Is there going to be a "Professional ASP.NET 6" book, with Jon Galloway (and others)? Please say 'yes'!

Are there any objects in the ASP.NET Framework that automate creating an initial SQL Server 2014 database which is configured with multiple file groups on specific logical storage units, including the new memory optimized file group. I note that everything that I have seen so far in Code First consists of just one MDF and one LDF. I am not sure about storage on Azure databases, but for premise-based SQL Server installations, I have been traditionally able to configure the database footprint at the file level. That whole thing facilitates partitioning in SQL Server databases.