Browse Source

CSharp/aspnetcore update (#2483)

* aspnetcore: Remove dependency on net451 and mono

* aspnetcore: Update PostgreSQL connection string for latest npgsql
- Prepared statements are now persisted by default, so the PersistPrepared option has been removed.
- https://github.com/npgsql/npgsql/issues/1237

* aspnetcore: Make shell scripts executable

* aspnetcore: Change scripts to use `dotnet Benchmarks.dll`
- Scripts currently use `dotnet run` which is intended for iterative development rather than production.
- Should not cause a measurable change in performance.

* aspnetcore: Add DB scenarios to README.md

* aspnetcore: Update framework and packages to 1.1

* aspnetcore: Remove unnecessary import from project.json

* aspnetcore: Make dotnetcore.sh executable

* aspnetcore: Update dotnetcore.sh to 1.1
Mike Harder 8 years ago
parent
commit
399a99a724

+ 1 - 1
frameworks/CSharp/aspnetcore/Benchmarks/appsettings.postgresql.json

@@ -1,4 +1,4 @@
 {
 {
-  "ConnectionString": "Server={db_server_placeholder};Database=hello_world;User Id=benchmarkdbuser;Password=benchmarkdbpass;Maximum Pool Size=1024;NoResetOnClose=true;PersistPrepared=true",
+  "ConnectionString": "Server={db_server_placeholder};Database=hello_world;User Id=benchmarkdbuser;Password=benchmarkdbpass;Maximum Pool Size=1024;NoResetOnClose=true",
   "Database": "postgresql"
   "Database": "postgresql"
 }
 }

+ 18 - 25
frameworks/CSharp/aspnetcore/Benchmarks/project.json

@@ -12,44 +12,36 @@
     }
     }
   },
   },
   "dependencies": {
   "dependencies": {
-    "Dapper": "1.50.0-*",
-    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-*",
+    "Dapper": "1.50.2",
+    "Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",
     "Microsoft.EntityFrameworkCore.Tools": {
     "Microsoft.EntityFrameworkCore.Tools": {
       "type": "build",
       "type": "build",
-      "version": "1.0.0-*"
+      "version": "1.1.0-preview4-final"
     },
     },
-    "Microsoft.AspNetCore.Mvc": "1.0.0-*",
-    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-*",
-    "Microsoft.AspNetCore.Server.WebListener": "0.1.0-*",
-    "Microsoft.AspNetCore.StaticFiles": "1.0.0-*",
-    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0-*",
-    "Microsoft.Extensions.Configuration.Json": "1.0.0-*",
-    "Microsoft.Extensions.Configuration.CommandLine": "1.0.0-*",
-    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-*",
+    "Microsoft.AspNetCore.Mvc": "1.1.0",
+    "Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
+    "Microsoft.AspNetCore.Server.WebListener": "1.1.0",
+    "Microsoft.AspNetCore.StaticFiles": "1.1.0",
+    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0",
+    "Microsoft.Extensions.Configuration.Json": "1.1.0",
+    "Microsoft.Extensions.Configuration.CommandLine": "1.1.0",
+    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0",
     "Npgsql": "3.2.0-*",
     "Npgsql": "3.2.0-*",
-    "Npgsql.EntityFrameworkCore.PostgreSQL": "1.0.2-*" 
+    "Npgsql.EntityFrameworkCore.PostgreSQL": "1.1.0"
   },
   },
   "frameworks": {
   "frameworks": {
-    "netcoreapp1.0": {
-      "imports": [ "portable-net451+win8", "dnxcore50" ],
+    "netcoreapp1.1": {
       "dependencies": {
       "dependencies": {
         "Microsoft.NETCore.App": {
         "Microsoft.NETCore.App": {
-          "version": "1.0.0-*",
+          "version": "1.1.0",
           "type": "platform"
           "type": "platform"
         },
         },
-        "System.Runtime.Serialization.Primitives": "4.1.1-*"
+        "System.Runtime.Serialization.Primitives": "4.3.0"
       }
       }
-    },
-    "net451": { }
+    }
   },
   },
   "tools": {
   "tools": {
-    "Microsoft.EntityFrameworkCore.Tools": {
-      "version": "1.0.0-*",
-      "imports": [
-        "dnxcore50",
-        "portable-net452+win81"
-      ]
-    }
+    "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final"
   },
   },
   "publishOptions": {
   "publishOptions": {
     "include": [
     "include": [
@@ -64,3 +56,4 @@
     }
     }
   }
   }
 }
 }
+

+ 25 - 1
frameworks/CSharp/aspnetcore/README.md

@@ -29,4 +29,28 @@ This includes tests for plaintext and json serialization.
 * [Plaintext](Benchmarks/Middleware/PlaintextMiddleware.cs): "/plaintext"
 * [Plaintext](Benchmarks/Middleware/PlaintextMiddleware.cs): "/plaintext"
 * [Plaintext MVC](Benchmarks/Controllers/HomeController.cs): "/mvc/plaintext"
 * [Plaintext MVC](Benchmarks/Controllers/HomeController.cs): "/mvc/plaintext"
 * [JSON Serialization](Benchmarks/Middleware/JsonMiddleware.cs): "/json"
 * [JSON Serialization](Benchmarks/Middleware/JsonMiddleware.cs): "/json"
-* [JSON Serialization MVC](Benchmarks/Controllers/HomeController.cs): "/mvc/json"
+* [JSON Serialization MVC](Benchmarks/Controllers/HomeController.cs): "/mvc/json"
+* [Single Query Raw](Benchmarks/Middleware/SingleQueryRawMiddleware.cs): "/db/raw"
+* [Single Query EF](Benchmarks/Middleware/SingleQueryEfMiddleware.cs): "/db/ef"
+* [Single Query Dapper](Benchmarks/Middleware/SingleQueryDapperMiddleware.cs): "/db/dapper"
+* [Single Query MVC Raw](Benchmarks/Controllers/SingleQueryController.cs): "/mvc/db/raw"
+* [Single Query MVC EF](Benchmarks/Controllers/SingleQueryController.cs): "/mvc/db/ef"
+* [Single Query MVC Dapper](Benchmarks/Controllers/SingleQueryController.cs): "/mvc/db/dapper"
+* [Multiple Queries Raw](Benchmarks/Middleware/MultipleQueriesRawMiddleware.cs): "/queries/raw"
+* [Multiple Queries EF](Benchmarks/Middleware/MultipleQueriesEfMiddleware.cs): "/queries/ef"
+* [Multiple Queries Dapper](Benchmarks/Middleware/MultipleQueriesDapperMiddleware.cs): "/queries/dapper"
+* [Multiple Queries MVC Raw](Benchmarks/Controllers/MultipleQueriesController.cs): "/mvc/queries/raw"
+* [Multiple Queries MVC EF](Benchmarks/Controllers/MultipleQueriesController.cs): "/mvc/queries/ef"
+* [Multiple Queries MVC Dapper](Benchmarks/Controllers/MultipleQueriesController.cs): "/mvc/queries/dapper"
+* [Data Updates Raw](Benchmarks/Middleware/MultipleUpdatesRawMiddleware.cs): "/updates/raw"
+* [Data Updates EF](Benchmarks/Middleware/MultipleUpdatesEfMiddleware.cs): "/updates/ef"
+* [Data Updates Dapper](Benchmarks/Middleware/MultipleUpdatesDapperMiddleware.cs): "/updates/dapper"
+* [Data Updates MVC Raw](Benchmarks/Controllers/MultipleUpdatesController.cs): "/mvc/updates/raw"
+* [Data Updates MVC EF](Benchmarks/Controllers/MultipleUpdatesController.cs): "/mvc/updates/ef"
+* [Data Updates MVC Dapper](Benchmarks/Controllers/MultipleUpdatesController.cs): "/mvc/updates/dapper"
+* [Fortunes Raw](Benchmarks/Middleware/FortunesRawMiddleware.cs): "/fortunes/raw"
+* [Fortunes EF](Benchmarks/Middleware/FortunesEfMiddleware.cs): "/fortunes/ef"
+* [Fortunes Dapper](Benchmarks/Middleware/FortunesDapperMiddleware.cs): "/fortunes/dapper"
+* [Fortunes MVC Raw](Benchmarks/Controllers/FortunesController.cs): "/mvc/fortunes/raw"
+* [Fortunes MVC EF](Benchmarks/Controllers/FortunesController.cs): "/mvc/fortunes/ef"
+* [Fortunes MVC Dapper](Benchmarks/Controllers/FortunesController.cs): "/mvc/fortunes/dapper"

+ 3 - 3
frameworks/CSharp/aspnetcore/run-linux.sh

@@ -1,5 +1,5 @@
 #!/bin/bash
 #!/bin/bash
-fw_depends mono dotnetcore
+fw_depends dotnetcore
 
 
 threadCount=$2
 threadCount=$2
 if [ "$threadCount" -lt "1" ]
 if [ "$threadCount" -lt "1" ]
@@ -11,6 +11,6 @@ cd Benchmarks
 cp appsettings.postgresql.json appsettings.json
 cp appsettings.postgresql.json appsettings.json
 sed -i 's|{db_server_placeholder}|'"${DBHOST}"'|g' appsettings.json
 sed -i 's|{db_server_placeholder}|'"${DBHOST}"'|g' appsettings.json
 dotnet restore
 dotnet restore
-dotnet build -c Release -f netcoreapp1.0
+dotnet build -c Release
 
 
-dotnet run -c Release server.urls=http://*:8080 scenarios=$1 server=kestrel threadCount=$threadCount NonInteractive=true &
+dotnet bin/Release/netcoreapp1.1/Benchmarks.dll server.urls=http://*:8080 scenarios=$1 server=kestrel threadCount=$threadCount NonInteractive=true &

+ 2 - 2
frameworks/CSharp/aspnetcore/run-windows.ps1

@@ -4,5 +4,5 @@ $scenarios = (-split $scenarios) -join ","
 
 
 cd Benchmarks
 cd Benchmarks
 dotnet restore
 dotnet restore
-dotnet build -c Release -f netcoreapp1.0
-Start-Process -NoNewWindow dotnet "run -c Release server.urls=http://*:8080 server=$server threadCount=1 NonInteractive=true scenarios=$scenarios"
+dotnet build -c Release
+Start-Process -NoNewWindow dotnet "bin\Release\netcoreapp1.1\Benchmarks.dll server.urls=http://*:8080 server=$server threadCount=1 NonInteractive=true scenarios=$scenarios"

+ 3 - 3
frameworks/CSharp/aspnetcore/setup-dapper.sh

@@ -2,11 +2,11 @@
 
 
 fw_installed dotnetcore && return 0
 fw_installed dotnetcore && return 0
 
 
-sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list' 
-sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893
+sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list'
+sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893
 sudo apt-get update
 sudo apt-get update
 
 
-sudo apt-get install dotnet-dev-1.0.0-preview2-003131 -y
+sudo apt-get install dotnet-dev-1.0.0-preview2.1-003177 -y
 echo "PATH=$HOME/.dotnet:$PATH" > $IROOT/dotnetcore.installed
 echo "PATH=$HOME/.dotnet:$PATH" > $IROOT/dotnetcore.installed
 
 
 source $IROOT/dotnetcore.installed
 source $IROOT/dotnetcore.installed