{"id":7546,"date":"2016-09-08T12:17:23","date_gmt":"2016-09-08T19:17:23","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/webdev\/?p=7546"},"modified":"2021-11-01T04:30:02","modified_gmt":"2021-11-01T11:30:02","slug":"notes-from-the-asp-net-community-standup-september-6-2016","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/notes-from-the-asp-net-community-standup-september-6-2016\/","title":{"rendered":"Notes from the ASP.NET Community Standup \u2013 September 6, 2016"},"content":{"rendered":"<p>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,\u00a0<a href=\"https:\/\/twitter.com\/shanselman\">Scott Hanselman<\/a>,\u00a0<a href=\"https:\/\/twitter.com\/damianedwards\">Damian Edwards<\/a>,\u00a0<a href=\"https:\/\/twitter.com\/jongalloway\">Jon Galloway<\/a>\u00a0and an occasional guest or two discuss new features and ask for feedback on important decisions being made by the ASP.NET development teams.<\/p>\n<p>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\u2019s schedule is posted and hosted.<\/p>\n<p>This week\u2019s meeting is below:<\/p>\n<div style=\"text-align: center;\">\n  <iframe width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/F2YeXBhge3s\" allowfullscreen><\/iframe>\n<\/div>\n<p>Glenn Condron joined us this week, and showed us some improvements the team has made to the .NET Docker containers.<\/p>\n<h2>Community Links<\/h2>\n<p>Talking .NET published a post about <a href=\"http:\/\/www.talkingdotnet.com\/integrate-hangfire-with-asp-net-core-web-api\/\">integrating HangFire with Web API<\/a>.<\/p>\n<p>Andrew Lock had two posts for us:\u00a0 the first is about <a href=\"http:\/\/andrewlock.net\/an-introduction-to-openid-connect-in-asp-net-core\/\">OpenID Connect in ASP.NET Core<\/a> and the second is about the <a href=\"http:\/\/andrewlock.net\/post-redirect-get-using-tempdata-in-asp-net-core\/\">POST-REDIRECT-GET web application technique<\/a>.<\/p>\n<p>Shawn Wildermuth has a series about <a href=\"http:\/\/wildermuth.com\/2016\/09\/05\/What-I-Learned-Building-with-ASP-NET-Core-Part-1---Routing\">&#8216;What I learned while building with ASP.NET Core&#8221; and this week he&#8217;s covering routing<\/a>.<\/p>\n<p>Eric Anderson wrote a post about <a href=\"http:\/\/www.elanderson.net\/2016\/09\/unable-to-start-process-dotnet-exe\/\">troubleshooting an issue<\/a> with some code that he copied from one machine to another got an error starting dotnet.exe<\/p>\n<p>Hisham shared two posts: one about <a href=\"http:\/\/en.xn--mgbz4cf.com\/post\/localization--routing-in-aspnet-core-10\">routing and localization<\/a> and a second about <a href=\"http:\/\/en.xn--mgbz4cf.com\/post\/chart-controls-using-taghelpers--morrisjs\">chart controls with a tag helper<\/a>.<\/p>\n<p>Scott interjected and pointed out that the taghelpers + clean JavaScript library experience in ASP.NET Core is really nice and that more web developers should check out these tools.<\/p>\n<p>Stefan Prodan published a post about doing <a href=\"https:\/\/stefanprodan.com\/2016\/aspnetcore-cd-pipeline-docker-hub\/\">continuous deployment with Docker Hub<\/a>.<\/p>\n<p>Amjad published a cool article showing <a href=\"https:\/\/dzone.com\/articles\/9-docker-net-app-templates-a-complete-guide-for-co\">nine different docker .NET application templates<\/a>.<\/p>\n<p>Steve Smith wrote an article for MSDN Magazine discussing <a href=\"https:\/\/msdn.microsoft.com\/magazine\/mt763233\">feature slices for ASP.NET Core MVC<\/a>.\u00a0 You can read it online or in the print edition.<\/p>\n<p>Barry Dorrans announced that the <a href=\"https:\/\/blogs.msdn.microsoft.com\/webdev\/2016\/09\/01\/announcing-the-ongoing-bug-bounty-for-net-core-and-asp-net-core\/\">ASP.NET Core bug bounty has been extended<\/a>.<\/p>\n<p>Jon Hilton wrote about <a href=\"https:\/\/jonhilton.net\/2016\/08\/31\/how-to-easily-extend-your-app-using-mediatr-notifications\/\">using MediatR to extend your app with notifications<\/a><\/p>\n<p>Some guy named Scott wrote about using <a href=\"http:\/\/www.hanselman.com\/blog\/PublishingAnASPNETCoreWebsiteToACheapLinuxVMHost.aspx\">ASP.NET Core on low price Linux hosting providers<\/a>.<\/p>\n<p>Brock Allen announced <a href=\"https:\/\/leastprivilege.com\/2016\/09\/06\/identityserver4-rc1\/\">IdentityServer 4RC1 availability<\/a> with compatibility for ASP.NET Core<\/p>\n<p>Christos Sakells has been updating a <a href=\"https:\/\/github.com\/chsakell\/aspnet5-angular2-typescript\/commits\/master\">sample application on GitHub that uses ASP.NET Core, TypeScript and Angular 2<\/a><\/p>\n<p>Jerrie Pelser has launched a course that demonstrates <a href=\"https:\/\/school.scotch.io\/build-a-contact-list-with-aspnet-core\">how to build a contact list application with ASP.NET Core<\/a><\/p>\n<p>James South published an article showing <a href=\"http:\/\/jamessouth.me\/archive\/imageprocessor-core\/\">how to use .NET Core for image processing<\/a><\/p>\n<p>Donovan Brown wrote a post about using the <a href=\"http:\/\/www.donovanbrown.com\/post\/2016\/08\/29\/Control-the-name-of-your-NET-Core-output\">outputName property in the buildOptions element in project.json <\/a><\/p>\n<p>The latest updates for log4net show that they are <a href=\"https:\/\/github.com\/microsoft\/\">working on support for .NET Core<\/a><\/p>\n<p>Simon Timms wrote an article about <a href=\"http:\/\/aspnetmonsters.com\/2016\/08\/2016-08-27-httpclientwrong\/\">how to properly use HttpClient in .NET Core<\/a>.<\/p>\n<h2>Accomplishments &#8211; Docker Discussion<\/h2>\n<p>Glenn announced that the team intends to publish a new ASP.NET Core specific container image.\u00a0 Currently the image is not ASP.NET specific but relates to .NET only and ASP.NET Core runs very well on the dotnet image.\u00a0 We think that there are some optimizations that can be made for an ASP.NET Core specific deployment that the community will find very valuable.<\/p>\n<p>The new documentation about building .NET Docker images was just published and Glenn shared the link to the online version of this at:\u00a0 <a href=\"https:\/\/docs.microsoft.com\/en-us\/dotnet\/articles\/core\/docker\/building-net-docker-images\">https:\/\/docs.microsoft.com\/en-us\/dotnet\/articles\/core\/docker\/building-net-docker-images<\/a><\/p>\n<p>From the <a href=\"https:\/\/hub.docker.com\/r\/microsoft\/dotnet\/\">Microsoft\/dotnet<\/a> images page on the Docker Hub, Glenn showed us the differences between the various images available.<\/p>\n<p><figure id=\"attachment_7555\" aria-labelledby=\"figcaption_attachment_7555\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/hub.docker.com\/r\/microsoft\/dotnet\/\"><img class=\"wp-image-7555 size-mediumlarge\" alt=\"Current .NET Docker Images\" width=\"314\" height=\"350\" \/><\/a><figcaption id=\"figcaption_attachment_7555\" class=\"wp-caption-text\">Current .NET Docker Images<\/figcaption><\/figure><\/p>\n<p>While it may look scary with a bunch of versions listed, they each have their own proper place.\u00a0 The Development images are for various versions of the .NET Core framework and provide full compile capabilities from within the image.\u00a0 The Runtime images are images that have the minimum software required to run your application after it has been compiled.<\/p>\n<p>When you refer to the microsoft\/dotnet image, you are presented with the most wide-ranging image that covers most scenarios.\u00a0 You can further optimize by using the microsoft\/dotnet:&lt;VERSION&gt;-core image that contains the runtime, the OS dependencies, the dotnet executable, and enough to run your application.\u00a0 You can view the commands that were used to build the docker image by executing the docker history command, and you will see results similar to the following:<\/p>\n<p><a href=\"http:\/\/devblogs.microsoft.com\/aspnet\/wp-content\/uploads\/sites\/16\/2016\/09\/dotnetImage.png\"><img class=\"aligncenter size-mediumlarge wp-image-7565\" alt=\".NET Container History\" width=\"500\" height=\"109\" \/><\/a><\/p>\n<p>You can then clearly see, starting from the bottom of the list and working up, the commands that were added to build up the image.\u00a0 There is a no-trunc switch that you can add to this command in order to prevent the &#8216;CREATED BY&#8217; column from being truncated so that you can read the entire command executed.<\/p>\n<p>Glenn then showed us that building a simple Hello World console app and running it in the dotnet:core image without the compiler and SDK results in a 253MB image.\u00a0 The same application built with the dotnet image that does have the SDK embedded creates a 540MB image, almost twice as large.\u00a0 It should be noted, that your application will be much larger than a &#8216;Hello World&#8217; console application, and these size measurements are a minimum number that your application will start at.<\/p>\n<p>By comparison, we measured the size of some common language docker images and built the default ASP.NET Core web template into an image and compared their image sizes:<\/p>\n<p><a href=\"http:\/\/devblogs.microsoft.com\/aspnet\/wp-content\/uploads\/sites\/16\/2016\/09\/imageSizeChart.png\"><img class=\"aligncenter size-mediumlarge wp-image-7575\" alt=\"Size of some popular Docker images\" width=\"500\" height=\"216\" \/><\/a><\/p>\n<p>In reality, the sizes of these images are not a significant problem once the image is deployed to a server running docker.\u00a0 When a container is running, every instance shares the cost of the image and only needs disk space to manage changes to the image.\u00a0 The image size is only important when delivering the image and the network bandwidth needed to deliver that content.<\/p>\n<p>A suggestion came in from the community that the dotnet image could be reduced in size by switching from a debian base to the latest ubuntu image that is 60MB smaller.\u00a0 The team hasn&#8217;t researched this yet, and think that it could be a viable change.<\/p>\n<p>Glenn then showed us <a href=\"https:\/\/hub.docker.com\/u\/troydai\/\">Troy Dai&#8217;s docker hub account<\/a> and the prototype docker images he is working on.<\/p>\n<p><a href=\"https:\/\/hub.docker.com\/u\/troydai\/\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-7585\" src=\"https:\/\/devblogs.microsoft.com\/aspnet\/wp-content\/uploads\/sites\/16\/2016\/09\/prototypeImages-1.png\" alt=\"Prototype Docker Images\" width=\"374\" height=\"225\" \/><\/a>The development image contains:<\/p>\n<ul>\n<li>All of the ASP.NET Core NuGet packages pre-restored for the user<\/li>\n<li>Pre-cross gen&#8217;d cache of ASP.NET Core and all of the dependent assemblies so that you don&#8217;t pay that compilation task at start time<\/li>\n<li>Environment variables already set to listen to the public 5000 port<\/li>\n<\/ul>\n<p>The production image includes a cache of runtime assemblies that have been pre-just-in-time compiled to help improve the startup performance when running in production.<\/p>\n<p>Try some of these images and let us know what you think.\u00a0 The team is working to improve them, and we will report more details on these changes as they are published.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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. [&hellip;]<\/p>\n","protected":false},"author":405,"featured_media":58792,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[197,7509],"tags":[7501],"class_list":["post-7546","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aspnet","category-aspnetcore","tag-communitystandup"],"acf":[],"blog_post_summary":"<p>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. [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/7546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/users\/405"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/comments?post=7546"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/7546\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/58792"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=7546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=7546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=7546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}