Skip to content

Instantly share code, notes, and snippets.

@IEvangelist
Last active February 1, 2023 19:14
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save IEvangelist/5c5706221fed67fe1fb87f98b49b4ff6 to your computer and use it in GitHub Desktop.
Save IEvangelist/5c5706221fed67fe1fb87f98b49b4ff6 to your computer and use it in GitHub Desktop.

This is a sample app, trying to demonstrate the smallest ASP.NET Core Minimal API, a "Hello World!" example. The Program.cs* is only three lines of code.

Program.cs:

var app = WebApplication.CreateBuilder(args).Build();
app.MapGet("/", () => "Hello World!");
app.Run();
Expand to see *Sample.cspoj* and *launchSettings.json* files

Sample.csproj:

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>net7.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
  </PropertyGroup>
</Project>

Properties/launchSettings.json:

{
  "$schema": "https://json.schemastore.org/launchsettings.json",
  "profiles": {
    "http": {
      "commandName": "Project",
      "dotnetRunMessages": true,
      "launchBrowser": true,
      "applicationUrl": "http://localhost:5029",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "https": {
      "commandName": "Project",
      "dotnetRunMessages": true,
      "launchBrowser": true,
      "applicationUrl": "https://localhost:7263;http://localhost:5029",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

Note The appsettings.json file is optional

image

Run the app:

image

@kkgthb
Copy link

kkgthb commented Feb 1, 2023

@IEvangelist , would you mind throwing up and linking to a Gist of, say, the smallest possible launchSettings.json to go with this? Thus far, I've got this as a Program.cs and <Project Sdk="Microsoft.NET.Sdk.Web"><PropertyGroup><TargetFramework>net6.0</TargetFramework><Nullable>enable</Nullable><LangVersion>preview</LangVersion><ImplicitUsings>true</ImplicitUsings><RootNamespace>MinimalAPI</RootNamespace></PropertyGroup></Project> as a MinimalAPI.csproj but I'm stuck figuring out what to put for launchSettings.json, which is my best guess why, when I publish this 2-file repo to platform.sh, it gives me a "live" URL hosted on their servers, but visiting the URL 502's out.

(I know, I know, I'm supposed to be using the "dotnet" CLI to scaffold things out for me. I'm petulant and refuse to use boilerplate I don't understand and insist on doing this the hard way, adding teeny-tiny files by hand until it runs.)

Thanks!

@IEvangelist
Copy link
Author

Hi @kkgthb - I've updated this now to .NET 7 and minimal APIs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment