Browse Source

Remove Mono ASP.NET benchmarks (#6165)

They're running on the old version of ASP.NET on Mono which hasn't been maintained for a long time and just causes confusion with ASP.NET Core.
Alexander Köplinger 4 years ago
parent
commit
fda6b2382c
29 changed files with 0 additions and 1414 deletions
  1. 0 48
      frameworks/CSharp/aspnet-mono-ngx/README.md
  2. 0 12
      frameworks/CSharp/aspnet-mono-ngx/aspnet-mono-ngx-jn.dockerfile
  3. 0 12
      frameworks/CSharp/aspnet-mono-ngx/aspnet-mono-ngx-my-ef.dockerfile
  4. 0 12
      frameworks/CSharp/aspnet-mono-ngx/aspnet-mono-ngx-my.dockerfile
  5. 0 12
      frameworks/CSharp/aspnet-mono-ngx/aspnet-mono-ngx-ss.dockerfile
  6. 0 12
      frameworks/CSharp/aspnet-mono-ngx/aspnet-mono-ngx.dockerfile
  7. 0 102
      frameworks/CSharp/aspnet-mono-ngx/benchmark_config.json
  8. 0 37
      frameworks/CSharp/aspnet-mono-ngx/nginx.conf
  9. 0 28
      frameworks/CSharp/aspnet-mono-ngx/run.sh
  10. 0 90
      frameworks/CSharp/aspnet-mono-ngx/src/Application.cs
  11. 0 56
      frameworks/CSharp/aspnet-mono-ngx/src/Benchmarks.build.proj
  12. 0 171
      frameworks/CSharp/aspnet-mono-ngx/src/Benchmarks.csproj
  13. 0 26
      frameworks/CSharp/aspnet-mono-ngx/src/Benchmarks.sln
  14. 0 173
      frameworks/CSharp/aspnet-mono-ngx/src/Controllers/AdoController.cs
  15. 0 72
      frameworks/CSharp/aspnet-mono-ngx/src/Controllers/EntityFrameworkController.cs
  16. 0 12
      frameworks/CSharp/aspnet-mono-ngx/src/Controllers/HomeController.cs
  17. 0 68
      frameworks/CSharp/aspnet-mono-ngx/src/Controllers/JsonController.cs
  18. 0 66
      frameworks/CSharp/aspnet-mono-ngx/src/Controllers/MongoDBController.cs
  19. 0 12
      frameworks/CSharp/aspnet-mono-ngx/src/Controllers/PlaintextController.cs
  20. 0 38
      frameworks/CSharp/aspnet-mono-ngx/src/Models/EntityFramework.cs
  21. 0 15
      frameworks/CSharp/aspnet-mono-ngx/src/Models/Fortune.cs
  22. 0 53
      frameworks/CSharp/aspnet-mono-ngx/src/Models/MongoDB.cs
  23. 0 8
      frameworks/CSharp/aspnet-mono-ngx/src/Models/World.cs
  24. 0 75
      frameworks/CSharp/aspnet-mono-ngx/src/Properties/PublishProfiles/IIS.pubxml
  25. 0 25
      frameworks/CSharp/aspnet-mono-ngx/src/Views/Fortunes.cshtml
  26. 0 64
      frameworks/CSharp/aspnet-mono-ngx/src/Views/Index.cshtml
  27. 0 33
      frameworks/CSharp/aspnet-mono-ngx/src/Views/Web.config
  28. 0 64
      frameworks/CSharp/aspnet-mono-ngx/src/Web.config
  29. 0 18
      frameworks/CSharp/aspnet-mono-ngx/src/packages.config

+ 0 - 48
frameworks/CSharp/aspnet-mono-ngx/README.md

@@ -1,48 +0,0 @@
-# ASP.NET MVC on Windows and Mono
-
-## Note
-
-Some tests have been removed from the `benchmark_config.json`. The code still exists in src. If you'd like to attempt to reimplement these tests, you can look to this [benchmark_config](https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/frameworks/CSharp/aspnet/benchmark_config.json)
-
-## Tests
-
-* JSON serialization
-* Single database query
-* Multiple database queries
-* Server-side templates and collections
-* Database updates
-* Plaintext
-
-## Versions
-
-**Language**
-
-* C# 5.0
-
-**Platforms**
-
-* .NET Framework 4.5 (Windows)
-* Mono 3.99.0 (Linux)
-
-**Web Servers**
-
-* IIS 8 (Windows)
-* XSP latest (Linux)
-* nginx 1.4.1 & XSP FastCGI (Linux)
-
-**Web Stack**
-
-* ASP.NET 4.5
-* ASP.NET MVC Framework 5.2.2
-* ASP.NET Razor 3.2.2
-
-**Databases**
-
-* MySQL Connector/Net 6.9.5
-* Npgsql 2.2.3
-* Entity Framework 6.1.1
-* Mongo C# Driver 1.9.2
-
-**Developer Tools**
-
-* Visual Studio 2012

+ 0 - 12
frameworks/CSharp/aspnet-mono-ngx/aspnet-mono-ngx-jn.dockerfile

@@ -1,12 +0,0 @@
-FROM mono:latest
-RUN apt-get update -yqq && apt-get install -yqq nginx wget mono-fastcgi-server
-
-WORKDIR /aspnet
-COPY src src
-COPY nginx.conf nginx.conf
-COPY run.sh run.sh
-
-RUN msbuild src/Benchmarks.build.proj /t:Clean
-RUN msbuild src/Benchmarks.build.proj /t:Build
-
-CMD bash run.sh

+ 0 - 12
frameworks/CSharp/aspnet-mono-ngx/aspnet-mono-ngx-my-ef.dockerfile

@@ -1,12 +0,0 @@
-FROM mono:latest
-RUN apt-get update -yqq && apt-get install -yqq nginx wget mono-fastcgi-server
-
-WORKDIR /aspnet
-COPY src src
-COPY nginx.conf nginx.conf
-COPY run.sh run.sh
-
-RUN msbuild src/Benchmarks.build.proj /t:Clean
-RUN msbuild src/Benchmarks.build.proj /t:Build
-
-CMD bash run.sh

+ 0 - 12
frameworks/CSharp/aspnet-mono-ngx/aspnet-mono-ngx-my.dockerfile

@@ -1,12 +0,0 @@
-FROM mono:latest
-RUN apt-get update -yqq && apt-get install -yqq nginx wget mono-fastcgi-server
-
-WORKDIR /aspnet
-COPY src src
-COPY nginx.conf nginx.conf
-COPY run.sh run.sh
-
-RUN msbuild src/Benchmarks.build.proj /t:Clean
-RUN msbuild src/Benchmarks.build.proj /t:Build
-
-CMD bash run.sh

+ 0 - 12
frameworks/CSharp/aspnet-mono-ngx/aspnet-mono-ngx-ss.dockerfile

@@ -1,12 +0,0 @@
-FROM mono:latest
-RUN apt-get update -yqq && apt-get install -yqq nginx wget mono-fastcgi-server
-
-WORKDIR /aspnet
-COPY src src
-COPY nginx.conf nginx.conf
-COPY run.sh run.sh
-
-RUN msbuild src/Benchmarks.build.proj /t:Clean
-RUN msbuild src/Benchmarks.build.proj /t:Build
-
-CMD bash run.sh

+ 0 - 12
frameworks/CSharp/aspnet-mono-ngx/aspnet-mono-ngx.dockerfile

@@ -1,12 +0,0 @@
-FROM mono:latest
-RUN apt-get update -yqq && apt-get install -yqq nginx wget mono-fastcgi-server
-
-WORKDIR /aspnet
-COPY src src
-COPY nginx.conf nginx.conf
-COPY run.sh run.sh
-
-RUN msbuild src/Benchmarks.build.proj /t:Clean
-RUN msbuild src/Benchmarks.build.proj /t:Build
-
-CMD bash run.sh

+ 0 - 102
frameworks/CSharp/aspnet-mono-ngx/benchmark_config.json

@@ -1,102 +0,0 @@
-{
-  "framework": "aspnet-mono-ngx",
-  "tests": [{
-    "default": {
-      "json_url": "/json/default",
-      "plaintext_url": "/plaintext",
-      "port": 8080,
-      "approach": "Realistic",
-      "classification": "Platform",
-      "database": "None",
-      "framework": "ASP.NET",
-      "language": "C#",
-      "flavor": "Mono",
-      "orm": "Raw",
-      "platform": ".NET",
-      "webserver": "nginx",
-      "os": "Linux",
-      "database_os": "Linux",
-      "display_name": "ASP.NET MVC on Mono via NGINX FastCGI",
-      "notes": "",
-      "versus": "aspnet-mono"
-    },
-    "jn": {
-      "json_url": "/json/jsonnet",
-      "port": 8080,
-      "approach": "Realistic",
-      "classification": "Fullstack",
-      "database": "None",
-      "framework": "ASP.NET",
-      "language": "C#",
-      "flavor": "Mono",
-      "orm": "Raw",
-      "platform": ".NET",
-      "webserver": "nginx",
-      "os": "Linux",
-      "database_os": "Linux",
-      "display_name": "Json.NET, ASP.NET MVC on Mono via NGINX FastCGI",
-      "notes": "",
-      "versus": "aspnet-mono"
-    },
-    "ss": {
-      "json_url": "/json/servicestack",
-      "port": 8080,
-      "approach": "Realistic",
-      "classification": "Fullstack",
-      "database": "None",
-      "framework": "ASP.NET",
-      "language": "C#",
-      "flavor": "Mono",
-      "orm": "Raw",
-      "platform": ".NET",
-      "webserver": "nginx",
-      "os": "Linux",
-      "database_os": "Linux",
-      "display_name": "ServiceStack, ASP.NET MVC on Mono via NGINX FastCGI",
-      "notes": "",
-      "versus": "aspnet-mono"
-    },
-    "my": {
-      "db_url": "/ado/mysql",
-      "query_url": "/ado/mysql?queries=",
-      "fortune_url": "/ado/mysql/fortunes",
-      "update_url": "/ado/mysql/update?queries=",
-      "port": 8080,
-      "approach": "Realistic",
-      "classification": "Platform",
-      "database": "MySQL",
-      "framework": "ASP.NET",
-      "language": "C#",
-      "flavor": "Mono",
-      "orm": "Raw",
-      "platform": ".NET",
-      "webserver": "nginx",
-      "os": "Linux",
-      "database_os": "Linux",
-      "display_name": "ADO, ASP.NET MVC on Mono via NGINX FastCGI",
-      "notes": "",
-      "versus": "aspnet"
-    },
-    "my-ef": {
-      "db_url": "/entityframework/mysql",
-      "query_url": "/entityframework/mysql?queries=",
-      "fortune_url": "/entityframework/mysql/fortunes",
-      "update_url": "/entityframework/mysql/update?queries=",
-      "port": 8080,
-      "approach": "Realistic",
-      "classification": "Fullstack",
-      "database": "MySQL",
-      "framework": "ASP.NET",
-      "language": "C#",
-      "flavor": "Mono",
-      "orm": "Full",
-      "platform": ".NET",
-      "webserver": "nginx",
-      "os": "Linux",
-      "database_os": "Linux",
-      "display_name": "EntityFramework, ASP.NET MVC on Mono via NGINX FastCGI",
-      "notes": "Entity framework",
-      "versus": "aspnet"
-    }
-  }]
-}

+ 0 - 37
frameworks/CSharp/aspnet-mono-ngx/nginx.conf

@@ -1,37 +0,0 @@
-pid /tmp/nginx.pid;
-error_log stderr error;
-
-events {
-    worker_connections 16384;
-}
-
-http {
-    access_log off;
-    include nginx.upstream.conf;
-
-    server {
-        listen 8080;
-
-        location / {
-            fastcgi_pass mono;
-            fastcgi_param  QUERY_STRING       $query_string;
-            fastcgi_param  REQUEST_METHOD     $request_method;
-            fastcgi_param  CONTENT_TYPE       $content_type;
-            fastcgi_param  CONTENT_LENGTH     $content_length;
-            fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
-            fastcgi_param  REQUEST_URI        $request_uri;
-            fastcgi_param  DOCUMENT_URI       $document_uri;
-            fastcgi_param  DOCUMENT_ROOT      $document_root;
-            fastcgi_param  SERVER_PROTOCOL    $server_protocol;
-            fastcgi_param  HTTPS              $https if_not_empty;
-            fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
-            fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;
-            fastcgi_param  REMOTE_ADDR        $remote_addr;
-            fastcgi_param  REMOTE_PORT        $remote_port;
-            fastcgi_param  SERVER_ADDR        $server_addr;
-            fastcgi_param  SERVER_PORT        $server_port;
-            fastcgi_param  SERVER_NAME        $server_name;
-            fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
-        }
-    }
-}

+ 0 - 28
frameworks/CSharp/aspnet-mono-ngx/run.sh

@@ -1,28 +0,0 @@
-#!/bin/bash
-
-CPU_COUNT=$(nproc)
-
-# one fastcgi instance for each thread
-# load balanced by nginx
-socket_index_start=1
-socket_index_end=$(($socket_index_start+$CPU_COUNT))
-
-# To debug, use --printlog --verbose --loglevels=All
-for port in $(seq $socket_index_start $socket_index_end); do
-	MONO_OPTIONS=--gc=sgen fastcgi-mono-server4 --applications=/:/aspnet/src --filename=/tmp/fastcgi-mono-server4-$port --socket=unix &
-done
-
-sleep 5s
-
-# nginx
-conf="upstream mono {\n"
-for port in $(seq $socket_index_start $socket_index_end); do
-  chmod -R 777 /tmp/fastcgi-mono-server4-$port
-  conf+="\tserver unix:/tmp/fastcgi-mono-server4-${port};\n"
-done
-conf+="}"
-
-echo -e $conf > nginx.upstream.conf
-nginx -c /aspnet/nginx.conf
-
-wait

+ 0 - 90
frameworks/CSharp/aspnet-mono-ngx/src/Application.cs

@@ -1,90 +0,0 @@
-using System;
-using System.Configuration;
-using System.Threading;
-using System.Web;
-using System.Web.Mvc;
-using System.Web.Routing;
-
-namespace Benchmarks.AspNet
-{
-    public class Application : IHttpModule
-    {
-        private static volatile bool started = false;
-        private static object locker = new object();
-
-        public void Init(HttpApplication context)
-        {
-            if (!started)
-            {
-                lock (locker)
-                {
-                    if (!started)
-                    {
-                        Start();
-                        started = true;
-                    }
-                }
-            }
-        }
-
-        private void Start()
-        {
-            Routes();
-            Views();
-            Threads();
-        }
-
-        private void Routes()
-        {
-            RouteTable.Routes.Clear();
-
-            RouteTable.Routes.MapRoute(
-                name: "JSON",
-                url: "json/{action}",
-                defaults: new { controller = "Json", action = "Default" }
-            );
-
-            RouteTable.Routes.MapRoute(
-                name: "WithProviders",
-                url: "{controller}/{providerName}/{action}",
-                defaults: new { action = "Index" },
-                constraints: new { controller = "ado|entityframework", providerName = "mysql|postgresql|sqlserver" }
-            );
-
-            RouteTable.Routes.MapRoute(
-                name: "Default",
-                url: "{controller}/{action}",
-                defaults: new { controller = "Home", action = "Index" }
-            );
-        }
-
-        private void Views()
-        {
-            ViewEngines.Engines.Clear();
-            ViewEngines.Engines.Add(new RazorViewEngine { ViewLocationFormats = new[] { "~/Views/{0}.cshtml" } });
-        }
-
-        private void Threads()
-        {
-            // To improve CPU utilization, increase the number of threads that the .NET thread pool expands by when
-            // a burst of requests come in. We could do this by editing machine.config/system.web/processModel/minWorkerThreads,
-            // but that seems too global a change, so we do it in code for just our AppPool. More info:
-            //
-            // http://support.microsoft.com/kb/821268
-            // http://blogs.msdn.com/b/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx
-            // http://blogs.msdn.com/b/perfworld/archive/2010/01/13/how-can-i-improve-the-performance-of-asp-net-by-adjusting-the-clr-thread-throttling-properties.aspx
-
-            int newMinWorkerThreads = Convert.ToInt32(ConfigurationManager.AppSettings["minWorkerThreadsPerLogicalProcessor"]);
-            if (newMinWorkerThreads > 0)
-            {
-                int minWorkerThreads, minCompletionPortThreads;
-                ThreadPool.GetMinThreads(out minWorkerThreads, out minCompletionPortThreads);
-                ThreadPool.SetMinThreads(Environment.ProcessorCount * newMinWorkerThreads, minCompletionPortThreads);
-            }
-        }
-
-        public void Dispose()
-        {
-        }
-    }
-}

+ 0 - 56
frameworks/CSharp/aspnet-mono-ngx/src/Benchmarks.build.proj

@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-
-  <PropertyGroup>
-    <SolutionDir>$(MSBuildThisFileDirectory)</SolutionDir>
-    <Configuration Condition=" '$(Configuration)'=='' ">Release</Configuration>
-    <NuGetExe Condition=" '$(NuGetExe)'=='' ">packages/nuget.exe</NuGetExe>
-    <NuGetExeDir>packages/</NuGetExeDir>
-    <NuGetDownloadAddress Condition=" '$(NuGetDownloadAddress)'=='' ">https://dist.nuget.org/win-x86-commandline/latest/nuget.exe</NuGetDownloadAddress>
-    <NuGetCommand Condition=" '$(NuGetCommand)'=='' AND '$(OS)' == 'Windows_NT'">"$(NuGetExe)"</NuGetCommand>
-    <NuGetCommand Condition=" '$(NuGetCommand)'=='' AND '$(OS)' != 'Windows_NT' ">mono "$(NuGetExe)"</NuGetCommand>
-    <Properties>Configuration=$(Configuration);SolutionDir=$(SolutionDir)</Properties>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <Solution Include="*.sln" />
-  </ItemGroup>
-
-  <UsingTask TaskName="DownloadFile" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" Condition=" '$(OS)' == 'Windows_NT' ">
-    <ParameterGroup>
-      <Address ParameterType="System.String" Required="true"/>
-      <OutputFilename ParameterType="System.String" Required="true" />
-    </ParameterGroup>
-    <Task>
-      <Reference Include="System" />
-      <Code Type="Fragment" Language="cs">
-        <![CDATA[
-            new System.Net.WebClient().DownloadFile(Address, OutputFilename);
-        ]]>
-      </Code>
-    </Task>
-  </UsingTask>
-
-  <Target Name="DownloadNuGet">
-    <MakeDir Directories="$(NuGetExeDir)" Condition=" !Exists('$(NuGetExeDir)') " />
-    <DownloadFile Address="$(NuGetDownloadAddress)" OutputFilename="$(NuGetExe)" Condition=" '$(OS)' == 'Windows_NT' AND !Exists('$(NuGetExe)')" />
-    <Exec Command="wget $(NuGetDownloadAddress) -O $(NuGetExe)" Condition=" '$(OS)' != 'Windows_NT' AND !Exists('$(NuGetExe)') " />
-  </Target>
-
-  <Target Name="RestorePackages" DependsOnTargets="DownloadNuGet">
-    <Exec Command="$(NuGetCommand) restore &quot;%(Solution.Identity)&quot;" />
-  </Target>
-
-  <Target Name="Clean">
-    <MSBuild Targets="Clean" Projects="@(Solution)" Properties="$(Properties)" />
-  </Target>
-
-  <Target Name="Build" DependsOnTargets="RestorePackages">
-    <MSBuild Targets="Build" Projects="@(Solution)" Properties="$(Properties)" />
-  </Target>
-
-  <Target Name="Rebuild" DependsOnTargets="RestorePackages">
-    <MSBuild Targets="Rebuild" Projects="@(Solution)" Properties="$(Properties)" />
-  </Target>
-
-</Project>

+ 0 - 171
frameworks/CSharp/aspnet-mono-ngx/src/Benchmarks.csproj

@@ -1,171 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion />
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{62C3DEA2-2696-4200-BD83-011679316847}</ProjectGuid>
-    <ProjectTypeGuids>{E3E379DF-F4C6-4180-9B81-6769533ABE47};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Benchmarks.AspNet</RootNamespace>
-    <AssemblyName>Benchmarks.AspNet</AssemblyName>
-    <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
-    <MvcBuildViews>false</MvcBuildViews>
-    <RestorePackages>true</RestorePackages>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)' == 'Debug'">
-    <DebugSymbols>true</DebugSymbols>
-    <OutputPath>bin\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <DebugType>full</DebugType>
-    <ErrorReport>prompt</ErrorReport>
-    <PublishDatabases>true</PublishDatabases>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)' == 'Release'">
-    <OutputPath>bin\</OutputPath>
-    <Optimize>true</Optimize>
-    <DebugType>pdbonly</DebugType>
-    <ErrorReport>prompt</ErrorReport>
-    <PublishDatabases>true</PublishDatabases>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Platform)' == 'x86'">
-    <PlatformTarget>x86</PlatformTarget>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Platform)' == 'x64'">
-    <PlatformTarget>x64</PlatformTarget>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Configuration" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Web" />
-    <Reference Include="System.Web.Extensions" />
-    <Reference Include="System.Web.Mvc">
-      <Private>True</Private>
-      <HintPath>$(SolutionDir)\packages\Microsoft.AspNet.Mvc.5.2.2\lib\net45\System.Web.Mvc.dll</HintPath>
-    </Reference>
-    <Reference Include="System.Web.WebPages">
-      <Private>True</Private>
-      <HintPath>$(SolutionDir)\packages\Microsoft.AspNet.WebPages.3.2.2\lib\net45\System.Web.WebPages.dll</HintPath>
-    </Reference>
-    <Reference Include="System.Web.WebPages.Razor">
-      <Private>True</Private>
-      <HintPath>$(SolutionDir)\packages\Microsoft.AspNet.WebPages.3.2.2\lib\net45\System.Web.WebPages.Razor.dll</HintPath>
-    </Reference>
-    <Reference Include="Newtonsoft.Json">
-      <HintPath>$(SolutionDir)\packages\Newtonsoft.Json.6.0.6\lib\net45\Newtonsoft.Json.dll</HintPath>
-    </Reference>
-    <Reference Include="ServiceStack.Text">
-      <HintPath>$(SolutionDir)\packages\ServiceStack.Text.4.0.34\lib\net40\ServiceStack.Text.dll</HintPath>
-    </Reference>
-    <Reference Include="Npgsql">
-      <Private>True</Private>
-      <HintPath>$(SolutionDir)\packages\Npgsql.2.2.3\lib\net45\Npgsql.dll</HintPath>
-    </Reference>
-    <Reference Include="Npgsql">
-      <Private>True</Private>
-      <HintPath>$(SolutionDir)\packages\Npgsql.EntityFramework.2.2.3\lib\net45\Npgsql.EntityFramework.dll</HintPath>
-    </Reference>
-    <Reference Include="MongoDB">
-      <Private>True</Private>
-      <HintPath>$(SolutionDir)\packages\mongocsharpdriver.1.9.2\lib\net35\MongoDB.Bson.dll</HintPath>
-    </Reference>
-    <Reference Include="MongoDB">
-      <Private>True</Private>
-      <HintPath>$(SolutionDir)\packages\mongocsharpdriver.1.9.2\lib\net35\MongoDB.Driver.dll</HintPath>
-    </Reference>
-    <Reference Include="System.Web.Razor">
-      <Private>True</Private>
-      <HintPath>$(SolutionDir)\packages\Microsoft.AspNet.Razor.3.2.2\lib\net45\System.Web.Razor.dll</HintPath>
-    </Reference>
-    <Reference Include="Renci.SshNet">
-      <HintPath>packages\SSH.NET.2016.1.0\lib\net40\Renci.SshNet.dll</HintPath>
-    </Reference>
-    <Reference Include="BouncyCastle.Crypto">
-      <HintPath>packages\BouncyCastle.1.8.3.1\lib\BouncyCastle.Crypto.dll</HintPath>
-    </Reference>
-    <Reference Include="EntityFramework.SqlServer">
-      <HintPath>packages\EntityFramework.6.2.0\lib\net45\EntityFramework.SqlServer.dll</HintPath>
-    </Reference>
-    <Reference Include="System.ComponentModel.DataAnnotations" />
-    <Reference Include="Google.Protobuf">
-      <HintPath>packages\Google.Protobuf.3.6.1\lib\net45\Google.Protobuf.dll</HintPath>
-    </Reference>
-    <Reference Include="MySql.Data.EntityFramework">
-      <HintPath>packages\MySql.Data.EntityFramework.8.0.17\lib\net452\MySql.Data.EntityFramework.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Data.DataSetExtensions" />
-    <Reference Include="System.Security" />
-    <Reference Include="System.Xml" />
-    <Reference Include="EntityFramework">
-      <HintPath>packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll</HintPath>
-    </Reference>
-    <Reference Include="MySql.Data">
-      <HintPath>packages\MySql.Data.8.0.17\lib\net452\MySql.Data.dll</HintPath>
-    </Reference>
-    <Reference Include="Npgsql">
-      <Private>False</Private>
-      <HintPath>$(SolutionDir)\packages\Npgsql.2.2.3\lib\net45\Mono.Security.dll</HintPath>
-    </Reference>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Application.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Controllers\HomeController.cs" />
-    <Compile Include="Controllers\JsonController.cs" />
-    <Compile Include="Controllers\PlaintextController.cs" />
-    <Compile Include="Controllers\AdoController.cs" />
-    <Compile Include="Controllers\EntityFrameworkController.cs" />
-    <Compile Include="Controllers\MongoDBController.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Models\EntityFramework.cs" />
-    <Compile Include="Models\MongoDB.cs" />
-    <Compile Include="Models\World.cs" />
-    <Compile Include="Models\Fortune.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <Content Include="Views\Web.config" />
-    <Content Include="Views\Index.cshtml" />
-    <Content Include="Views\Fortunes.cshtml" />
-  </ItemGroup>
-  <ItemGroup>
-    <Content Include="Web.config">
-      <SubType>Designer</SubType>
-    </Content>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="packages.config">
-      <SubType>Designer</SubType>
-    </None>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="Properties\PublishProfiles\IIS.pubxml" />
-  </ItemGroup>
-  <PropertyGroup>
-    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
-    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">.\</SolutionDir>
-  </PropertyGroup>
-  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != '' And Exists('$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets')" />
-  <Import Project="$(SolutionDir)\packages\MSBuild.Microsoft.VisualStudio.Web.targets.11.0.2.1\tools\VSToolsPath\WebApplications\Microsoft.WebApplication.targets" Condition="('$(VSToolsPath)' == '' Or !Exists('$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets')) And Exists('$(SolutionDir)\packages\MSBuild.Microsoft.VisualStudio.Web.targets.11.0.2.1\tools\VSToolsPath\WebApplications\Microsoft.WebApplication.targets')" />
-  <Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)' == 'true'">
-    <AspNetCompiler VirtualPath="/" PhysicalPath="$(WebProjectOutputDir)" />
-  </Target>
-  <ProjectExtensions>
-    <VisualStudio>
-      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
-        <WebProjectProperties>
-          <SaveServerSettingsInUserFile>True</SaveServerSettingsInUserFile>
-        </WebProjectProperties>
-      </FlavorProperties>
-    </VisualStudio>
-  </ProjectExtensions>
-</Project>

