/aspnetcore-generator-api

Sample ASP.NET Core API that generates random data, has swagger UI too

Primary LanguageC#MIT LicenseMIT

Access this repository: http://bit.ly/aspnetcoredocker

Branch to course mapping

This repository contains source code for two courses:

Links

Errata / Updates

2.2.0 notes

2.1.0 notes

  • Starting with .NET Core 2.1-preview2, the ASP.NET Core images (previously in microsoft/aspnetcore & microsoft/aspnetcore-build ) will be consolidated into the Docker Hub microsoft/dotnet repository.
    • DOES NOT AFFECT 2.0 and 1.X images.
    • DOES NOT AFFECT non-aspnetcore apps.
    • Announcement: Migrating from aspnetcore docker repos to dotnet
    • I've always wondered why separate aspnetcore repositories were necessary so I welcome this change!
    • Historically, as mentioned in the course, we've had three repos:
      1. microsoft/dotnet
        • General .NET Core development (non-aspnetcore apps, i.e. console apps)
        • Contains runtime/production images, i.e. microsoft/dotnet:2-runtime
        • Contains sdk/development images, i.e. microsoft/dotnet:2-sdk
      2. microsoft/aspnetcore
        • Contains only runtime/production images for ASP.NET Core apps, i.e. microsoft/aspnetcore:2
      3. microsoft/aspnetcore-build
        • Contains only sdk/development images for ASP.NET Core apps, i.e. microsoft/aspnetcore-build:2
        • Also contains some front end build tools like nodejs
      • This division was confusing because for a general dotnet app you use one repo regardless if you need sdk or runtime, and then if you're developing ASP.NET Core then you have to pick a repo based on needing sdk (build) or runtime! SHEESH! Don't we have better things to worry about :) (I kid, .NET Core is so awesome I don't mind this inconvenience)
      • 2.1.300-preview1 is the last version of .NET Core in aspnetcore/aspnetcore-build repos
      • AFAIK - aspnetcore nightly repos are stopping at v2.0 too
    • Going forward:
      • I'm using .NET Core 1.X/2.0:
        • DON'T CHANGE ANYTHING
        • "Legacy" repos / organization will remain
          • phew! - can you imagine forcing every .NET Core Dockerfile ever to be updated! There's a good reason why things are left as is historically.
        • Patches & security fixes will continue to be made available in these repositories
      • I'm using .NET Core 2.1:
        • Use microsoft/dotnet, that's it!
        • v2.1 is pre-release so all of this is subject to change :)
        • Common, tell me the specifics! Ok...
          • microsoft/dotnet:2-sdk for developing any netcore app
          • microsoft/dotnet:2-runtime as a production base for non-aspnetcore apps
          • microsoft/dotnet:2-aspnetcore-runtime as a production base for aspnetcore apps
      • I'm upgrading 1.X/2.0 to 2.1+
        • TODO upgrade notes
      • TODO link announcement
    • TODO - rework course files to use 2.1
    • TODO other big 2.1 changes
  • Review issues dotnet/dotnet-docker#504

2.0.0 RTM notes

All branches in this repository have been updated for 2.0.0 RTM. Issue #3

If you want to use a future release:

  • Update global.json to appropriate sdk version.
  • Update csproj files based on dotnet new webapi and dotnet new xunit templates.
  • Address changes to app code.

If a future release comes out and you don't want to update, change Dockerfile tags to explicitly reference 2.0.0, i.e.

  • microsoft/dotnet:2.0.0-sdk instead of microsoft/dotnet:2-sdk
  • microsoft/aspnetcore:2.0.0 instead of microsoft/aspnetcore:2
  • microsoft/aspnetcore-build:2.0.0 instead of microsoft/aspnetcore-build:2

If you want to use a pre-release version use the -nightly repos, i.e.

  • microsoft/dotnet-nightly instead of microsoft/dotnet

Announcements related to this course, since publishing:

  • During the previews of .NET Core 2.0, Debian Stretch was released. Both Stretch (v9) and Jessie (v8) images are available. As of .NET Core 2.0 RTM Stretch is now used in the multi-architecture tags. And, Stretch is now the default for the lifespan of .NET Core 2.x releases. dotnet/announcements#16
  • microsoft/dotnet & microsoft/dotnet-nightly image tags are now visually grouped by OS & CPU architecture dotnet/announcements#27
  • dotnet restore is now an implicit command, i.e. when you run dotnet build it will perform a restore if needed. That said, dotnet restore is still worthwhile to explicitly control when package restore occurs, for example to optimize the speed of building images as discussed in the courses. dotnet/announcements#23

Resources on Coming Changes

These are great resources for keeping up to date on what's coming next in .NET Core land: