Notes from the ASP.NET Community Standup – Feb. 23, 2016

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:

Links of the Week

Ben Adams shared the good news of the ASP.NET Core Kestrel performance celebration on the Age of Ascent blog

Andreas Håkansson announced that he is now working full-time for an organization that is funding the development of the Nancy project for CoreCLR.

Steve Gordon published a nice post describing how to send emails from ASP.NET Core

Matthew Abbott wrote up a detailed description of how routing works in ASP.NET Core

From NDC London, Microsoft ASP.NET Security PM and all around nice-guy Barry Dorrans is featured in a video describing Security, Identity and Authorization in ASP.NET Core.

The architecture of StackOverflow.com, a huge ASP.NET MVC application, was published and discussed on Nick Craver’s blog.

Scott Allen wrote up a good technique for avoiding the service locator pattern in ASP.NET Core

Shayne Boyer shared some diagrams, code, and a good walk-through of using haproxy, nginx, Angular 2, ASP.NET Core, Redis, and Docker together

Anuraj wrote up a nice intro of getting started with Entity Framework Core migrations

NuGet Package of the Week

We’re starting the NuGet Package of the Week feature up again, and this week we decided to highlight Cake – the C# Make project:

Cake website

Cake website

Cake (C# Make) is a cross platform build automation system with a C# DSL to do things like compiling code, copy files/folders, running unit tests, compress files and build NuGet packages.

Install it now for your application with the following command:

Install-Package Cake

Accomplishments

The ASP.NET team is still working through preparations and is not yet ready to share deliverable dates and could be ready to specify a deadline in the next few weeks.  The team is working very hard to ensure that the core foundational concepts are well defined for the initial release of ASP.NET Core.

Some of the MVC framework developers are working on performance improvements in TagHelpers.

There are no API changes planned, and the dev team is working through the re-platforming from dnx to .NET CLI.

Some folks are trying the dev branches of ASP.NET Core, and those branches are mostly converted off of dnx.  The dnx-based tooling still works with RC1 and will be converted over to .NET CLI for the next public release.  You can work with the nightly dev branch bits, but need to work closely with the correct NuGet feeds and .NET CLI tools.  Damian emphasized that the dev branches are a work in progress and not for the feint of heart.  Installers and appropriate installation management tools will be updated and delivered with the public release .

Questions and Answers

 Question: Will analyzers work again with ASP.Net Core? I know in ASP.NET 5 they didn’t

— They should work in ASP.NET Core, there is nothing special about ASP.NET Core compared to .NET Core.  The real question is will the analyzers work with .NET Core, and we believe that the answer will be yes.

Question:  With CLI the assemblies are stored on the disk(not like with DNX). Considering that .net native is far from finished can we assume that when an asp.net core app will be deployed then there will be dlls with IL byte code stored on the disk?

— Yes, the dnx dynamic compilation was demonstrated as a development-time feature.  .NET Core CLI has a clear compilation step that you an use to generate binaries and deliver to your production space.  You can also generate native binaries with an additional step to cross-gen your binaries.

Question: What’s the status on csproj -> project.json project references?

— Coming in RC2

Question:  Will you officially ship and support NodeServices for RTM?

— We would like to ship a beta at about the same time as the ASP.NET Core RTM.  It needs to be updated from dnx-compatible to the .NET CLI version of ASP.NET Core and we’re delaying that until the core framework are done.

Question:  What is the status of TFS continuous integration with ASP.NET Core?

— Not sure… you should be able to point your CI service to the solution file and that will build it or you could directly call the .NET CLI executable to build on the command-line.

Question: Will there be an intermediate release with dotnet CLI stuff and then RC2… or is that what the RC2 release be?

— At a minimum we want to get to a stable build with a good installer that will deliver templates and Visual Studio tooling.  You would be using MyGet feeds to get the nightly builds, but we don’t expect to do any more public releases before an RC2.

Question:  Does a core app need to be compiled for each platform?

— The goal is to be able to generate (by default) a portable application and run it on Mac or Linux and execute it by running “dotnet MYAPP” using the .NET CLI runtime that is running on the other machine.  You could take the extra step to generate binaries that don’t require the .NET runtime, but that stand-alone application makes it platform specific because you would need to compile in the runtime bits.

Question:  Is ASPNET core identity 100% backwards compatible with ASP.NET Identity – DB Schema, Hashing algorithm?

— Its not 100% compatible, but we are looking to build a point-release in the previous identity framework to provide a level of interoperability between identity on 4.6.x and identity on Core with a minimum of changes in 4.6.x

Question:  If you pre-jit binaries will the runtime still monitor execution to improve the performance of hot code-paths that the pre-jit static analysis may not optimise in the best possible manner. or can we rely on the static analysis/pre-jit being great? 🙂

— Cross-gen’ing an application probably will not work this way because the JIT step is skipped.

Question: Which dependency injection container is used in ASP.NET Core?

— We wrote our own baseline container that other containers that are more full-featured could implement and add their features to.  We expect other containers to be implemented and configured in web applications.

Question: Is anyone working with the Docker guys to create aspnet containers based on Alpine like they’re doing with all the other official images like Node and so on? (The Alpine base image is just 5MB compared to 200MB for ubuntu:14.04)

— Yes, we are working on an Alpine container

Question:  I want to know if I am right? if we build application with DNX we are talking about ASP.NET 5 (the old name), and building with the new DOTNET we are talking about ASP.NET Core.

— Correct: This is a point-in-time confusion during the version update.  Damian will refer to dnx if its the currently released ASP.NET 5 frameworks and .NET CLI if he is referring to the work underway for the next version of ASP.NET Core.

Question:  I tried to install dnx prerequisities on Ubuntu following the docs instrustions, but could not resolve dependencies.

— Not sure about the specifics based on this question – Ubuntu should work, we have been using 14.04 LTS some are using 15 and have run into some issues but we’re not sure if this is still the case.

Question:  Last week you talked about .net core docs, including the project system, did you see my pull request regarding that on the core-docs repo?

— These documents that Damian is working on are conceptual requirements documentations almost like a spec for project managers to be able to guide their development teams.  The document submitted looks fine, and will leave it for the .NET team to review.

Question:  What is the status of entity framework 7 to support stored procedures?

— We don’t think it does yet – issue 245 in GitHub looks like this is not yet implemented

Question:  How many GitHub Octopus t-shirts does Damian have?

— Just one, and he really likes to wear it to the stand-up

Question:  Will there be a authentication middleware specific for Active Directory Federation Services with OAuth2?

— This is OpenID-connect middleware, yes… this is already available

Finally, some folks were looking for some post-credits scene like in Ferris Bueller or the Marvel movies.. No, we’re not cool enough to produce that type of add-on to our videos.  We have some of our other technical issues that need to be straightened out first.

Thank you to everyone that tuned in to the live recording and asked questions.  The team is always looking forward to hearing for you.  Join us on March 1st at 23:45 UTC, 18:45 ET, 15:45PT or just check the timer at http://live.asp.net for exact time in your timezone as well as a reminder that you can add to your calendar.