+ 0 - 26
frameworks/CSharp/aspnet-mono-ngx/src/Benchmarks.sln

@@ -1,26 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Benchmarks", "Benchmarks.csproj", "{62C3DEA2-2696-4200-BD83-011679316847}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|x64 = Debug|x64
-		Debug|x86 = Debug|x86
-		Release|x64 = Release|x64
-		Release|x86 = Release|x86
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{62C3DEA2-2696-4200-BD83-011679316847}.Debug|x64.ActiveCfg = Debug|x86
-		{62C3DEA2-2696-4200-BD83-011679316847}.Debug|x64.Build.0 = Debug|x86
-		{62C3DEA2-2696-4200-BD83-011679316847}.Debug|x86.ActiveCfg = Debug|x86
-		{62C3DEA2-2696-4200-BD83-011679316847}.Debug|x86.Build.0 = Debug|x86
-		{62C3DEA2-2696-4200-BD83-011679316847}.Release|x64.ActiveCfg = Release|x64
-		{62C3DEA2-2696-4200-BD83-011679316847}.Release|x64.Build.0 = Release|x64
-		{62C3DEA2-2696-4200-BD83-011679316847}.Release|x86.ActiveCfg = Release|x86
-		{62C3DEA2-2696-4200-BD83-011679316847}.Release|x86.Build.0 = Release|x86
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal

