From 1c8173a5fbaf8d0cbaf8a8cc09e2937749a02687 Mon Sep 17 00:00:00 2001 From: Tim Hess Date: Wed, 10 Sep 2025 17:04:37 -0500 Subject: [PATCH] Use .NET casing conventions, add run-local settings - use primary constructor for GreeterService - use GA Steeltoe packages, add appsettings schema ref - update git and cf ignore - reduce dotnet sdk noise on cf Signed-off-by: Tim Hess --- .cfignore | 18 ++++++++ .../.editorconfig => .editorconfig | 0 .github/workflows/ci.yml | 16 +++---- .gitignore | 2 + .../Greeter.Messages.csproj | 2 +- .../Program.cs | 0 .../Properties/launchSettings.json | 20 +++++---- Greeter.Messages/appsettings.Development.json | 8 ++++ .../appsettings.json | 7 +-- Greeter.slnLaunch | 15 +++++++ Greeter.slnx | 4 ++ .../greeter.csproj => Greeter/Greeter.csproj | 2 +- Greeter/GreeterService.cs | 9 ++++ {greeter => Greeter}/Program.cs | 0 .../Properties/launchSettings.json | 2 + Greeter/appsettings.Development.json | 8 ++++ {greeter => Greeter}/appsettings.json | 7 +-- greeter-messages/app.config | 7 --- greeter-messages/greeter-messages.slnx | 3 -- greeter/.editorconfig | 44 ------------------- greeter/GreeterService.cs | 16 ------- greeter/app.config | 7 --- greeter/greeter.slnx | 3 -- manifest.yml | 12 +++-- 24 files changed, 104 insertions(+), 108 deletions(-) create mode 100644 .cfignore rename greeter-messages/.editorconfig => .editorconfig (100%) rename greeter-messages/greeter-messages.csproj => Greeter.Messages/Greeter.Messages.csproj (94%) rename {greeter-messages => Greeter.Messages}/Program.cs (100%) rename {greeter => Greeter.Messages}/Properties/launchSettings.json (60%) create mode 100644 Greeter.Messages/appsettings.Development.json rename {greeter-messages => Greeter.Messages}/appsettings.json (50%) create mode 100644 Greeter.slnLaunch create mode 100644 Greeter.slnx rename greeter/greeter.csproj => Greeter/Greeter.csproj (95%) create mode 100644 Greeter/GreeterService.cs rename {greeter => Greeter}/Program.cs (100%) rename {greeter-messages => Greeter}/Properties/launchSettings.json (85%) create mode 100644 Greeter/appsettings.Development.json rename {greeter => Greeter}/appsettings.json (51%) delete mode 100644 greeter-messages/app.config delete mode 100644 greeter-messages/greeter-messages.slnx delete mode 100644 greeter/.editorconfig delete mode 100644 greeter/GreeterService.cs delete mode 100644 greeter/app.config delete mode 100644 greeter/greeter.slnx diff --git a/.cfignore b/.cfignore new file mode 100644 index 0000000..5f633d2 --- /dev/null +++ b/.cfignore @@ -0,0 +1,18 @@ +# DotNet +bin/ +obj/ + +# user-specific state +*.user + +# VS Code +.vscode/ +*.code-workspace + +# Visual Studio +.vs/ + +# Common files that don't need to be pushed +manifest.yml +*.md +launchSettings.json diff --git a/greeter-messages/.editorconfig b/.editorconfig similarity index 100% rename from greeter-messages/.editorconfig rename to .editorconfig diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a182692..c0d4278 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,16 +21,16 @@ jobs: dotnet-version: '8.0.x' - name: Restore dependencies - run: dotnet restore greeter-messages/greeter-messages.csproj + run: dotnet restore Greeter.Messages/Greeter.Messages.csproj - name: Check code formatting - run: dotnet format --verify-no-changes greeter-messages/ + run: dotnet format --verify-no-changes Greeter.Messages/ - name: Build - run: dotnet build greeter-messages/greeter-messages.csproj --no-restore --configuration Release + run: dotnet build Greeter.Messages/Greeter.Messages.csproj --no-restore --configuration Release - name: Test - run: dotnet test greeter-messages/greeter-messages.csproj --no-build --verbosity normal + run: dotnet test Greeter.Messages/Greeter.Messages.csproj --no-build --verbosity normal greeter: runs-on: ubuntu-latest @@ -46,14 +46,14 @@ jobs: dotnet-version: '8.0.x' - name: Restore dependencies - run: dotnet restore greeter/greeter.csproj + run: dotnet restore Greeter/Greeter.csproj - name: Check code formatting - run: dotnet format --verify-no-changes greeter/ + run: dotnet format --verify-no-changes Greeter/ - name: Build - run: dotnet build greeter/greeter.csproj --no-restore --configuration Release + run: dotnet build Greeter/Greeter.csproj --no-restore --configuration Release - name: Test - run: dotnet test greeter/greeter.csproj --no-build --verbosity normal + run: dotnet test Greeter/Greeter.csproj --no-build --verbosity normal diff --git a/.gitignore b/.gitignore index 659cdfc..8344100 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ */bin/ */obj/ +.vs/ +*.user diff --git a/greeter-messages/greeter-messages.csproj b/Greeter.Messages/Greeter.Messages.csproj similarity index 94% rename from greeter-messages/greeter-messages.csproj rename to Greeter.Messages/Greeter.Messages.csproj index 5745f90..ff7bf76 100644 --- a/greeter-messages/greeter-messages.csproj +++ b/Greeter.Messages/Greeter.Messages.csproj @@ -9,7 +9,7 @@ - 4.0.*-* + 4.0.* diff --git a/greeter-messages/Program.cs b/Greeter.Messages/Program.cs similarity index 100% rename from greeter-messages/Program.cs rename to Greeter.Messages/Program.cs diff --git a/greeter/Properties/launchSettings.json b/Greeter.Messages/Properties/launchSettings.json similarity index 60% rename from greeter/Properties/launchSettings.json rename to Greeter.Messages/Properties/launchSettings.json index e21b41a..c67a1d9 100644 --- a/greeter/Properties/launchSettings.json +++ b/Greeter.Messages/Properties/launchSettings.json @@ -1,23 +1,25 @@ { - "$schema": "https://json.schemastore.org/launchsettings.json", "profiles": { "http": { "commandName": "Project", - "dotnetRunMessages": true, "launchBrowser": true, - "applicationUrl": "http://localhost:8080", + "launchUrl": "greeting", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" - } + }, + "dotnetRunMessages": true, + "applicationUrl": "http://localhost:8081" }, "https": { "commandName": "Project", - "dotnetRunMessages": true, "launchBrowser": true, - "applicationUrl": "https://localhost:8443;http://localhost:8080", + "launchUrl": "greeting", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" - } + }, + "dotnetRunMessages": true, + "applicationUrl": "https://localhost:8444;http://localhost:8081" } - } -} + }, + "$schema": "https://json.schemastore.org/launchsettings.json" +} \ No newline at end of file diff --git a/Greeter.Messages/appsettings.Development.json b/Greeter.Messages/appsettings.Development.json new file mode 100644 index 0000000..9ade15e --- /dev/null +++ b/Greeter.Messages/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://steeltoe.io/schema/latest/schema.json", + "Eureka": { + "Instance": { + "HostName": "localhost" + } + } +} \ No newline at end of file diff --git a/greeter-messages/appsettings.json b/Greeter.Messages/appsettings.json similarity index 50% rename from greeter-messages/appsettings.json rename to Greeter.Messages/appsettings.json index 3acf49b..3262c05 100644 --- a/greeter-messages/appsettings.json +++ b/Greeter.Messages/appsettings.json @@ -1,13 +1,14 @@ { + "$schema": "https://steeltoe.io/schema/latest/schema.json", "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, - "spring": { - "application": { - "name": "greeter-messages" + "Spring": { + "Application": { + "Name": "greeter-messages" } } } diff --git a/Greeter.slnLaunch b/Greeter.slnLaunch new file mode 100644 index 0000000..fb27244 --- /dev/null +++ b/Greeter.slnLaunch @@ -0,0 +1,15 @@ +[ + { + "Name": "Greeter", + "Projects": [ + { + "Path": "Greeter.Messages\\Greeter.Messages.csproj", + "Action": "Start" + }, + { + "Path": "Greeter\\Greeter.csproj", + "Action": "Start" + } + ] + } +] \ No newline at end of file diff --git a/Greeter.slnx b/Greeter.slnx new file mode 100644 index 0000000..57ec7cd --- /dev/null +++ b/Greeter.slnx @@ -0,0 +1,4 @@ + + + + diff --git a/greeter/greeter.csproj b/Greeter/Greeter.csproj similarity index 95% rename from greeter/greeter.csproj rename to Greeter/Greeter.csproj index c4e0db6..fdd3665 100644 --- a/greeter/greeter.csproj +++ b/Greeter/Greeter.csproj @@ -9,7 +9,7 @@ - 4.0.*-* + 4.0.* diff --git a/Greeter/GreeterService.cs b/Greeter/GreeterService.cs new file mode 100644 index 0000000..8e649af --- /dev/null +++ b/Greeter/GreeterService.cs @@ -0,0 +1,9 @@ +namespace Greeter; + +public class GreeterService(HttpClient httpClient) +{ + public async Task Greet(string salutation, string name) + { + return await httpClient.GetStringAsync($"https://GREETER-MESSAGES/greeting?salutation={salutation}&name={name}"); + } +} diff --git a/greeter/Program.cs b/Greeter/Program.cs similarity index 100% rename from greeter/Program.cs rename to Greeter/Program.cs diff --git a/greeter-messages/Properties/launchSettings.json b/Greeter/Properties/launchSettings.json similarity index 85% rename from greeter-messages/Properties/launchSettings.json rename to Greeter/Properties/launchSettings.json index e21b41a..0515846 100644 --- a/greeter-messages/Properties/launchSettings.json +++ b/Greeter/Properties/launchSettings.json @@ -5,6 +5,7 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, + "launchUrl": "hello?salutation=Hi&name=Frank", "applicationUrl": "http://localhost:8080", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" @@ -14,6 +15,7 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, + "launchUrl": "hello?salutation=Hi&name=Frank", "applicationUrl": "https://localhost:8443;http://localhost:8080", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/Greeter/appsettings.Development.json b/Greeter/appsettings.Development.json new file mode 100644 index 0000000..9ade15e --- /dev/null +++ b/Greeter/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://steeltoe.io/schema/latest/schema.json", + "Eureka": { + "Instance": { + "HostName": "localhost" + } + } +} \ No newline at end of file diff --git a/greeter/appsettings.json b/Greeter/appsettings.json similarity index 51% rename from greeter/appsettings.json rename to Greeter/appsettings.json index c4fdb54..183be98 100644 --- a/greeter/appsettings.json +++ b/Greeter/appsettings.json @@ -1,13 +1,14 @@ { + "$schema": "https://steeltoe.io/schema/latest/schema.json", "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, - "spring": { - "application": { - "name": "greeter" + "Spring": { + "Application": { + "Name": "greeter" } } } diff --git a/greeter-messages/app.config b/greeter-messages/app.config deleted file mode 100644 index ea5ce6b..0000000 --- a/greeter-messages/app.config +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/greeter-messages/greeter-messages.slnx b/greeter-messages/greeter-messages.slnx deleted file mode 100644 index a96577c..0000000 --- a/greeter-messages/greeter-messages.slnx +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/greeter/.editorconfig b/greeter/.editorconfig deleted file mode 100644 index 2ca1fa9..0000000 --- a/greeter/.editorconfig +++ /dev/null @@ -1,44 +0,0 @@ -root = true - -[*.cs] -# Indentation -indent_style = space -indent_size = 4 - -# New lines -end_of_line = lf -insert_final_newline = true -charset = utf-8 - -# C# formatting -csharp_new_line_before_open_brace = all -csharp_new_line_before_else = true -csharp_new_line_before_catch = true -csharp_new_line_before_finally = true -csharp_new_line_before_members_in_object_initializers = true -csharp_new_line_before_members_in_anonymous_types = true - -# Naming conventions -dotnet_naming_rule.interface_should_be_prefixed_with_i.severity = warning -dotnet_naming_rule.interface_should_be_prefixed_with_i.symbols = interface -dotnet_naming_rule.interface_should_be_prefixed_with_i.style = prefix_interface_with_i - -dotnet_naming_symbols.interface.applicable_kinds = interface -dotnet_naming_style.prefix_interface_with_i.required_prefix = I - -# Code style -dotnet_style_qualification_for_field = false:suggestion -dotnet_style_qualification_for_property = false:suggestion -dotnet_style_qualification_for_method = false:suggestion -dotnet_style_qualification_for_event = false:suggestion - -# Expression-level preferences -dotnet_style_object_initializer = true:suggestion -dotnet_style_collection_initializer = true:suggestion -dotnet_style_explicit_tuple_names = true:suggestion -dotnet_style_null_propagation = true:suggestion -dotnet_style_coalesce_expression = true:suggestion - -[*.{json,yml,yaml}] -indent_style = space -indent_size = 2 diff --git a/greeter/GreeterService.cs b/greeter/GreeterService.cs deleted file mode 100644 index 4723bc9..0000000 --- a/greeter/GreeterService.cs +++ /dev/null @@ -1,16 +0,0 @@ -namespace Greeter; - -public class GreeterService -{ - private readonly HttpClient httpClient; - - public GreeterService(HttpClient httpClient) - { - this.httpClient = httpClient; - } - - public async Task Greet(string salutation, string name) - { - return await this.httpClient.GetStringAsync($"https://GREETER-MESSAGES/greeting?salutation={salutation}&name={name}"); - } -} diff --git a/greeter/app.config b/greeter/app.config deleted file mode 100644 index ea5ce6b..0000000 --- a/greeter/app.config +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/greeter/greeter.slnx b/greeter/greeter.slnx deleted file mode 100644 index f25db47..0000000 --- a/greeter/greeter.slnx +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/manifest.yml b/manifest.yml index 67f462e..f7b992d 100644 --- a/manifest.yml +++ b/manifest.yml @@ -3,14 +3,20 @@ applications: random-route: true memory: 64M buildpack: dotnet_core_buildpack - path: greeter-messages + path: Greeter.Messages services: - greeter-service-registry - + env: + DOTNET_CLI_TELEMETRY_OPTOUT: "true" + DOTNET_NOLOGO: "true" + - name: greeter random-route: true memory: 64M buildpack: dotnet_core_buildpack - path: greeter + path: Greeter services: - greeter-service-registry + env: + DOTNET_CLI_TELEMETRY_OPTOUT: "true" + DOTNET_NOLOGO: "true" \ No newline at end of file