diff --git a/frameworks/FSharp/giraffe/README.md b/frameworks/FSharp/giraffe/README.md
index dfb4a5fc5e6..aaced20e92c 100644
--- a/frameworks/FSharp/giraffe/README.md
+++ b/frameworks/FSharp/giraffe/README.md
@@ -5,7 +5,7 @@ This includes tests for plaintext and json serialization.
**Language**
-* F# 4.1
+* F# 4.6
**Platforms**
diff --git a/frameworks/FSharp/giraffe/giraffe-stripped.dockerfile b/frameworks/FSharp/giraffe/giraffe-stripped.dockerfile
index 09d0926bfd4..73acf6c5b0a 100644
--- a/frameworks/FSharp/giraffe/giraffe-stripped.dockerfile
+++ b/frameworks/FSharp/giraffe/giraffe-stripped.dockerfile
@@ -1,11 +1,10 @@
-FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
+FROM mcr.microsoft.com/dotnet/core/sdk:3.0 AS build
WORKDIR /app
COPY src/App .
RUN dotnet publish -c Release -o out
-FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS runtime
+FROM mcr.microsoft.com/dotnet/core/aspnet:3.0 AS runtime
ENV ASPNETCORE_URLS http://+:8080
-ENV COMPlus_ReadyToRun 0
WORKDIR /app
COPY --from=build /app/out ./
diff --git a/frameworks/FSharp/giraffe/giraffe-utf8direct.dockerfile b/frameworks/FSharp/giraffe/giraffe-utf8direct.dockerfile
index 09d0926bfd4..73acf6c5b0a 100644
--- a/frameworks/FSharp/giraffe/giraffe-utf8direct.dockerfile
+++ b/frameworks/FSharp/giraffe/giraffe-utf8direct.dockerfile
@@ -1,11 +1,10 @@
-FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
+FROM mcr.microsoft.com/dotnet/core/sdk:3.0 AS build
WORKDIR /app
COPY src/App .
RUN dotnet publish -c Release -o out
-FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS runtime
+FROM mcr.microsoft.com/dotnet/core/aspnet:3.0 AS runtime
ENV ASPNETCORE_URLS http://+:8080
-ENV COMPlus_ReadyToRun 0
WORKDIR /app
COPY --from=build /app/out ./
diff --git a/frameworks/FSharp/giraffe/giraffe-utf8json.dockerfile b/frameworks/FSharp/giraffe/giraffe-utf8json.dockerfile
index 09d0926bfd4..73acf6c5b0a 100644
--- a/frameworks/FSharp/giraffe/giraffe-utf8json.dockerfile
+++ b/frameworks/FSharp/giraffe/giraffe-utf8json.dockerfile
@@ -1,11 +1,10 @@
-FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
+FROM mcr.microsoft.com/dotnet/core/sdk:3.0 AS build
WORKDIR /app
COPY src/App .
RUN dotnet publish -c Release -o out
-FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS runtime
+FROM mcr.microsoft.com/dotnet/core/aspnet:3.0 AS runtime
ENV ASPNETCORE_URLS http://+:8080
-ENV COMPlus_ReadyToRun 0
WORKDIR /app
COPY --from=build /app/out ./
diff --git a/frameworks/FSharp/giraffe/giraffe.dockerfile b/frameworks/FSharp/giraffe/giraffe.dockerfile
index 322b23b984c..17271bda28f 100644
--- a/frameworks/FSharp/giraffe/giraffe.dockerfile
+++ b/frameworks/FSharp/giraffe/giraffe.dockerfile
@@ -1,11 +1,10 @@
-FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
+FROM mcr.microsoft.com/dotnet/core/sdk:3.0 AS build
WORKDIR /app
COPY src/App .
RUN dotnet publish -c Release -o out
-FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS runtime
+FROM mcr.microsoft.com/dotnet/core/aspnet:3.0 AS runtime
ENV ASPNETCORE_URLS http://+:8080
-ENV COMPlus_ReadyToRun 0
WORKDIR /app
COPY --from=build /app/out ./
diff --git a/frameworks/FSharp/giraffe/src/App/App.fsproj b/frameworks/FSharp/giraffe/src/App/App.fsproj
index e034ca4e748..87d64e52820 100644
--- a/frameworks/FSharp/giraffe/src/App/App.fsproj
+++ b/frameworks/FSharp/giraffe/src/App/App.fsproj
@@ -1,7 +1,8 @@
- netcoreapp2.2
+ netcoreapp3.0
+ preview
portable
App
Exe
@@ -9,13 +10,10 @@
-
-
-
-
-
-
-
+
+
+
+
@@ -27,8 +25,4 @@
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/frameworks/FSharp/giraffe/src/App/Custom.fs b/frameworks/FSharp/giraffe/src/App/Custom.fs
index 1e6a4a0f9e3..0366dd94052 100644
--- a/frameworks/FSharp/giraffe/src/App/Custom.fs
+++ b/frameworks/FSharp/giraffe/src/App/Custom.fs
@@ -11,6 +11,7 @@ open System.IO
let private DefaultCapacity = 1386
let private MaxBuilderSize = DefaultCapacity * 3
+let private BufferSize = 27
type MemoryStreamCache =
@@ -43,13 +44,12 @@ let application : HttpHandler =
let inline contentLength x = new Nullable ( int64 x )
let json' data : HttpHandler =
- let bytes = Utf8Json.JsonSerializer.Serialize(data)
fun _ ctx ->
- ctx.Response.ContentLength <- contentLength bytes.Length
+ ctx.Response.ContentLength <- contentLength BufferSize
ctx.Response.ContentType <- "application/json"
ctx.Response.StatusCode <- 200
task {
- do! ctx.Response.Body.WriteAsync(bytes, 0, bytes.Length)
+ do! System.Text.Json.JsonSerializer.SerializeAsync(ctx.Response.Body, data)
return Some ctx
}
@@ -108,7 +108,7 @@ let application : HttpHandler =
routes' [
"/plaintext", text' "Hello, World!"
- "/json", json' { JsonStructMessage.message = "Hello, World!" }
+ "/json", json' struct {| message = "Hello, World!" |}
"/fortunes", fortunes'
]
diff --git a/frameworks/FSharp/giraffe/src/App/Models.fs b/frameworks/FSharp/giraffe/src/App/Models.fs
index 69b5e58640b..f67b6e77db6 100644
--- a/frameworks/FSharp/giraffe/src/App/Models.fs
+++ b/frameworks/FSharp/giraffe/src/App/Models.fs
@@ -3,11 +3,6 @@
open System.Collections.Generic
open System
-type JsonMessage = { message : string }
-
-[]
-type JsonStructMessage = { message : string }
-
[]
type Fortune = { id: int; message: string }
diff --git a/frameworks/FSharp/giraffe/src/App/Stock.fs b/frameworks/FSharp/giraffe/src/App/Stock.fs
index e8b7cf8e701..39876908f88 100644
--- a/frameworks/FSharp/giraffe/src/App/Stock.fs
+++ b/frameworks/FSharp/giraffe/src/App/Stock.fs
@@ -34,6 +34,6 @@ let application : HttpHandler =
choose [
route "/plaintext" >=> text "Hello, World!"
- route "/json" >=> json { JsonMessage.message = "Hello, World!" }
+ route "/json" >=> json {| message = "Hello, World!" |}
route "/fortunes" >=> fortunes
]
diff --git a/frameworks/FSharp/zebra/README.md b/frameworks/FSharp/zebra/README.md
index 7f3249e8fd0..27b9a1ab6c7 100644
--- a/frameworks/FSharp/zebra/README.md
+++ b/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# 4.1
+* F# 4.6
**Platforms**
diff --git a/frameworks/FSharp/zebra/src/App/App.fsproj b/frameworks/FSharp/zebra/src/App/App.fsproj
index 6f20f4f4487..894bc209f04 100644
--- a/frameworks/FSharp/zebra/src/App/App.fsproj
+++ b/frameworks/FSharp/zebra/src/App/App.fsproj
@@ -1,7 +1,8 @@
- netcoreapp2.1
+ netcoreapp3.0
+ preview
portable
App
Exe
@@ -9,13 +10,10 @@
-
-
-
-
-
-
+
+
+
@@ -32,8 +30,4 @@
-
-
-
-
\ No newline at end of file
diff --git a/frameworks/FSharp/zebra/zebra-simple.dockerfile b/frameworks/FSharp/zebra/zebra-simple.dockerfile
index 1786c0cd394..1a3ca04fa0b 100644
--- a/frameworks/FSharp/zebra/zebra-simple.dockerfile
+++ b/frameworks/FSharp/zebra/zebra-simple.dockerfile
@@ -1,11 +1,10 @@
-FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
+FROM mcr.microsoft.com/dotnet/core/sdk:3.0 AS build
WORKDIR /app
COPY src/App .
RUN dotnet publish -c Release -o out
-FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS runtime
+FROM mcr.microsoft.com/dotnet/core/aspnet:3.0 AS runtime
ENV ASPNETCORE_URLS http://+:8080
-ENV COMPlus_ReadyToRun 0
WORKDIR /app
COPY --from=build /app/out ./
diff --git a/frameworks/FSharp/zebra/zebra.dockerfile b/frameworks/FSharp/zebra/zebra.dockerfile
index 09d0926bfd4..73acf6c5b0a 100644
--- a/frameworks/FSharp/zebra/zebra.dockerfile
+++ b/frameworks/FSharp/zebra/zebra.dockerfile
@@ -1,11 +1,10 @@
-FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
+FROM mcr.microsoft.com/dotnet/core/sdk:3.0 AS build
WORKDIR /app
COPY src/App .
RUN dotnet publish -c Release -o out
-FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS runtime
+FROM mcr.microsoft.com/dotnet/core/aspnet:3.0 AS runtime
ENV ASPNETCORE_URLS http://+:8080
-ENV COMPlus_ReadyToRun 0
WORKDIR /app
COPY --from=build /app/out ./