+ 0 - 173
frameworks/CSharp/aspnet-mono-ngx/src/Controllers/AdoController.cs

@@ -1,173 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Configuration;
-using System.Data;
-using System.Data.Common;
-using System.Web.Mvc;
-
-using Benchmarks.AspNet.Models;
-
-namespace Benchmarks.AspNet.Controllers
-{
-    public class AdoController : Controller
-    {
-        Random random = new Random();
-
-        private DbConnection CreateConnection(string providerName)
-        {
-            ConnectionStringSettings connectionSettings = ConfigurationManager.ConnectionStrings[providerName];
-            DbProviderFactory factory = DbProviderFactories.GetFactory(connectionSettings.ProviderName);
-            DbConnection connection = factory.CreateConnection();
-            connection.ConnectionString = connectionSettings.ConnectionString;
-            return connection;
-        }
-        
-        public ActionResult Index(string providerName, string queries)
-        {
-            int queryInt = 1;
-            int.TryParse(queries, out queryInt);
-            
-            List<World> worlds = new List<World>(Math.Max(1, Math.Min(500, queryInt)));
-            
-            using (DbConnection connection = CreateConnection(providerName))
-            {
-                connection.Open();
-                
-                using (DbCommand command = connection.CreateCommand())
-                {
-                    command.CommandText = "SELECT * FROM World WHERE id = @ID";
-
-                    for (int i = 0; i < worlds.Capacity; i++)
-                    {
-                        int randomID = random.Next(0, 10000) + 1;
-                        
-                        DbParameter parameter = command.CreateParameter();
-                        parameter.ParameterName = "@ID";
-                        parameter.Value = randomID;
-                        
-                        command.Parameters.Clear();
-                        command.Parameters.Add(parameter);
-                        
-                        // Don't use CommandBehavior.SingleRow because that will make the MySql provider
-                        // send two extra commands to limit the result to one row.
-                        using (DbDataReader reader = command.ExecuteReader())
-                        {
-                            if (reader.Read())
-                            {
-                                worlds.Add(new World
-                                {
-                                    id = reader.GetInt32(0),
-                                    randomNumber = reader.GetInt32(1)
-                                });
-                            }
-                        }
-                    }
-                }
-            }
-            
-            return queries != null ? Json(worlds, JsonRequestBehavior.AllowGet)
-                                   : Json(worlds[0], JsonRequestBehavior.AllowGet);
-        }
-        
-        public ActionResult Fortunes(string providerName)
-        {
-            List<Fortune> fortunes = new List<Fortune>();
-            
-            using (DbConnection connection = CreateConnection(providerName))
-            {
-                connection.Open();
-                
-                using (DbCommand command = connection.CreateCommand())
-                {
-                    command.CommandText = "SELECT * FROM Fortune";
-                    
-                    using (DbDataReader reader = command.ExecuteReader(CommandBehavior.SequentialAccess))
-                    {
-                        while (reader.Read())
-                        {
-                            fortunes.Add(new Fortune
-                            {
-                                ID = reader.GetInt32(0),
-                                Message = reader.GetString(1)
-                            });
-                        }
-                    }
-                }
-            }
-            
-            fortunes.Add(new Fortune { ID = 0, Message = "Additional fortune added at request time." });
-            fortunes.Sort();
-
-            Response.Charset = "utf-8";
-            return View("Fortunes", fortunes);
-        }
-
-        public ActionResult Update(string providerName, int? queries)
-        {
-            List<World> worlds = new List<World>(Math.Max(1, Math.Min(500, queries ?? 1)));
-
-            using (DbConnection connection = CreateConnection(providerName))
-            {
-                connection.Open();
-
-                using (DbCommand selectCommand = connection.CreateCommand(),
-                                 updateCommand = connection.CreateCommand())
-                {
-                    selectCommand.CommandText = "SELECT * FROM World WHERE id = @ID";
-                    updateCommand.CommandText = "UPDATE World SET randomNumber = @Number WHERE id = @ID";
-
-                    for (int i = 0; i < worlds.Capacity; i++)
-                    {
-                        int randomID = random.Next(0, 10000) + 1;
-                        int randomNumber = random.Next(0, 10000) + 1;
-
-                        DbParameter idParameter = selectCommand.CreateParameter();
-                        idParameter.ParameterName = "@ID";
-                        idParameter.Value = randomID;
-
-                        selectCommand.Parameters.Clear();
-                        selectCommand.Parameters.Add(idParameter);
-
-                        World world = null;
-
-                        // Don't use CommandBehavior.SingleRow because that will make the MySql provider
-                        // send two extra commands to limit the result to one row.
-                        using (DbDataReader reader = selectCommand.ExecuteReader())
-                        {
-                            if (reader.Read())
-                            {
-                                world = new World
-                                {
-                                    id = reader.GetInt32(0),
-                                    randomNumber = reader.GetInt32(1)
-                                };
-                            }
-                        }
-
-                        if (world == null)
-                            continue;
-                        
-                        DbParameter idUpdateParameter = updateCommand.CreateParameter();
-                        idUpdateParameter.ParameterName = "@ID";
-                        idUpdateParameter.Value = randomID;
-
-                        DbParameter numberParameter = updateCommand.CreateParameter();
-                        numberParameter.ParameterName = "@Number";
-                        numberParameter.Value = randomNumber;
-
-                        updateCommand.Parameters.Clear();
-                        updateCommand.Parameters.Add(idUpdateParameter);
-                        updateCommand.Parameters.Add(numberParameter);
-
-                        updateCommand.ExecuteNonQuery();
-                        
-                        world.randomNumber = randomNumber;
-                        worlds.Add(world);
-                    }
-                }
-            }
-
-            return Json(worlds, JsonRequestBehavior.AllowGet);
-        }
-    }
-}

+ 0 - 72
frameworks/CSharp/aspnet-mono-ngx/src/Controllers/EntityFrameworkController.cs

@@ -1,72 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Web.Mvc;
-
-using Benchmarks.AspNet.Models;
-
-namespace Benchmarks.AspNet.Controllers
-{
-    public class EntityFrameworkController : Controller
-    {
-        Random random = new Random();
-
-        public ActionResult Index(string providerName, string queries)
-        {
-            int queryInt = 1;
-            int.TryParse(queries, out queryInt);
-
-            List<World> worlds = new List<World>(Math.Max(1, Math.Min(500, queryInt)));
-
-            using (EntityFramework db = new EntityFramework(providerName))
-            {
-                for (int i = 0; i < worlds.Capacity; i++)
-                {
-                    int randomID = random.Next(0, 10000) + 1;
-                    worlds.Add(db.Worlds.Find(randomID));
-                }
-            }
-
-            return queries != null ? Json(worlds, JsonRequestBehavior.AllowGet)
-                                   : Json(worlds[0], JsonRequestBehavior.AllowGet);
-        }
-
-        public ActionResult Fortunes(string providerName)
-        {
-            List<Fortune> fortunes = new List<Fortune>();
-
-            using (EntityFramework db = new EntityFramework(providerName))
-            {
-                fortunes.AddRange(db.Fortunes);
-            }
-
-            fortunes.Add(new Fortune { ID = 0, Message = "Additional fortune added at request time." });
-            fortunes.Sort();
-
-            Response.Charset = "utf-8";
-            return View("Fortunes", fortunes);
-        }
-
-        public ActionResult Update(string providerName, int? queries)
-        {
-            List<World> worlds = new List<World>(Math.Max(1, Math.Min(500, queries ?? 1)));
-
-            using (EntityFramework db = new EntityFramework(providerName))
-            {
-                for (int i = 0; i < worlds.Capacity; i++)
-                {
-                    int randomID = random.Next(0, 10000) + 1;
-                    int randomNumber = random.Next(0, 10000) + 1;
-                    
-                    World world = db.Worlds.Find(randomID);
-                    world.randomNumber = randomNumber;
-                    worlds.Add(world);
-                }
-
-                // batch update
-                db.SaveChanges();
-            }
-
-            return Json(worlds, JsonRequestBehavior.AllowGet);
-        }
-    }
-}

+ 0 - 12
frameworks/CSharp/aspnet-mono-ngx/src/Controllers/HomeController.cs

@@ -1,12 +0,0 @@
-using System.Web.Mvc;
-
-namespace Benchmarks.AspNet.Controllers
-{
-    public class HomeController : Controller
-    {
-        public ActionResult Index()
-        {
-            return View();
-        }
-    }
-}

+ 0 - 68
frameworks/CSharp/aspnet-mono-ngx/src/Controllers/JsonController.cs

@@ -1,68 +0,0 @@
-using System;
-using System.Web;
-using System.Web.Mvc;
-
-namespace Benchmarks.AspNet.Controllers
-{
-    public class JsonController : Controller
-    {
-        public ActionResult Default()
-        {
-            return new JsonResult { Data = new { message = "Hello, World!" } };
-        }
-
-        public ActionResult JsonNet()
-        {
-            return new JsonNetResult { Data = new { message = "Hello, World!" } };
-        }
-
-        public ActionResult ServiceStack()
-        {
-            return new ServiceStackResult { Data = new { message = "Hello, World!" } };
-        }
-    }
-
-    public class JsonResult : ActionResult
-    {
-        public object Data
-        {
-            get;
-            set;
-        }
-
-        public override void ExecuteResult(ControllerContext context)
-        {
-            if (context == null)
-                throw new ArgumentNullException("context");
-
-            HttpResponseBase response = context.HttpContext.Response;
-            response.ContentType = "application/json";
-
-            if (Data != null)
-            {
-                response.Write(Serialize());
-            }
-        }
-
-        protected virtual string Serialize()
-        {
-            return new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(Data);
-        }
-    }
-
-    public class JsonNetResult : JsonResult
-    {
-        protected override string Serialize()
-        {
-            return Newtonsoft.Json.JsonConvert.SerializeObject(Data);
-        }
-    }
-
-    public class ServiceStackResult : JsonResult
-    {
-        protected override string Serialize()
-        {
-            return ServiceStack.Text.JsonSerializer.SerializeToString(Data);
-        }
-    }
-}

