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:
After a few minutes discussing various IoT and minor hardware repair issues, Scott and Damian started off reviewing the week's news.
Damian reported that the team is halfway through the coding for the beta 8 milestone. There is a LOT of work going on in beta 8, and he anticipates it being a large release. There is an announcement on the announcements repository detailing the hosting changes with IIS and Kestrel starting in beta 8. Briefly, this announcement covers the removal of Helios and focuses on the delivery of the WebListener and Kestrel hosts.
Damian then reminded us that WebListener is built on the Windows http.sys module where Kestrel is bound directly to sockets and is completely made up of managed code that will run cross-platform. The team is working on Kestrel performance, which admittedly needs help in Linux environments. With the help of the community, the team has found and improved memory performance in the internals of the ASP.NET frameworks. In particular, Damian highlighted work being done on memory pooling in the MVC and Razor frameworks.
The dnx -watch command has been committed to by the team. This feature will allow dnx to recycle as code changes in your project. Visual Studio developers have this feature in that Visual Studio will kill dnx and restart it as your code changes.
More cross-platform work is being done in globalization, networking, and crypto. The Azure deployment story is a focus as well, with the team working on making the deployment better both inside and outside of Visual Studio. The team is working on allowing csproj-based projects to reference xproj-based projects.
The team is building a new website to demonstrate running ASP.NET on Linux in Azure called go.asp.net Another site being built is a new landing page for ASP.NET called get.asp.net that will have a "big green install button" that will help get development tools for ASP.NET. More information about these two new sites will be made available as they are published.
Scott reported that he is working with a designer to rebrand www.asp.net and will coordinate with Damian to ensure that the same design makes it into go.asp.net and get.asp.net
Damian furthered that get.asp.net should also host an apt-get feed to make it easier for Linux developers to install ASP.NET tools.
Links of the Week:
- Taylor Mullen and Rick Anderson wrote Authoring TagHelpers on docs.asp.net
- Devon Burriss wrote a post about continuous integration with ASP.NET 5 with Git and Azure without Visual Studio
- James Chambers detailed how to support options and argument in custom dnx commands
- Tugberk Ugurlu covered how to set IsDevelopment to True
- Microsoft Virtual Academy published Scott's course Introducing ASP.NET 5
- Eric L. Anderson wrote about his experiences updating from beta 6 to beta 7
- Jerrie Pelser reviews how to use option groups with the select taghelper in MVC 6
Questions
Question: When will Glimpse be available for ASP.NET vNext?
They're working on it, with a preview available and hope to have a release in time for ASP.NET 5 RTM
Question: Would it be possible with TagHelpers to build an "each" attribute that will provide variables for inner-scope?
No... not for the current version, but is planned for a later version. It requires interaction between the TagHelper and the compilation of the Razor view, and TagHelpers cannot interact at that level. You can pass in to the TagHelper a state object that the TagHelper can interact with.
Question: Any word on gulp support for Azure website support for ASP.NET 5?
Gulp and Grunt are both installed by default in ASP.NET 5 and it works fine for Damian to deploy live.asp.net.
Question: Any information about Identity Server partnership?
Nothing new to report
Question: Is there a way to change the dnx install location from %UserProfile%/.dnx?
The team is revisiting this discussion, and is coordinating with NuGet in hopes to get this location shipped in beta 8
Question: Did you compare performance of Kestrel vs. WebListener?
We DID! Kestrel is faster on matching hardware with pipelining enabled. Since WebListener is built with http.sys which means every call is a system call and that impacts performance. Kestrel has an optimized pipeline that reduces the number of system calls.
Damian then diverted into a benchmarks discussion. See github.com/aspnet/Benchmarks for details of the current benchmarks. The fastest the team could push through raw http.sys on Windows was 460k requests/sec That is with a minimum amount of native code, raw C++ calling http.sys in an exe. By comparison, with libuv on top of C# with pipelining is 6x that amount. When RIO is used, that amount goes up to 5.9M requests/sec. There are additional numbers showing the performance of the host processes as frameworks are added, and it shows the team is making progress in boosting performance.
Question: Are you responsible for VS IDE issues with ASP.NET 5?
Yes, there is a tooling repo in the ASP.NET organization in GitHub - log issues there and the team will address it.
Question: Can you load the Razor engine dynamically and limit the assemblies that it can load?
Yes, Razor is a stand-alone component that can be loaded and hosted in another process.
Question: Will there be some AngularJS integration by default in ASP.NET 5 default templates?
Not sure.... there was some initial investigation in the MusicStore / SPA example as an exploration of server-side generation of Angular templates. The team plans to circle back and spend time on it, but it is not known if that will become a default.
Summary:
Scott is visiting the office in Redmond this week and will be in Europe over the next few weeks. Over the next few weeks, there will be some missed meetings. Scott is working on determining how to delegate the creation and hosting of the meeting for future meetings when he may be unavailable. The next meeting is scheduled for September 29th, tune in then to talk to the team and ask them your questions.