Browse Source

Update giraffe and zebra to .NET 8.0 (#8544)

* Update giraffe to .NET 8.0

* Update zebra

* No need for utf8json

* No need for utf8json
Steffen Forkmann 1 year ago
parent
commit
8a43748a1c

+ 1 - 2
frameworks/FSharp/giraffe/README.md

@@ -10,7 +10,7 @@ This application tests Giraffe in 3 modes:
 
 **Language**
 
-* F# 6.0
+* F# 8.0
 
 **Platforms**
 
@@ -32,5 +32,4 @@ All source code is inside `Program.fs`.
 App listens for a single command line argument to pick the desired JSON implementation:
 
     - `system`: `System.Text.Json`
-    - `utf8`: `Utf8Json`
     - `newtonsoft`: `Newtonsoft.Json`

+ 0 - 18
frameworks/FSharp/giraffe/benchmark_config.json

@@ -22,24 +22,6 @@
         "notes": "",
         "versus": "aspcore"
       },
-      "utf8json": {
-        "json_url": "/json",
-        "port": 8080,
-        "approach": "Realistic",
-        "classification": "Micro",
-        "database": "None",
-        "framework": "giraffe",
-        "language": "F#",
-        "orm": "Raw",
-        "platform": ".NET",
-        "flavor": "CoreCLR",
-        "webserver": "Kestrel",
-        "os": "Linux",
-        "database_os": "Linux",
-        "display_name": "Giraffe, Utf8Json",
-        "notes": "",
-        "versus": "aspcore"
-      },
       "newtonsoft": {
         "json_url": "/json",
         "port": 8080,

+ 0 - 12
frameworks/FSharp/giraffe/config.toml

@@ -26,15 +26,3 @@ orm = "Raw"
 platform = ".NET"
 webserver = "Kestrel"
 versus = "aspcore"
-
-[utf8json]
-urls.json = "/json"
-approach = "Realistic"
-classification = "Micro"
-database = "None"
-database_os = "Linux"
-os = "Linux"
-orm = "Raw"
-platform = ".NET"
-webserver = "Kestrel"
-versus = "aspcore"

+ 4 - 4
frameworks/FSharp/giraffe/giraffe-newtonsoft.dockerfile

@@ -1,14 +1,14 @@
-FROM mcr.microsoft.com/dotnet/sdk:7.0.100 AS build
+FROM mcr.microsoft.com/dotnet/sdk:8.0.100 AS build
 WORKDIR /app
 COPY src/App .
 RUN dotnet publish -c Release -o out
 
-FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS runtime
+FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime
 ENV ASPNETCORE_URLS http://+:8080
 
 # Full PGO
-ENV DOTNET_TieredPGO 1 
-ENV DOTNET_TC_QuickJitForLoops 1 
+ENV DOTNET_TieredPGO 1
+ENV DOTNET_TC_QuickJitForLoops 1
 ENV DOTNET_ReadyToRun 0
 
 WORKDIR /app

+ 0 - 19
frameworks/FSharp/giraffe/giraffe-utf8json.dockerfile

@@ -1,19 +0,0 @@
-FROM mcr.microsoft.com/dotnet/sdk:7.0.100 AS build
-WORKDIR /app
-COPY src/App .
-RUN dotnet publish -c Release -o out
-
-FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS runtime
-ENV ASPNETCORE_URLS http://+:8080
-
-# Full PGO
-ENV DOTNET_TieredPGO 1 
-ENV DOTNET_TC_QuickJitForLoops 1 
-ENV DOTNET_ReadyToRun 0
-
-WORKDIR /app
-COPY --from=build /app/out ./
-
-EXPOSE 8080
-
-ENTRYPOINT ["dotnet", "App.dll", "utf8"]

+ 4 - 4
frameworks/FSharp/giraffe/giraffe.dockerfile

@@ -1,14 +1,14 @@
-FROM mcr.microsoft.com/dotnet/sdk:7.0.100 AS build
+FROM mcr.microsoft.com/dotnet/sdk:8.0.100 AS build
 WORKDIR /app
 COPY src/App .
 RUN dotnet publish -c Release -o out
 
-FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS runtime
+FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime
 ENV ASPNETCORE_URLS http://+:8080
 
 # Full PGO
-ENV DOTNET_TieredPGO 1 
-ENV DOTNET_TC_QuickJitForLoops 1 
+ENV DOTNET_TieredPGO 1
+ENV DOTNET_TC_QuickJitForLoops 1
 ENV DOTNET_ReadyToRun 0
 
 WORKDIR /app

+ 5 - 8
frameworks/FSharp/giraffe/src/App/App.fsproj

@@ -1,18 +1,15 @@
 <Project Sdk="Microsoft.NET.Sdk.Web">
 
   <PropertyGroup>
-    <TargetFramework>net7.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
     <EnableDefaultContentItems>false</EnableDefaultContentItems>
-
-    <!-- Settings applicable to JIT-based deployment -->
-    <TieredPGO>true</TieredPGO>
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Update="FSharp.Core" Version="7.0.0" />
-    <PackageReference Include="Dapper" Version="2.0.123" />
-    <PackageReference Include="Giraffe" Version="6.0.0" />
-    <PackageReference Include="Npgsql" Version="7.0.1" />
+    <PackageReference Update="FSharp.Core" Version="8.0.100" />
+    <PackageReference Include="Dapper" Version="2.1.21" />
+    <PackageReference Include="Giraffe" Version="6.2.0" />
+    <PackageReference Include="Npgsql" Version="8.0.0-rc.2" />
   </ItemGroup>
 
   <ItemGroup>

+ 3 - 8
frameworks/FSharp/giraffe/src/App/Program.fs

@@ -17,7 +17,6 @@ module Common =
 
     type JsonMode =
         | System
-        | Utf8
         | Newtonsoft
 
     let FortuneComparer =
@@ -109,12 +108,11 @@ module Main =
     open Microsoft.Extensions.Hosting
     open Microsoft.Extensions.Logging
 
-    [<EntryPoint>]    
+    [<EntryPoint>]
     let main args =
         let jsonMode =
             match args with
             | [| "newtonsoft" |] -> Newtonsoft
-            | [| "utf8" |]       -> Utf8
             | _                  -> System
 
         printfn $"Running with %A{jsonMode} JSON serializer"
@@ -124,9 +122,6 @@ module Main =
             | System ->
                 SystemTextJson.Serializer(SystemTextJson.Serializer.DefaultOptions)
                 :> Json.ISerializer
-            | Utf8 ->
-                Utf8Json.Serializer(Utf8Json.Serializer.DefaultResolver)
-                :> Json.ISerializer
             | Newtonsoft ->
                 NewtonsoftJson.Serializer(NewtonsoftJson.Serializer.DefaultSettings)
                 :> Json.ISerializer
@@ -136,7 +131,7 @@ module Main =
         builder.Services
             .AddSingleton(jsonSerializer)
             .AddGiraffe() |> ignore
-            
+
         builder.Logging.ClearProviders() |> ignore
 
         let app = builder.Build()
@@ -145,5 +140,5 @@ module Main =
            .UseGiraffe HttpHandlers.endpoints |> ignore
 
         app.Run()
-        
+
         0

+ 1 - 1
frameworks/FSharp/zebra/README.md

@@ -7,7 +7,7 @@ Zebra is a new F# functional Asp.net Framework Wrapper that utalises a shared st
 
 **Language**
 
-* F# 6.0
+* F# 8.0
 
 **Platforms**
 

+ 4 - 6
frameworks/FSharp/zebra/src/App/App.fsproj

@@ -1,20 +1,18 @@
 <Project Sdk="Microsoft.NET.Sdk.Web">
 
   <PropertyGroup>
-    <TargetFramework>net7.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
     <DebugType>portable</DebugType>
     <AssemblyName>App</AssemblyName>
     <OutputType>Exe</OutputType>
     <EnableDefaultContentItems>false</EnableDefaultContentItems>
-    <!-- Settings applicable to JIT-based deployment -->
-    <TieredPGO>true</TieredPGO>
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Dapper" Version="2.0.123" />
-    <PackageReference Include="Npgsql" Version="7.0.0" />
+    <PackageReference Include="Dapper" Version="2.1.21" />
+    <PackageReference Include="Npgsql" Version="8.0.0-rc.2" />
     <PackageReference Include="Utf8Json" Version="1.3.7" />
-    <PackageReference Update="FSharp.Core" Version="7.0.0" />
+    <PackageReference Update="FSharp.Core" Version="8.0.100" />
   </ItemGroup>
 
   <ItemGroup>

+ 4 - 4
frameworks/FSharp/zebra/zebra-simple.dockerfile

@@ -1,12 +1,12 @@
-FROM mcr.microsoft.com/dotnet/sdk:7.0.100 AS build
+FROM mcr.microsoft.com/dotnet/sdk:8.0.100 AS build
 WORKDIR /app
 COPY src/App .
 RUN dotnet publish -c Release -o out
 
-FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS runtime
+FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime
 # Full PGO
-ENV DOTNET_TieredPGO 1 
-ENV DOTNET_TC_QuickJitForLoops 1 
+ENV DOTNET_TieredPGO 1
+ENV DOTNET_TC_QuickJitForLoops 1
 ENV DOTNET_ReadyToRun 0
 
 ENV ASPNETCORE_URLS http://+:8080

+ 4 - 4
frameworks/FSharp/zebra/zebra.dockerfile

@@ -1,12 +1,12 @@
-FROM mcr.microsoft.com/dotnet/sdk:7.0.100 AS build
+FROM mcr.microsoft.com/dotnet/sdk:8.0.100 AS build
 WORKDIR /app
 COPY src/App .
 RUN dotnet publish -c Release -o out
 
-FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS runtime
+FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime
 # Full PGO
-ENV DOTNET_TieredPGO 1 
-ENV DOTNET_TC_QuickJitForLoops 1 
+ENV DOTNET_TieredPGO 1
+ENV DOTNET_TC_QuickJitForLoops 1
 ENV DOTNET_ReadyToRun 0
 
 ENV ASPNETCORE_URLS http://+:8080