+ 0 - 66
frameworks/CSharp/aspnet-mono-ngx/src/Controllers/MongoDBController.cs

@@ -1,66 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Configuration;
-using System.Linq;
-using System.Web.Mvc;
-
-using MongoDB.Driver.Builders;
-
-using Benchmarks.AspNet.Models;
-
-namespace Benchmarks.AspNet.Controllers
-{
-    public class MongoDBController : Controller
-    {
-        Random random = new Random();
-        
-        public ActionResult Index(int? queries)
-        {
-            List<World> worlds = new List<World>(Math.Max(1, Math.Min(500, queries ?? 1)));
-
-            Models.MongoDB db = new Models.MongoDB("MongoDB");
-
-            for (int i = 0; i < worlds.Capacity; i++)
-            {
-                int randomID = random.Next(0, 10000) + 1;
-                worlds.Add(db.Worlds.FindOne(Query<World>.EQ(w => w.id, randomID)));
-            }
-
-            return queries != null ? Json(worlds, JsonRequestBehavior.AllowGet)
-                                   : Json(worlds[0], JsonRequestBehavior.AllowGet);
-        }
-
-        public ActionResult Fortunes()
-        {
-            Models.MongoDB db = new Models.MongoDB("MongoDB");
-
-            List<Fortune> fortunes = db.Fortunes.FindAll().ToList();
-
-            fortunes.Add(new Fortune { ID = 0, Message = "Additional fortune added at request time." });
-            fortunes.Sort();
-
-            return View("Fortunes", fortunes);
-        }
-
-        public ActionResult Update(int? queries)
-        {
-            Models.MongoDB db = new Models.MongoDB("MongoDB");
-
-            List<World> worlds = new List<World>(Math.Max(1, Math.Min(500, queries ?? 1)));
-
-            for (int i = 0; i < worlds.Capacity; i++)
-            {
-                int randomID = random.Next(0, 10000) + 1;
-                int randomNumber = random.Next(0, 10000) + 1;
-
-                World world = db.Worlds.FindOne(Query<World>.EQ(w => w.id, randomID));
-                world.randomNumber = randomNumber;
-                worlds.Add(world);
-
-                db.Worlds.Save(world);
-            }
-
-            return Json(worlds, JsonRequestBehavior.AllowGet);
-        }
-    }
-}

+ 0 - 12
frameworks/CSharp/aspnet-mono-ngx/src/Controllers/PlaintextController.cs

@@ -1,12 +0,0 @@
-using System.Web.Mvc;
-
-namespace Benchmarks.AspNet.Controllers
-{
-    public class PlaintextController : Controller
-    {
-        public ActionResult Index()
-        {
-            return Content("Hello, World!", "text/plain");
-        }
-    }
-}

+ 0 - 38
frameworks/CSharp/aspnet-mono-ngx/src/Models/EntityFramework.cs

@@ -1,38 +0,0 @@
-using System.Data.Entity;
-using System.Data.Entity.ModelConfiguration.Conventions;
-
-namespace Benchmarks.AspNet.Models
-{
-    public class EntityFramework : DbContext
-    {
-        public DbSet<World> Worlds { get; set; }
-        public DbSet<Fortune> Fortunes { get; set; }
-        
-        public EntityFramework(string providerName)
-            : base(providerName)
-        {
-        }
-        
-        protected override void OnModelCreating(DbModelBuilder modelBuilder)
-        {
-            // disable migrations checks
-            Database.SetInitializer<EntityFramework>(null);
-
-            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
-
-            modelBuilder.Ignore<MongoWorld>();
-            
-            if (Database.Connection is Npgsql.NpgsqlConnection)
-                modelBuilder.Conventions.Add(new PostgreSqlConfigurationConvention());
-        }
-        
-        private class PostgreSqlConfigurationConvention : Convention
-        {
-            public PostgreSqlConfigurationConvention()
-            {
-                Properties().Configure(p => p.HasColumnName(p.ClrPropertyInfo.Name.ToLowerInvariant()));
-                Types().Configure(c => c.ToTable(c.ClrType.Name.ToLowerInvariant(), "public"));
-            }
-        }
-    }
-}

+ 0 - 15
frameworks/CSharp/aspnet-mono-ngx/src/Models/Fortune.cs

@@ -1,15 +0,0 @@
-using System;
-
-namespace Benchmarks.AspNet.Models
-{
-    public class Fortune : IComparable<Fortune>
-    {
-        public int ID { get; set; }
-        public string Message { get; set; }
-        
-        public int CompareTo(Fortune other)
-        {
-            return Message.CompareTo(other.Message);
-        }
-    }
-}

+ 0 - 53
frameworks/CSharp/aspnet-mono-ngx/src/Models/MongoDB.cs

@@ -1,53 +0,0 @@
-using System.Configuration;
-using System.Web.Script.Serialization;
-
-using MongoDB.Bson;
-using MongoDB.Bson.Serialization;
-using MongoDB.Driver;
-
-namespace Benchmarks.AspNet.Models
-{
-    public class MongoDB
-    {
-        public MongoCollection<MongoWorld> Worlds { get; private set; }
-        public MongoCollection<Fortune> Fortunes { get; private set; }
-
-        static MongoDB()
-        {
-            BsonClassMap.RegisterClassMap<World>(m =>
-            {
-                m.MapProperty(w => w.id);
-                m.MapProperty(w => w.randomNumber);
-            });
-
-            BsonClassMap.RegisterClassMap<MongoWorld>(m =>
-            {
-                m.MapIdProperty(w => w._id);
-            });
-
-            BsonClassMap.RegisterClassMap<Fortune>(m =>
-            {
-                m.MapProperty(f => f.ID).SetElementName("id");
-                m.MapProperty(f => f.Message).SetElementName("message");
-            });
-        }
-
-        public MongoDB(string connectionStringName)
-        {
-            string connectionString = ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString;
-
-            MongoClient client = new MongoClient(connectionString);
-            MongoServer server = client.GetServer();
-            MongoDatabase database = server.GetDatabase("hello_world");
-
-            Worlds = database.GetCollection<MongoWorld>("world");
-            Fortunes = database.GetCollection<Fortune>("fortune");
-        }
-    }
-
-    public class MongoWorld : World
-    {
-        [ScriptIgnore]
-        public object _id { get; set; }
-    }
-}

+ 0 - 8
frameworks/CSharp/aspnet-mono-ngx/src/Models/World.cs

