Notes from the ASP.NET Community Standup – October 11, 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 Core 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:

Community Links

We now have a list of free courses available to teach you more about ASP.NET and ASP.NET Core.

The latest article we’re spotlighting in the ASP.NET documentation is Getting started with ASP.NET Core MVC and Entity Framework Core using Visual Studio by Tom Dykstra

OneTrueError – Automated exception handling by Jonas Gauffin

Building REST services with ASP.NET Core Web API and Azure SQL Database by Jovan Popovic

Check out the Bitwarden project: Free, Open Source Password Manager built on ASP.NET Core Kyle Spearrin

Custom authorisation policies and requirements in ASP.NET Core by Andrew Lock

Real-time applications using ASP.NET Core, SignalR & Angular by Christos Sakells

ReactJS.NET 3.0 – .NET Core and lots of small tweaks to support ReactJS by Daniel Lo Nigro

IdentityModel v2 released by Dominick Baier

Running your ASP.NET Core application on Azure Container Service by Rene van Osnabrugge

Request Filtering for ASP.NET Core applications: Part 3 – Integrating with ASP.NET Pipeline by Hisham Bin Ateya

Check out the EasyLOB project: a Data-Driven Design Archetype for developing Web based .NET LOB Applications

How to: ASP NET Core – third party middleware index by Milan Stanaćev

Accomplishments

Damian reported that the team is very close to delivering ASP.NET Core 1.1  A full list of features are on the roadmap on GitHub, and a preview release is scheduled for the very near future.  The features on the roadmap for 1.1 include:

  • URL Rewriting middleware
  • Response caching middleware
  • DI improvements for 3rd party containers
  • WebListener server (Windows only)
  • Middleware as MVC filters
  • ViewComponents as Tag Helpers
  • View precompilation (tooling preview)
  • Cookie-based TempData provider
  • Improved Azure integration
    • App Service startup time improvements
    • App Service logging provider
    • Azure Key Vault provider

We then discussed the version of the SignalR server that is being built on top of ASP.NET Core.  The framework components of SignalR are being reviewed at this time, and in particular we looked at the “ASP.NET Sockets” implementation that uses a socket-like programming model to interact abstractly with real-time requests from a client across some transport mechanism provided by SignalR.  Damian started off by showing us a sample that uses the ASP.NET Core Sockets EndPoint construct:

https://github.com/davidfowl/Sockets/blob/master/samples/SocketsSample/EndPoints/ChatEndPoint.cs

The code for interacting with the Socket uses the typical Socket workflow with a while-loop to read content from the Socket if data has been received on the Socket.  The Sockets implementation is built on top of a feature called Channels.

Further experimentation on ASP.NET Core features are being shared into the ASPLabs repository.

Also, the team has completed an initial set of prototypes designs for RazorPages and have started working to turn this into a real product.  It is currently scheduled to be delivered at roughly the same time as the SignalR framework.

Questions:

Q:  Are we going to see compilation speed improvements in 1.1?

— No, 1.1 is not a tooling release but rather a set of updates to runtime packages.  You will see a performance improvement with the move from project.json to msbuild.  More news on that will be coming very soon.

Q:  Any updates on System.Drawing for .NET Core?

— No.  Take a look at ImageProcessor.org and ImageResizer.Net to help with that.  We will address this gap in the future.

Q:  Will Azure App Service WebApp for Linux Preview support ASP.NET Core?

— We have Node and PHP support currently.

At this point, Damian chimed-in with a response to a question that he had received outside of the chat-room about super-simple HTTP service configuration.  He wrote up his idea for a simple configuration and shared it as an issue in the Routing repository The API Damian is proposing could look similar to the following:

Q:  Do you have an update on MSBuild / CSProj?

— There is a blog post coming along shortly… after that is published we will discuss further.

Q:  What is the recommended way to access microservices from an ASP.NET Core app?

— Use whatever makes you happy – you can connect and use a microservice with a number of different techniques, and there is no one preferred way.

Q:  Is there are a way to use a publish / subscribe pattern with a servicebus in the SignalR code that was shared?

— We demonstrated the lowest layer in this video, you can layer anything you want on top of it.  We have some samples in the repo that show how to start layering on top.  The team is still discussing plans to ship a firm pub / sub abstraction.

Q:  What’s the latest news about using Razor templates without needing the entire MVC framework?

— The team is working to refactor Razor to run outside of MVC.  As part of the refactoring, it will be easier for other razor host processes to be enabled in Visual Studio. More will be coming later

Q:  Is there an update on JavaScript services?

— We’re now building Visual Studio templates to support these services and get more feedback.  The beginnings of these templates are in the GitHub repository.

At this point, the team discussed how JavaScript has changed the way that they develop applications and some of their background that has shaped the way that they approach the ASP.NET tools.  Damian referred to a JavaScript article on Medium that humorously discusses how to learn JavaScript in 2016, and that they see JavaScript currently in a state where innovation is happening extremely quickly.