@@ -1,8 +0,0 @@
-namespace Benchmarks.AspNet.Models
-{
-    public class World
-    {
-        public int id { get; set; }
-        public int randomNumber { get; set; }
-    }
-}

+ 0 - 75
frameworks/CSharp/aspnet-mono-ngx/src/Properties/PublishProfiles/IIS.pubxml

@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-This file is used by the publish/package process of your Web project. You can customize the behavior of this process
-by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121. 
--->
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <WebPublishMethod>MSDeploy</WebPublishMethod>
-    <MSDeployServiceURL>localhost</MSDeployServiceURL>
-    <DeployIisAppPath>Benchmarks</DeployIisAppPath>
-    <RemoteSitePhysicalPath />
-    <SkipExtraFilesOnServer>False</SkipExtraFilesOnServer>
-    <MSDeployPublishMethod>InProc</MSDeployPublishMethod>
-    <UserName />
-    <_SavePWD>False</_SavePWD>
-    <PublishDatabaseSettings>
-      <Objects xmlns="">
-        <ObjectGroup Name="Benchmarks.AspNet.Models.EntityFramework" Order="1" Enabled="False">
-          <Destination Path="" />
-          <Object Type="DbCodeFirst">
-            <Source Path="DBContext" DbContext="Benchmarks.AspNet.Models.EntityFramework, Benchmarks.AspNet" />
-          </Object>
-        </ObjectGroup>
-        <ObjectGroup Name="PostgreSQL" Order="2" Enabled="False">
-          <Destination Path="" />
-          <Object Type="DbDacFx">
-            <PreSource Path="server=localhost;user id=benchmarkdbuser;password=benchmarkdbpass;database=hello_world" includeData="False" />
-            <Source Path="$(IntermediateOutputPath)AutoScripts\PostgreSQL_IncrementalSchemaOnly.dacpac" dacpacAction="Deploy" />
-          </Object>
-          <UpdateFrom Type="Web.Config">
-            <Source MatchValue="server=localhost;user id=benchmarkdbuser;password=benchmarkdbpass;database=hello_world" MatchAttributes="$(UpdateFromConnectionStringAttributes)" />
-          </UpdateFrom>
-        </ObjectGroup>
-        <ObjectGroup Name="MongoDB" Order="3" Enabled="False">
-          <Destination Path="" />
-          <Object Type="DbDacFx">
-            <PreSource Path="mongodb://localhost" includeData="False" />
-            <Source Path="$(IntermediateOutputPath)AutoScripts\MongoDB_IncrementalSchemaOnly.dacpac" dacpacAction="Deploy" />
-          </Object>
-          <UpdateFrom Type="Web.Config">
-            <Source MatchValue="mongodb://localhost" MatchAttributes="$(UpdateFromConnectionStringAttributes)" />
-          </UpdateFrom>
-        </ObjectGroup>
-        <ObjectGroup Name="MySQL" Order="4" Enabled="False">
-          <Destination Path="" />
-          <Object Type="DbDacFx">
-            <PreSource Path="server=localhost;user id=benchmarkdbuser;password=benchmarkdbpass;database=hello_world" includeData="False" />
-            <Source Path="$(IntermediateOutputPath)AutoScripts\MySQL_IncrementalSchemaOnly.dacpac" dacpacAction="Deploy" />
-          </Object>
-          <UpdateFrom Type="Web.Config">
-            <Source MatchValue="server=localhost;user id=benchmarkdbuser;password=benchmarkdbpass;database=hello_world" MatchAttributes="$(UpdateFromConnectionStringAttributes)" />
-          </UpdateFrom>
-        </ObjectGroup>
-      </Objects>
-    </PublishDatabaseSettings>
-    <LastUsedBuildConfiguration>Debug</LastUsedBuildConfiguration>
-    <LastUsedPlatform>x64</LastUsedPlatform>
-    <ExcludeApp_Data>True</ExcludeApp_Data>
-    <EnableMSDeployBackup>False</EnableMSDeployBackup>
-    <SiteUrlToLaunchAfterPublish>/</SiteUrlToLaunchAfterPublish>
-    <PrecompileBeforePublish>True</PrecompileBeforePublish>
-    <EnableUpdateable>False</EnableUpdateable>
-    <DebugSymbols>False</DebugSymbols>
-    <WDPMergeOption>DonotMerge</WDPMergeOption>
-  </PropertyGroup>
-  <ItemGroup>
-    <MSDeployParameterValue Include="$(DeployParameterPrefix)Benchmarks.AspNet.Models.EntityFramework-Web.config Connection String" />
-    <MSDeployParameterValue Include="$(DeployParameterPrefix)MongoDB-Web.config Connection String" />
-    <MSDeployParameterValue Include="$(DeployParameterPrefix)MySQL-Web.config Connection String" />
-    <MSDeployParameterValue Include="$(DeployParameterPrefix)PostgreSQL-Web.config Connection String" />
-  </ItemGroup>
-  <ItemGroup>
-    <_ConnectionStringsToInsert Include="Benchmarks.AspNet.Models.EntityFramework" />
-  </ItemGroup>
-</Project>

+ 0 - 25
frameworks/CSharp/aspnet-mono-ngx/src/Views/Fortunes.cshtml

@@ -1,25 +0,0 @@
-@model IEnumerable<Benchmarks.AspNet.Models.Fortune>
-
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Fortunes</title>
-</head>
-<body>
-
-<table>
-<tr>
-    <th>id</th>
-    <th>message</th>
-</tr>
-@foreach (var fortune in Model)
-{
-<tr>
-    <td>@fortune.ID</td>
-    <td>@fortune.Message</td>
-</tr>
-}
-</table>
-
-</body>
-</html>

+ 0 - 64
frameworks/CSharp/aspnet-mono-ngx/src/Views/Index.cshtml

@@ -1,64 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf8">
-    <title>Index</title>
-</head>
-<body>
-
-    <h1>ASP.NET Benchmarks</h1>
-
-    <h2>JSON</h2>
-    <ul>
-        <li><em>Default serializer:</em> <a href="/json/default">/json/default</a></li>
-        <li><em>Json.NET</em> <a href="/json/jsonnet">/json/jsonnet</a></li>
-        <li><em>ServiceStack.Text</em> <a href="/json/servicestack">/json/servicestack</a></li>
-    </ul>
-
-    <h2>Plaintext</h2>
-    <ul>
-        <li><a href="/plaintext">/plaintext</a></li>
-    </ul>
-
-    <h2>ADO.NET (Raw)</h2>
-    <h3>MySQL</h3>
-    <ul>
-        <li><em>DB:</em> <a href="/ado/mysql">/ado/mysql</a></li>
-        <li><em>Queries:</em> <a href="/ado/mysql?queries=10">/ado/mysql?queries=10</a></li>
-        <li><em>Fortunes:</em> <a href="/ado/mysql/fortunes">/ado/mysql/fortunes</a></li>
-        <li><em>Update:</em> <a href="/ado/mysql/update?queries=10">/ado/mysql/update?queries=10</a></li>
-    </ul>
-    <h3>PostgreSQL</h3>
-    <ul>
-        <li><em>DB:</em> <a href="/ado/postgresql">/ado/postgresql</a></li>
-        <li><em>Queries:</em> <a href="/ado/postgresql?queries=10">/ado/postgresql?queries=10</a></li>
-        <li><em>Fortunes:</em> <a href="/ado/postgresql/fortunes">/ado/postgresql/fortunes</a></li>
-        <li><em>Update:</em> <a href="/ado/postgresql/update?queries=10">/ado/postgresql/update?queries=10</a></li>
-    </ul>
-
-    <h2>Entity Framework (ORM)</h2>
-    <h3>MySQL</h3>
-    <ul>
-        <li><em>DB:</em> <a href="/entityframework/mysql">/entityframework/mysql</a></li>
-        <li><em>Queries:</em> <a href="/entityframework/mysql?queries=10">/entityframework/mysql?queries=10</a></li>
-        <li><em>Fortunes:</em> <a href="/entityframework/mysql/fortunes">/entityframework/mysql/fortunes</a></li>
-        <li><em>Update:</em> <a href="/entityframework/mysql/update?queries=10">/entityframework/mysql/update?queries=10</a></li>
-    </ul>
-    <h3>PostgreSQL</h3>
-    <ul>
-        <li><em>DB:</em> <a href="/entityframework/postgresql">/entityframework/postgresql</a></li>
-        <li><em>Queries:</em> <a href="/entityframework/postgresql?queries=10">/entityframework/postgresql?queries=10</a></li>
-        <li><em>Fortunes:</em> <a href="/entityframework/postgresql/fortunes">/entityframework/postgresql/fortunes</a></li>
-        <li><em>Update:</em> <a href="/entityframework/postgresql/update?queries=10">/entityframework/postgresql/update?queries=10</a></li>
-    </ul>
-
-    <h2>MongoDB</h2>
-    <ul>
-        <li><em>DB:</em> <a href="/mongodb">/mongodb</a></li>
-        <li><em>Queries:</em> <a href="/mongodb?queries=10">/mongodb?queries=10</a></li>
-        <li><em>Fortunes:</em> <a href="/mongodb/fortunes">/mongodb/fortunes</a></li>
-        <li><em>Update:</em> <a href="/mongodb/update?queries=10">/mongodb/update?queries=10</a></li>
-    </ul>
-
-</body>
-</html>

+ 0 - 33
frameworks/CSharp/aspnet-mono-ngx/src/Views/Web.config

@@ -1,33 +0,0 @@
-<?xml version="1.0"?>
-<configuration>
-  <configSections>
-    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
-      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
-      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
-    </sectionGroup>
-  </configSections>
-  <system.web.webPages.razor>
-    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
-    <pages pageBaseType="System.Web.Mvc.WebViewPage">
-      <namespaces>
-        <add namespace="System.Web.Mvc" />
-        <add namespace="System.Web.Mvc.Html" />
-      </namespaces>
-    </pages>
-  </system.web.webPages.razor>
-  <appSettings>
-    <add key="webpages:Enabled" value="false" />
-  </appSettings>
-  <system.web>
-    <httpHandlers>
-      <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
-    </httpHandlers>
-  </system.web>
-  <system.webServer>
-    <validation validateIntegratedModeConfiguration="false" />
-    <handlers>
-      <remove name="BlockViewHandler"/>
-      <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
-    </handlers>
-  </system.webServer>
-</configuration>

+ 0 - 64
frameworks/CSharp/aspnet-mono-ngx/src/Web.config

@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-  <configSections>
-    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
-    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
-  </configSections>
-  <!-- Connection Strings -->
-  <!-- Names are case insensitive -->
-  <connectionStrings>
-    <add name="MySQL" connectionString="server=tfb-database; user id=benchmarkdbuser; password=benchmarkdbpass; database=hello_world" providerName="MySql.Data.MySqlClient" />
-    <add name="PostgreSQL" connectionString="server=tfb-database; user id=benchmarkdbuser; password=benchmarkdbpass; database=hello_world" providerName="Npgsql" />
-    <add name="MongoDB" connectionString="mongodb://tfb-database" />
-    <add name="SQLServer" connectionString="server=tfb-database; user id=benchmarkdbuser; password=B3nchmarkDBPass; database=hello_world" providerName="System.Data.SqlClient" />
-  </connectionStrings>
-  <!-- ADO.NET -->
-  <system.data>
-    <DbProviderFactories>
-      <clear />
-      <add name="MySql.Data.MySqlClient" description="Data Provider for MySQL" invariant="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=8.0.17" />
-      <add name="Npgsql" description="Data Provider for PostgreSQL" invariant="Npgsql" type="Npgsql.NpgsqlFactory, Npgsql, Version=2.2.3" />
-      <add name="System.Data.SqlClient" description="Data Provider for Microsoft SQL Server" invariant="System.Data.SqlClient" type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=4.0.0.0" />
-    </DbProviderFactories>
-  </system.data>
-  <!-- Entity Framework -->
-  <entityFramework>
-    <providers>
-      <provider invariantName="Npgsql" type="Npgsql.NpgsqlServices, Npgsql.EntityFramework, Version=2.2.3" />
-      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
-      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework, Version=8.0.17">
-      </provider>
-    </providers>
-  </entityFramework>
-  <appSettings>
-    <!-- Disable support for directly accessing *.cshtml/*.vbhtml files because that is a perf killer
-         and because we don't use such functionality. -->
-    <add key="webpages:Enabled" value="false" />
-    <!-- To fully saturate the CPUs, we need to allow the .NET thread pool to create many threads
-         when a large burst of requests come in. We do this by boosting the minWorkerThreads value
-         from the default of 1 per logical processor to 8 per logical processor. This seems to be
-         pretty conservative as http://support.microsoft.com/kb/821268 recommends 50.-->
-    <add key="minWorkerThreadsPerLogicalProcessor" value="8" />
-  </appSettings>
-  <system.web>
-    <!-- Show errors -->
-    <customErrors mode="Off" />
-  </system.web>
-  <!-- Register the application as an HTTP module -->
-  <system.webServer>
-    <!-- Used by IIS -->
-    <modules>
-      <remove name="Framework Benchmarks" />
-      <add name="Framework Benchmarks" type="Benchmarks.AspNet.Application" />
-    </modules>
-    <!-- In IIS >= 7.0 it's not possible to have both <httpModules> and <modules>, this setting disables the warning -->
-    <validation validateIntegratedModeConfiguration="false" />
-  </system.webServer>
-  <system.web>
-    <!-- Used by the XSP web server on mono -->
-    <httpModules>
-      <remove name="Framework Benchmarks" />
-      <add name="Framework Benchmarks" type="Benchmarks.AspNet.Application" />
-    </httpModules>
-  </system.web>
-</configuration>

+ 0 - 18
frameworks/CSharp/aspnet-mono-ngx/src/packages.config

@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="BouncyCastle" version="1.8.3.1" targetFramework="net472" />
-  <package id="EntityFramework" version="6.2.0" targetFramework="net472" />
-  <package id="Google.Protobuf" version="3.6.1" targetFramework="net472" />
-  <package id="Microsoft.AspNet.Mvc" version="5.2.2" targetFramework="net472" />
-  <package id="Microsoft.AspNet.Razor" version="3.2.2" targetFramework="net472" />
-  <package id="Microsoft.AspNet.WebPages" version="3.2.2" targetFramework="net472" />
-  <package id="mongocsharpdriver" version="1.9.2" targetFramework="net472" />
-  <package id="MSBuild.Microsoft.VisualStudio.Web.targets" version="11.0.2.1" />
-  <package id="MySql.Data" version="8.0.17" targetFramework="net472" />
-  <package id="MySql.Data.EntityFramework" version="8.0.17" targetFramework="net472" />
-  <package id="Newtonsoft.Json" version="6.0.6" targetFramework="net472" />
-  <package id="Npgsql" version="2.2.3" targetFramework="net472" />
-  <package id="Npgsql.EntityFramework" version="2.2.3" targetFramework="net472" />
-  <package id="ServiceStack.Text" version="4.0.34" targetFramework="net472" />
-  <package id="SSH.NET" version="2016.1.0" targetFramework="net472" />
-</packages>