Browse Source

Remove very old version of Csharp/servicestack (#7216)

Nate 3 years ago
parent
commit
0f7b9a1607
41 changed files with 0 additions and 2844 deletions
  1. 0 105
      frameworks/CSharp/servicestack/README.md
  2. 0 24
      frameworks/CSharp/servicestack/benchmark_config.json
  3. 0 15
      frameworks/CSharp/servicestack/config.toml
  4. 0 21
      frameworks/CSharp/servicestack/nginx.conf
  5. 0 27
      frameworks/CSharp/servicestack/run.sh
  6. 0 17
      frameworks/CSharp/servicestack/servicestack.dockerfile
  7. 0 64
      frameworks/CSharp/servicestack/src/AppHost.cs
  8. 0 208
      frameworks/CSharp/servicestack/src/AppHostConfigHelper.cs
  9. 0 8
      frameworks/CSharp/servicestack/src/DbFactories/IMySqlOrmLiteConnectionFactory.cs
  10. 0 8
      frameworks/CSharp/servicestack/src/DbFactories/IPostgreSqlOrmLiteConnectionFactory.cs
  11. 0 8
      frameworks/CSharp/servicestack/src/DbFactories/ISqlServerOrmLiteConnectionFactory.cs
  12. 0 12
      frameworks/CSharp/servicestack/src/DbFactories/MySqlOrmLiteConnectionFactory.cs
  13. 0 29
      frameworks/CSharp/servicestack/src/DbFactories/PostgreSqlOrmLiteConnectionFactory.cs
  14. 0 12
      frameworks/CSharp/servicestack/src/DbFactories/SqlServerOrmLiteConnectionFactory.cs
  15. 0 1
      frameworks/CSharp/servicestack/src/Global.asax
  16. 0 22
      frameworks/CSharp/servicestack/src/Global.asax.cs
  17. 0 114
      frameworks/CSharp/servicestack/src/Model/Fortune.cs
  18. 0 211
      frameworks/CSharp/servicestack/src/Model/World.cs
  19. 0 6
      frameworks/CSharp/servicestack/src/NuGet.config
  20. 0 33
      frameworks/CSharp/servicestack/src/Properties/AssemblyInfo.cs
  21. 0 30
      frameworks/CSharp/servicestack/src/Properties/PublishProfiles/IIS.pubxml
  22. 0 72
      frameworks/CSharp/servicestack/src/SafeRandom.cs
  23. 0 38
      frameworks/CSharp/servicestack/src/SelfHost/App.config
  24. 0 85
      frameworks/CSharp/servicestack/src/SelfHost/AppHostSelfHelper.cs
  25. 0 55
      frameworks/CSharp/servicestack/src/SelfHost/AppSelfHost.cs
  26. 0 37
      frameworks/CSharp/servicestack/src/SelfHost/Program.cs
  27. 0 36
      frameworks/CSharp/servicestack/src/SelfHost/Properties/AssemblyInfo.cs
  28. 0 154
      frameworks/CSharp/servicestack/src/SelfHost/ServiceStackBenchmark.SelfHost.csproj
  29. 0 55
      frameworks/CSharp/servicestack/src/SelfHost/app.manifest
  30. 0 8
      frameworks/CSharp/servicestack/src/SelfHost/packages.config
  31. 0 172
      frameworks/CSharp/servicestack/src/Service/MongoDBService.cs
  32. 0 186
      frameworks/CSharp/servicestack/src/Service/MySqlService.cs
  33. 0 187
      frameworks/CSharp/servicestack/src/Service/PostgreSqlService.cs
  34. 0 99
      frameworks/CSharp/servicestack/src/Service/Services.cs
  35. 0 187
      frameworks/CSharp/servicestack/src/Service/SqlServerService.cs
  36. 0 282
      frameworks/CSharp/servicestack/src/ServiceStackBenchmark.csproj
  37. 0 58
      frameworks/CSharp/servicestack/src/ServiceStackBenchmark.sln
  38. 0 30
      frameworks/CSharp/servicestack/src/Web.Debug.config
  39. 0 31
      frameworks/CSharp/servicestack/src/Web.Release.config
  40. 0 74
      frameworks/CSharp/servicestack/src/Web.config
  41. 0 23
      frameworks/CSharp/servicestack/src/packages.config

+ 0 - 105
frameworks/CSharp/servicestack/README.md

@@ -1,105 +0,0 @@
-# ServiceStack on Mono and Windows
-
-## Tests
-
-### JSON Response
-
-* `http://localhost:8080/json`
-
-### Plain Text Response
-
-* `http://localhost:8080/plaintext`
-
-### Database Responses
-
-**Microsoft SQL Server** using ORMLite
-
-* `http://localhost:8080/sqlserver/db`
-* `http://localhost:8080/sqlserver/queries/10`
-* `http://localhost:8080/sqlserver/fortunes`
-* `http://localhost:8080/sqlserver/updates/25`
-
-**MySQL** using ORMLite
-
-* `http://localhost:8080/mysql/db`
-* `http://localhost:8080/mysql/queries/10`
-* `http://localhost:8080/mysql/fortunes`
-* `http://localhost:8080/mysql/updates/25`
-
-**PostgreSQL** using ORMLite
-
-* `http://localhost:8080/postgresql/db`
-* `http://localhost:8080/postgresql/queries/10`
-* `http://localhost:8080/postgresql/fortunes`
-* `http://localhost:8080/postgresql/updates/25`
-
-**MongoDB**
-
-* `http://localhost:8080/mongodb/db`
-* `http://localhost:8080/mongodb/queries/10`
-* `http://localhost:8080/mongodb/fortunes`
-* `http://localhost:8080/mongodb/updates/25`
-
----
-
-## Mono Installation
-
-    sudo apt-get install build-essential autoconf automake libtool zlib1g-dev git
-
-    git clone git://github.com/mono/mono
-    cd mono
-    git checkout mono-3.0.10
-    ./autogen.sh --prefix=/usr/local
-    make get-monolite-latest
-    make EXTERNAL_MCS=${PWD}/mcs/class/lib/monolite/basic.exe
-    sudo make install
-
-    cd ..
-
-    git clone git://github.com/mono/xsp
-    cd xsp
-    git checkout 3.0
-    ./autogen.sh --prefix=/usr/local
-    make
-    sudo make install
-
-## Versions
-
-**Language**
-
-* C# 5.0
-
-**Platforms**
-
-* .NET Framework 4.5 (Windows)
-* Mono 3.0.X (Linux)
-
-**Web Servers**
-
-* Self Hosting using HTTPListener (Windows/Linux)
-* IIS 8 (Windows) - includes [Swagger](http://www.nuget.org/packages/ServiceStack.Api.Swagger/)
-* nginx 1.4.0 & XSP FastCGI (Linux)
-
-**Web Stack**
-
-* ASP.NET 4.5
-* [ServiceStack](https://github.com/servicestack/servicestack/wiki)
-
-**Database Providers**
-
-* Microsoft SQL Server - [interface](http://www.nuget.org/packages/ServiceStack.OrmLite.SqlServer/)
-* MySQL - [driver](http://www.nuget.org/packages/MySql.Data/) + [interface](http://www.nuget.org/packages/ServiceStack.OrmLite.MySql/)
-* PostgreSQL - [driver](http://www.nuget.org/packages/Npgsql/) + [interface](http://www.nuget.org/packages/ServiceStack.OrmLite.PostgreSQL/)
-* MongoDB - [driver](http://www.nuget.org/packages/mongocsharpdriver/)
-
-**Caching Providers**
-
-* In-Memory
-* Redis NoSQL Db - [client w/interface](http://www.nuget.org/packages/ServiceStack.Redis)
-* MemCache - [client](http://www.nuget.org/packages/EnyimMemcached) + [interface](http://www.nuget.org/packages/ServiceStack.Caching.Memcached)
-* Amazon Web Services In-Memory DynamoDb DataCache - [client](http://www.nuget.org/packages/AWSSDK) + [interface](http://www.nuget.org/packages/ServiceStack.Caching.AwsDynamoDb)
-* Microsoft Azure In-Memory DataCache - [client](http://www.nuget.org/packages/WindowsAzure.Caching) + [interface](http://www.nuget.org/packages/ServiceStack.Caching.Azure)
-
-**Developer Tools**
-
-* Visual Studio 2012

+ 0 - 24
frameworks/CSharp/servicestack/benchmark_config.json

@@ -1,24 +0,0 @@
-{
-  "framework": "servicestack",
-  "tests": [{
-    "default": {
-      "json_url": "/json",
-      "plaintext_url": "/plaintext",
-      "port": 8080,
-      "approach": "Realistic",
-      "classification": "Fullstack",
-      "database": "None",
-      "framework": "servicestack",
-      "language": "C#",
-      "flavor": "Mono",
-      "orm": "Raw",
-      "platform": "None",
-      "webserver": "nginx",
-      "os": "Linux",
-      "database_os": "Linux",
-      "display_name": "servicestack",
-      "notes": "",
-      "versus": "servicestack"
-    }
-  }]
-}

+ 0 - 15
frameworks/CSharp/servicestack/config.toml

@@ -1,15 +0,0 @@
-[framework]
-name = "servicestack"
-
-[main]
-urls.plaintext = "/plaintext"
-urls.json = "/json"
-approach = "Realistic"
-classification = "Fullstack"
-database = "None"
-database_os = "Linux"
-os = "Linux"
-orm = "Raw"
-platform = "None"
-webserver = "nginx"
-versus = "servicestack"

+ 0 - 21
frameworks/CSharp/servicestack/nginx.conf

@@ -1,21 +0,0 @@
-pid /tmp/nginx.pid;
-error_log stderr error;
-
-events {
-    worker_connections 8192;
-}
-
-http {
-    access_log off;
-    include nginx.upstream.conf;
-
-    server {
-        listen 8080;
-
-        location / {
-            fastcgi_pass mono;
-            include /etc/nginx/fastcgi_params;
-            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
-        }
-    }
-}

+ 0 - 27
frameworks/CSharp/servicestack/run.sh

@@ -1,27 +0,0 @@
-#!/bin/bash
-
-CPU_COUNT=$(nproc)
-
-# one fastcgi instance for each thread
-# load balanced by nginx
-port_start=9001
-port_end=$(($port_start+$CPU_COUNT))
-
-# To debug, use --printlog --verbose --loglevels=All
-for port in $(seq $port_start $port_end); do
-	MONO_OPTIONS=--gc=sgen fastcgi-mono-server4 --applications=/:/servicestack/src --socket=tcp:127.0.0.1:$port &
-done
-
-sleep 5s
-
-# nginx
-conf="upstream mono {\n"
-for port in $(seq $port_start $port_end); do
-  conf+="\tserver 127.0.0.1:${port};\n"
-done
-conf+="}"
-
-echo -e $conf > nginx.upstream.conf
-nginx -c /servicestack/nginx.conf -g "worker_processes ${CPU_COUNT};"
-
-wait

+ 0 - 17
frameworks/CSharp/servicestack/servicestack.dockerfile

@@ -1,17 +0,0 @@
-FROM mono:5.8.0.127
-RUN apt-get update -yqq && apt-get install -yqq nginx wget mono-fastcgi-server
-
-WORKDIR /servicestack
-COPY src src
-COPY nginx.conf nginx.conf
-COPY run.sh run.sh
-
-RUN mkdir lib
-RUN curl -sL -O https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
-RUN mono nuget.exe install src/packages.config -OutputDirectory lib/
-RUN xbuild src/ServiceStackBenchmark.csproj /t:Clean
-RUN xbuild src/ServiceStackBenchmark.csproj /t:Build
-
-EXPOSE 8080
-
-CMD bash run.sh

+ 0 - 64
frameworks/CSharp/servicestack/src/AppHost.cs

@@ -1,64 +0,0 @@
-using System;
-using System.Linq;
-using System.Collections.Generic;
-
-using ServiceStack;
-using ServiceStack.Api.Swagger;
-using ServiceStack.CacheAccess;
-using ServiceStack.CacheAccess.Providers;
-using ServiceStack.Common;
-using ServiceStack.Common.Web;
-using ServiceStack.Redis;
-using ServiceStack.ServiceHost;
-using ServiceStack.WebHost.Endpoints;
-using ServiceStack.WebHost.Endpoints.Formats;
-
-
-namespace ServiceStackBenchmark
-{
-
-	public class AppHost : AppHostBase
-	{
-		
-		public AppHost() : base("ServiceStackBenchmark", typeof(AppHost).Assembly) { }
-
-        public override void Configure(Funq.Container container)
-		{
-			ServiceStack.Text.JsConfig.EmitCamelCaseNames = true;
-
-            // Remove some unused features that by default are included
-            Plugins.RemoveAll(p => p is CsvFormat);
-            Plugins.RemoveAll(p => p is MetadataFeature);
-
-            // Add plugins
-            Plugins.Add(new SwaggerFeature());
-
-            // Get disable features specified in Config file (i.e. Soap, Metadata, etc.)
-            var disabled = AppHostConfigHelper.GetDisabledFeatures();
-
-            // Construct Service Endpoint Host Configuration store
-            var config = new EndpointHostConfig
-            {
-                DefaultRedirectPath = "/swagger-ui/index.html", // default to the Swagger page
-                DefaultContentType = ContentType.Json,
-                WriteErrorsToResponse = false,
-                EnableFeatures = Feature.All.Remove(disabled),
-                AppendUtf8CharsetOnContentTypes = new HashSet<string> { ContentType.Html },
-            };
-
-            // Apply configuration
-            SetConfig(config);
-
-            // Initialize Databases & associated Routes
-            container.InitDatabaseRoutes(Routes);
-
-            // Register Cache Clients
-            container.Register<ICacheClient>(new MemoryCacheClient());
-
-            // Register Redis Client Manager
-            container.Register<IRedisClientsManager>(c =>
-                new PooledRedisClientManager("localhost:6379"));
-		}
-
-	}
-}

+ 0 - 208
frameworks/CSharp/servicestack/src/AppHostConfigHelper.cs

@@ -1,208 +0,0 @@
-using System;
-using System.Linq;
-using System.Configuration;
-using System.Collections.Generic;
-using System.Threading;
-
-using MongoDB.Bson;
-using MongoDB.Bson.Serialization;
-using MongoDB.Driver;
-
-using ServiceStack.ServiceHost;
-using ServiceStackBenchmark.Model;
-
-namespace ServiceStackBenchmark
-{
-    public static class AppHostConfigHelper
-    {
-        public static bool InitMongoDB(this Funq.Container container)
-        {
-            try
-            {
-                // Register the MySql Database Connection Factory
-                var mongoDbConnectionString = ConfigurationManager.ConnectionStrings["MongoDB"].ConnectionString;
-                var client = new MongoClient(mongoDbConnectionString);
-                var server = client.GetServer();
-                var database = server.GetDatabase("hello_world");
-                container.Register<MongoDatabase>(c => database);
-
-                BsonClassMap.RegisterClassMap<World>(cm => {
-                    cm.MapProperty(c => c.id);
-                    cm.MapProperty(c => c.randomNumber);
-                });
-
-                BsonClassMap.RegisterClassMap<Fortune>(cm => {
-                    cm.MapProperty(c => c.id);
-                    cm.MapProperty(c => c.message);
-                });
-
-                // Create needed tables in MySql Server if they do not exist
-                return database.CreateWorldTable() && database.CreateFortuneTable();
-            }
-            catch
-            {
-                // Unregister failed database connection factory
-                container.Register<MongoDatabase>(c => null);
-
-                return false;
-            }
-
-        }
-
-        public static bool InitMySQL(this Funq.Container container)
-        {
-            try
-            {
-                // Register the MySql Database Connection Factory
-                var mySqlConnectionString = ConfigurationManager.ConnectionStrings["MySQL"];
-                var mySqlFactory = new MySqlOrmLiteConnectionFactory(mySqlConnectionString.ConnectionString);
-                mySqlFactory.DialectProvider.UseUnicode = true;
-                container.Register<IMySqlOrmLiteConnectionFactory>(c => mySqlFactory);
-
-                // Create needed tables in MySql Server if they do not exist
-                using (var conn = mySqlFactory.OpenDbConnection())
-                {
-                    return conn.CreateWorldTable() && conn.CreateFortuneTable();
-                }
-            }
-            catch (Exception ex)
-            {
-                // Unregister failed database connection factory
-                container.Register<IMySqlOrmLiteConnectionFactory>(c => null);
-
-                return false;
-            }
-
-        }
-
-        public static bool InitPostgreSQL(this Funq.Container container)
-        {
-            try
-            {
-                // Register the PostgreSQL Database Connection Factory
-                var postgreSqlConnectionString = ConfigurationManager.ConnectionStrings["PostgreSQL"];
-                var postgreSqlFactory = new PostgreSqlOrmLiteConnectionFactory(postgreSqlConnectionString.ConnectionString);
-                postgreSqlFactory.DialectProvider.UseUnicode = true;
-                container.Register<IPostgreSqlOrmLiteConnectionFactory>(c => postgreSqlFactory);
-
-                // Create needed tables in PostgreSql Server if they do not exist
-                using (var conn = postgreSqlFactory.OpenDbConnection())
-                {
-                    return conn.CreateWorldTable() && conn.CreateFortuneTable();
-                }
-            }
-            catch (Exception ex)
-            {
-                // Unregister failed database connection factory
-                container.Register<IPostgreSqlOrmLiteConnectionFactory>(c => null);
-
-                return false;
-            }
-
-        }
-
-        public static bool InitSQLServer(this Funq.Container container)
-        {
-            try
-            {
-                // Register the Microsoft Sql Server Database Connection Factory
-                var sqlServerConnectionString = ConfigurationManager.ConnectionStrings["SQLServer"];
-                var sqlServerFactory = new SqlServerOrmLiteConnectionFactory(sqlServerConnectionString.ConnectionString);
-                sqlServerFactory.DialectProvider.UseUnicode = true;
-                container.Register<ISqlServerOrmLiteConnectionFactory>(c => sqlServerFactory);
-
-                // Create needed tables in Microsoft Sql Server if they do not exist
-                using (var conn = sqlServerFactory.OpenDbConnection())
-                {
-                    return conn.CreateWorldTable() && conn.CreateFortuneTable();
-                }
-            }
-            catch (Exception ex)
-            {
-                // Unregister failed database connection factory
-                container.Register<ISqlServerOrmLiteConnectionFactory>(c => null);
-
-                return false;
-            }
-
-        }
-
-        public static void InitDatabaseRoutes(this Funq.Container container, IServiceRoutes routes)
-        {
-            if (container.InitMongoDB())
-            {
-                routes.Add<MongoDBDbRequest>("/mongodb/db", "GET");
-                routes.Add<MongoDBQueriesRequest>("/mongodb/queries/{queries}", "GET");
-                routes.Add<MongoDBFortunesRequest>("/mongodb/fortunes", "GET");
-                routes.Add<MongoDBUpdatesRequest>("/mongodb/updates/{queries}", "GET");
-                routes.Add<MongoDBCachedDbRequest>("/mongodb/cached/db", "GET");
-            }
-
-            if (container.InitMySQL())
-            {
-                routes.Add<MySqlDbRequest>("/mysql/db", "GET");
-                routes.Add<MySqlQueriesRequest>("/mysql/queries/{queries}", "GET");
-                routes.Add<MySqlFortunesRequest>("/mysql/fortunes", "GET");
-                routes.Add<MySqlUpdatesRequest>("/mysql/updates/{queries}", "GET");
-                routes.Add<MySqlCachedDbRequest>("/mysql/cached/db", "GET");
-            }
-
-            if (container.InitPostgreSQL())
-            {
-                routes.Add<PostgreSqlDbRequest>("/postgresql/db", "GET");
-                routes.Add<PostgreSqlQueriesRequest>("/postgresql/queries/{queries}", "GET");
-                routes.Add<PostgreSqlFortunesRequest>("/postgresql/fortunes", "GET");
-                routes.Add<PostgreSqlUpdatesRequest>("/postgresql/updates/{queries}", "GET");
-                routes.Add<PostgreSqlCachedDbRequest>("/postgresql/cached/db", "GET");
-            }
-
-            if (container.InitSQLServer())
-            {
-                routes.Add<SqlServerDbRequest>("/sqlserver/db", "GET");
-                routes.Add<SqlServerQueriesRequest>("/sqlserver/queries/{queries}", "GET");
-                routes.Add<SqlServerFortunesRequest>("/sqlserver/fortunes", "GET");
-                routes.Add<SqlServerUpdatesRequest>("/sqlserver/updates/{queries}", "GET");
-                routes.Add<SqlServerCachedDbRequest>("/sqlserver/cached/db", "GET");
-            }
-        }
-
-        public static Feature GetDisabledFeatures()
-        {
-            try
-            {
-                var disabled = ConfigurationManager.AppSettings.Get("DisabledFeatures");
-
-                Feature d;
-                if (Enum.TryParse(disabled, true, out d))
-                    return d;
-
-                return Feature.None;
-            }
-            catch
-            {
-                return Feature.None;
-            }
-
-        }
-
-        /// <summary>
-        /// Method to config the Minimum number of Worker Threads per Logical Processor Count.
-        /// </summary>
-        /// <remarks>the Completion Port Threads are set to their defaults as there is no IO concerrency in our app</remarks>
-        public static void ConfigThreadPool()
-        {
-            string minTPLPSetting = ConfigurationManager.AppSettings["minWorkerThreadsPerLogicalProcessor"];
-
-            if (minTPLPSetting == null)
-                return;
-
-            int sysMinWorkerThreads, sysMinCompletionPortThreads;
-            ThreadPool.GetMinThreads(out sysMinWorkerThreads, out sysMinCompletionPortThreads);
-
-            int newMinWorkerThreadsPerCPU = Math.Max(1, Convert.ToInt32(minTPLPSetting));
-                
-            var minWorkerThreads = Environment.ProcessorCount * newMinWorkerThreadsPerCPU;
-            ThreadPool.SetMinThreads(minWorkerThreads, sysMinCompletionPortThreads);
-        }
-    }
-}

+ 0 - 8
frameworks/CSharp/servicestack/src/DbFactories/IMySqlOrmLiteConnectionFactory.cs

@@ -1,8 +0,0 @@
-using System;
-
-using ServiceStack.OrmLite;
-
-namespace ServiceStackBenchmark
-{
-    public interface IMySqlOrmLiteConnectionFactory : IDbConnectionFactory { }
-}

+ 0 - 8
frameworks/CSharp/servicestack/src/DbFactories/IPostgreSqlOrmLiteConnectionFactory.cs

@@ -1,8 +0,0 @@
-using System;
-
-using ServiceStack.OrmLite;
-
-namespace ServiceStackBenchmark
-{
-    public interface IPostgreSqlOrmLiteConnectionFactory : IDbConnectionFactory { }
-}

+ 0 - 8
frameworks/CSharp/servicestack/src/DbFactories/ISqlServerOrmLiteConnectionFactory.cs

@@ -1,8 +0,0 @@
-using System;
-
-using ServiceStack.OrmLite;
-
-namespace ServiceStackBenchmark
-{
-    public interface ISqlServerOrmLiteConnectionFactory : IDbConnectionFactory { }
-}

+ 0 - 12
frameworks/CSharp/servicestack/src/DbFactories/MySqlOrmLiteConnectionFactory.cs

@@ -1,12 +0,0 @@
-using System;
-
-using ServiceStack.OrmLite;
-using ServiceStack.OrmLite.MySql;
-
-namespace ServiceStackBenchmark
-{
-    public class MySqlOrmLiteConnectionFactory : OrmLiteConnectionFactory, IMySqlOrmLiteConnectionFactory
-    {
-        public MySqlOrmLiteConnectionFactory(string s) : base(s, MySqlDialectProvider.Instance) { }
-    }
-}

+ 0 - 29
frameworks/CSharp/servicestack/src/DbFactories/PostgreSqlOrmLiteConnectionFactory.cs

@@ -1,29 +0,0 @@
-using System;
-
-using ServiceStack.OrmLite;
-using ServiceStack.OrmLite.PostgreSQL;
-
-namespace ServiceStackBenchmark
-{
-    public class PostgreSqlOrmLiteConnectionFactory : OrmLiteConnectionFactory, IPostgreSqlOrmLiteConnectionFactory
-    {
-        public PostgreSqlOrmLiteConnectionFactory(string s) : base(s, PostgreSQLDialectProvider.Instance) {
-            this.DialectProvider.NamingStrategy = new LowercaseNamingStrategy();
-        }
-    }
-
-    public class LowercaseNamingStrategy : OrmLiteNamingStrategyBase
-    {
-        public override string GetTableName(string name)
-        {
-            return name.ToLower();
-        }
-
-        public override string GetColumnName(string name)
-        {
-            return name.ToLower();
-        }
-
-    }
-
-}

+ 0 - 12
frameworks/CSharp/servicestack/src/DbFactories/SqlServerOrmLiteConnectionFactory.cs

@@ -1,12 +0,0 @@
-using System;
-
-using ServiceStack.OrmLite;
-using ServiceStack.OrmLite.SqlServer;
-
-namespace ServiceStackBenchmark
-{
-    public class SqlServerOrmLiteConnectionFactory : OrmLiteConnectionFactory, ISqlServerOrmLiteConnectionFactory
-    {
-        public SqlServerOrmLiteConnectionFactory(string s) : base(s, SqlServerOrmLiteDialectProvider.Instance) { }
-    }
-}

+ 0 - 1
frameworks/CSharp/servicestack/src/Global.asax

@@ -1 +0,0 @@
-<%@ Application Codebehind="Global.asax.cs" Inherits="ServiceStackBenchmark.Global" Language="C#" %>

+ 0 - 22
frameworks/CSharp/servicestack/src/Global.asax.cs

@@ -1,22 +0,0 @@
-using System;
-using System.Threading;
-using System.Web;
-
-namespace ServiceStackBenchmark
-{
-    public class Global : HttpApplication
-    {
-        protected void Application_Start(object sender, EventArgs e)
-        {
-            AppHostConfigHelper.ConfigThreadPool();
-
-            new AppHost().Init();
-        }
-
-        protected void Application_BeginRequest(object src, EventArgs e)
-        { }
-
-        protected void Application_EndRequest(object src, EventArgs e)
-        { }
-    }
-}

+ 0 - 114
frameworks/CSharp/servicestack/src/Model/Fortune.cs

@@ -1,114 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-using System.Data;
-using System.Linq;
-
-using MongoDB.Driver;
-using MongoDB.Driver.Builders;
-
-using ServiceStack.DataAnnotations;
-using ServiceStack.Html;
-using ServiceStack.OrmLite;
-using ServiceStack.Text;
-
-namespace ServiceStackBenchmark.Model
-{
-    [Alias("Fortune")]
-    public class Fortune : IComparable<Fortune>
-    {
-        [PrimaryKey()]
-        public int id { get; set; }
-
-        [StringLength(100)]
-        public string message { get; set; }
-
-        public int CompareTo(Fortune fortune)
-        {
-            return message.CompareTo(fortune.message);
-        }
-
-    }
-
-    public static class FortuneMethods
-    {
-
-        public static List<Fortune> GetFortunes(this IDbConnection db)
-        {
-            return db.Select<Fortune>();
-        }
-
-        public static List<Fortune> GetFortunes(this MongoDatabase db)
-        {
-            var collection = db.GetCollection<Fortune>("Fortune");
-            return collection.FindAll().ToList();
-        }
-
-        public static bool CreateFortuneTable(this IDbConnection db)
-        {
-            if (db.TableExists("Fortune"))
-                return true;
-
-            try
-            {
-                db.CreateTable<Fortune>();
-
-                // Populate the collection
-                db.Insert<Fortune>(GetFortunes().ToArray());
-
-                return true;
-            }
-            catch
-            {
-                return false;
-            }
-        }
-
-        public static bool CreateFortuneTable(this MongoDatabase db)
-        {
-            if (db.CollectionExists("Fortune"))
-                return true;
-
-            try
-            {
-                // Populate the collection
-                var collection = db.GetCollection<Fortune>("Fortune");
-                collection.InsertBatch(GetFortunes());
-
-                return true;
-            }
-            catch
-            {
-                return false;
-            }
-        }
-
-        private static IEnumerable<Fortune> GetFortunes()
-        {
-            var fortunes = new List<Fortune>();
-            fortunes.Add(new Fortune() { id = 1, message = "fortune: No such file or directory" });
-            fortunes.Add(new Fortune() { id = 2, message = "A computer scientist is someone who fixes things that aren't broken." });
-            fortunes.Add(new Fortune() { id = 3, message = "After enough decimal places, nobody gives a damn." });
-            fortunes.Add(new Fortune() { id = 4, message = "A bad random number generator: 1, 1, 1, 1, 1, 4.33e+67, 1, 1, 1" });
-            fortunes.Add(new Fortune() { id = 5, message = "A computer program does what you tell it to do, not what you want it to do." });
-            fortunes.Add(new Fortune() { id = 6, message = "Emacs is a nice operating system, but I prefer UNIX. — Tom Christaensen" });
-            fortunes.Add(new Fortune() { id = 7, message = "Any program that runs right is obsolete." });
-            fortunes.Add(new Fortune() { id = 8, message = "A list is only as strong as its weakest link. — Donald Knuth" });
-            fortunes.Add(new Fortune() { id = 9, message = "Feature: A bug with seniority." });
-            fortunes.Add(new Fortune() { id = 10, message = "Computers make very fast, very accurate mistakes." });
-            fortunes.Add(new Fortune() { id = 11, message = "<script>alert(\"This should not be displayed in a browser alert box.\");</script>" });
-            fortunes.Add(new Fortune() { id = 12, message = "フレームワークのベンチマーク" });
-            return fortunes;
-        }
-
-        public static string ToHtml(List<Fortune> fortunes)
-        {
-            string page = @"<!DOCTYPE html><html><head><title>Fortunes</title></head><body><table><tr><th>id</th><th>message</th></tr>";
-            HtmlHelper htmlHelper = new HtmlHelper();
-            fortunes.ForEach(f => page += @"<tr><td>{0}</td><td>{1}</td></tr>".Fmt(f.id, htmlHelper.Encode(f.message)));
-            page += @"</table></body></html>";
-            return page;
-        }
-
-    }
-}

+ 0 - 211
frameworks/CSharp/servicestack/src/Model/World.cs

@@ -1,211 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Data;
-using System.Linq;
-using System.Threading.Tasks;
-
-using ServiceStack.CacheAccess;
-using ServiceStack.Common;
-using ServiceStack.DataAnnotations;
-using ServiceStack.OrmLite;
-
-using MongoDB.Driver;
-using MongoDB.Driver.Builders;
-
-namespace ServiceStackBenchmark.Model
-{
-    [Alias("World")]
-    public class World
-    {
-        [PrimaryKey()]
-        public int id { get; set; }
-        public int randomNumber { get; set; }
-    }
-
-    public static class WorldMethods
-    {
-
-        public static World GetWorld(this IDbConnection db, int id)
-        {
-            // retrieve the World with passed id
-            return db.GetById<World>(id);
-        }
-
-        public static World GetWorld(this MongoDatabase db, int id)
-        {
-            // retrieve the World with passed id
-            var collection = db.GetCollection<World>("World");
-            return collection.FindOne(Query<World>.EQ(w => w.id, id));
-        }
-
-        public static List<World> GetWorlds(this IDbConnection db)
-        {
-            // retrieve all Worlds
-            return db.Select<World>();
-        }
-
-        public static List<World> GetWorlds(this MongoDatabase db)
-        {
-            // retrieve all Worlds
-            var collection = db.GetCollection<World>("World");
-            return collection.FindAll().ToList();
-        }
-
-        public static List<World> GetWorlds(this IDbConnection db, IEnumerable<int> ids)
-        {
-            // retrieve the Worlds included passed ids
-            return db.GetByIds<World>(ids);
-        }
-
-        public static List<World> GetWorlds(this MongoDatabase db, IEnumerable<int> ids)
-        {
-            // retrieve the Worlds included passed ids
-            var collection = db.GetCollection<World>("World");
-            return collection.Find(Query<World>.In(w => w.id, ids)).ToList();
-        }
-
-        public static List<World> UpdateWorlds(this IDbConnection db, IEnumerable<int> ids)
-        {
-            // get the worlds for the passed ids
-            var worlds = db.GetByIds<World>(ids);
-
-            // concurrently update each world with a new random number
-            Parallel.ForEach(worlds, w =>
-            {
-                lock (worlds)
-                {
-                    w.randomNumber = SafeRandom.Instance.Next(0, 10000) + 1;
-                }
-            });
-
-            // update the dataase with the above changes
-            db.UpdateAll<World>(worlds);
-
-            // return updated collection
-            return worlds;
-        }
-
-        public static List<World> UpdateWorlds(this MongoDatabase db, IEnumerable<int> ids, int recordCount)
-        {
-            var collection = db.GetCollection<World>("World");
-
-            // get the worlds for the passed ids
-            var worlds = collection.Find(Query<World>.In(w => w.id, ids)).ToList();
-
-            // concurrently update each world with a new random number
-            Parallel.ForEach(worlds, w =>
-            {
-                lock (worlds)
-                {
-                    w.randomNumber = SafeRandom.Instance.Next(0, recordCount) + 1;
-                }
-            });
-
-            // TODO: look into how to make this a single statement
-            foreach (var w in worlds)
-            {
-                // update the database with the above changes
-                collection.Update(
-                    Query<World>.EQ(t => t.id, w.id),
-                    Update<World>.Set(t => t.randomNumber, w.randomNumber));
-            }
-
-            // return updated collection
-            return worlds;
-        }
-
-        public static void CacheAllWorlds(this IDbConnection db, ICacheClient cache)
-        {
-            cache.FlushAll();
-
-            // concurrently create a list of world ids
-            var worlds = db.GetWorlds();
-
-            Parallel.ForEach<World>(worlds, w =>
-            {
-                var cacheKey = UrnId.Create<World>("Id", w.id.ToString());
-
-                cache.Set<World>(cacheKey, w);
-            });
-        }
-
-        public static void CacheAllWorlds(this MongoDatabase db, ICacheClient cache, string dbType)
-        {
-            cache.FlushAll();
-
-            // concurrently create a list of world ids
-            var worlds = db.GetWorlds();
-
-            Parallel.ForEach<World>(worlds, w =>
-            {
-                var cacheKey = UrnId.CreateWithParts<World>(new string[] { dbType, w.id.ToString() });
-
-                cache.Set<World>(cacheKey, w);
-            });
-        }
-
-        public static bool CreateWorldTable(this IDbConnection db)
-        {
-            // only create table if it does not already exist
-            if (db.TableExists("World"))
-                return true;
-
-            try
-            {
-                // create the database table based on model
-                db.CreateTable<World>();
-
-                // populate the table
-                var worlds = new List<World>(10000);
-                Parallel.For(0, 10000, i =>
-                    {
-                        lock (worlds)
-                        {
-                            worlds.Add(new World() { id = i, randomNumber = SafeRandom.Instance.Next(0, 10000) + 1 });
-                        }
-
-                    });
-
-                // insert new records into database
-                db.Insert<World>(worlds.ToArray());
-
-                return true;
-            }
-            catch
-            {
-                return false;
-            }
-        }
-
-        public static bool CreateWorldTable(this MongoDatabase db)
-        {
-            // only create table if it does not already exist
-            if (db.CollectionExists("World"))
-                return true;
-
-            try
-            {
-                // populate the table
-                var worlds = new List<World>(10000);
-                Parallel.For(0, 10000, i =>
-                {
-                    lock (worlds)
-                    {
-                        worlds.Add(new World() { id = i, randomNumber = SafeRandom.Instance.Next(0, 10000) + 1 });
-                    }
-
-                });
-
-                // insert new records into database
-                var collection = db.GetCollection<World>("World");
-                collection.InsertBatch(worlds);
-
-                return true;
-            }
-            catch
-            {
-                return false;
-            }
-        }
-    }
-}

+ 0 - 6
frameworks/CSharp/servicestack/src/NuGet.config

@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-  <config>
-    <add key="repositoryPath" value="..\lib" />
-  </config>
-</configuration>

+ 0 - 33
frameworks/CSharp/servicestack/src/Properties/AssemblyInfo.cs

@@ -1,33 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("ServiceStackBenchmark.Properties")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("ServiceStackBenchmark.Properties")]
-[assembly: AssemblyCopyright("Copyright ©  2013")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("b93603f5-a9d3-483e-b26b-1e6fc272c078")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]

+ 0 - 30
frameworks/CSharp/servicestack/src/Properties/PublishProfiles/IIS.pubxml

@@ -1,30 +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>
-    </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>
-  </ItemGroup>
-</Project>

+ 0 - 72
frameworks/CSharp/servicestack/src/SafeRandom.cs

@@ -1,72 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-
-namespace ServiceStackBenchmark
-{
-    internal sealed class SafeRandom
-    {
-        private static volatile SafeRandom instance;
-
-        private static object syncRoot = new object();
-
-        private static Random random;
-
-        private SafeRandom()
-        {
-            random = new Random();
-        }
-
-        public int Next()
-        {
-            int result;
-
-            lock (random)
-            {
-                result = random.Next();
-            }
-            return result;
-        }
-
-        public int Next(int maxValue)
-        {
-            int result;
-
-            lock (random)
-            {
-                result = random.Next(maxValue);
-            }
-            return result;
-        }
-
-        public int Next(int minValue, int maxValue)
-        {
-            int result;
-
-            lock (random)
-            {
-                result = random.Next(minValue, maxValue);
-            }
-            return result;
-        }
-
-        public static SafeRandom Instance
-        {
-            get
-            {
-                if (instance == null)
-                {
-                    lock (syncRoot)
-                    {
-                        if (instance == null)
-                        {
-                            instance = new SafeRandom();
-                        }
-                    }
-                }
-
-                return instance;
-            }
-        }
-    }
-}

+ 0 - 38
frameworks/CSharp/servicestack/src/SelfHost/App.config

@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-  <startup>
-    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
-  </startup>
-  <connectionStrings>
-    <add name="MongoDB" connectionString="mongodb://localhost" />
-    <add name="MySQL" connectionString="server=localhost; user id=benchmarkdbuser; password=benchmarkdbpass; database=hello_world" providerName="MySql.Data.MySqlClient" />
-    <add name="PostgreSQL" connectionString="server=localhost; user id=benchmarkdbuser; password=benchmarkdbpass; database=hello_world" providerName="Npgsql" />
-    <!-- Set max pool size to SQL Server's default max_connections value. In practice, we don't seem to be getting close to the max at all. -->
-    <add name="SQLServer" connectionString="server=localhost; user id=benchmarkdbuser; password=B3nchmarkDBPass; database=hello_world; max pool size=32767" providerName="System.Data.SqlClient" />
-  </connectionStrings>
-  <appSettings>
-    <!-- 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 40 per logical processor. This seems to be
-         a little conservative as http://support.microsoft.com/kb/821268 recommends 50.-->
-    <add key="minWorkerThreadsPerLogicalProcessor" value="40" />
-    <!-- Disable ServiceStack features -->
-    <add key="DisabledFeatures" value="MetaData, Soap, Soap11, Soap12" />
-  </appSettings>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-6.7.4.0" newVersion="6.7.4.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Npgsql" publicKeyToken="5d8b90d52f46fda7" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-2.0.13.91" newVersion="2.0.13.91" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="AWSSDK" publicKeyToken="9f476d3089b52be3" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-2.0.0.4" newVersion="2.0.0.4" />
-      </dependentAssembly>
-    </assemblyBinding>
-  </runtime>
-</configuration>

+ 0 - 85
frameworks/CSharp/servicestack/src/SelfHost/AppHostSelfHelper.cs

@@ -1,85 +0,0 @@
-using System;
-using System.Linq;
-using System.Net;
-using System.Collections.Generic;
-using System.Diagnostics;
-
-namespace ServiceStackBenchmark
-{
-    public static class AppHostSelfHelper
-    {
-        public static bool IsMono()
-        {
-            return Type.GetType("Mono.Runtime") != null;
-        }
-
-        public static void StartListening(this AppSelfHost appHost, string urlBase)
-        {
-            var addedURLToACL = false;
-
-            try
-            {
-                appHost.Start(urlBase);
-            }
-            catch (HttpListenerException ex)
-            {
-                if (IsMono())
-                    throw ex;
-
-                if (ex.ErrorCode == 5)
-                {
-                    AppHostSelfHelper.AddAddress(urlBase);
-                    addedURLToACL = true;
-                    appHost.Start(urlBase);
-                }
-            }
-
-            Console.WriteLine("AppHost Created at {0}, listening on {1}", DateTime.Now, urlBase);
-            Console.WriteLine("Press <Esc> to stop.");
-            do { } while (Console.ReadKey(true).Key != ConsoleKey.Escape);
-
-            if (addedURLToACL)
-                AppHostSelfHelper.DeleteAddress(urlBase);
-        }
-
-
-        #region Methods to Handle URL Listening with ACL Permissions
-
-        public static void AddAddress(string address)
-        {
-            AddAddress(address, Environment.UserDomainName, Environment.UserName);
-        }
-
-        public static void AddAddress(string address, string domain, string user)
-        {
-            string args = string.Format(@"http add urlacl url={0} user={1}\{2} listen=yes", address, domain, user);
-
-            var psi = new ProcessStartInfo("netsh", args)
-            {
-                Verb = "runas",
-                CreateNoWindow = true,
-                WindowStyle = ProcessWindowStyle.Hidden,
-                UseShellExecute = true
-            };
-
-            Process.Start(psi).WaitForExit();
-        }
-
-        public static void DeleteAddress(string address)
-        {
-            string args = string.Format(@"http delete urlacl url={0}", address);
-
-            var psi = new ProcessStartInfo("netsh", args)
-            {
-                CreateNoWindow = true,
-                WindowStyle = ProcessWindowStyle.Hidden,
-                UseShellExecute = true
-            };
-
-            Process.Start(psi).WaitForExit();
-        }
-
-
-        #endregion
-    }
-}

+ 0 - 55
frameworks/CSharp/servicestack/src/SelfHost/AppSelfHost.cs

@@ -1,55 +0,0 @@
-using System;
-using System.Linq;
-using System.Collections.Generic;
-using ServiceStack;
-using ServiceStack.CacheAccess;
-using ServiceStack.CacheAccess.Providers;
-using ServiceStack.Common;
-using ServiceStack.Common.Web;
-using ServiceStack.Redis;
-using ServiceStack.ServiceHost;
-using ServiceStack.WebHost.Endpoints;
-using ServiceStack.WebHost.Endpoints.Formats;
-
-namespace ServiceStackBenchmark
-{
-    public class AppSelfHost : AppHostHttpListenerBase
-    {
-
-        public AppSelfHost() : base("ServiceStackBenchmark", typeof(AppHost).Assembly) { }
-
-        public override void Configure(Funq.Container container)
-        {
-            ServiceStack.Text.JsConfig.EmitCamelCaseNames = true;
-
-            // Remove some unused features that by default are included
-            Plugins.RemoveAll(p => p is CsvFormat);
-            Plugins.RemoveAll(p => p is MetadataFeature);
-
-            // Get disable features specified in Config file (i.e. Soap, Metadata, etc.)
-            var disabled = AppHostConfigHelper.GetDisabledFeatures();
-
-            // Construct Service Endpoint Host Configuration store
-            var config = new EndpointHostConfig
-            {
-                DefaultContentType = ContentType.Json,
-                WriteErrorsToResponse = false,
-                EnableFeatures = Feature.All.Remove(disabled),
-                AppendUtf8CharsetOnContentTypes = new HashSet<string> { ContentType.Html },
-            };
-
-            // Apply configuration
-            SetConfig(config);
-
-            // Initialize Databases & associated Routes
-            container.InitDatabaseRoutes(Routes);
-
-            // Register Cache Clients
-            container.Register<ICacheClient>(new MemoryCacheClient());
-
-            // Register Redis Client Manager
-            container.Register<IRedisClientsManager>(c =>
-                new PooledRedisClientManager("localhost:6379"));
-        }
-    }
-}

+ 0 - 37
frameworks/CSharp/servicestack/src/SelfHost/Program.cs

@@ -1,37 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-
-using ServiceStackBenchmark;
-
-namespace ServiceStackBenchmark.SelfHost
-{
-    class Program
-    {
-        static void Main(string[] args)
-        {
-            var listeningOn = args.Length == 0 ? "http://*:1337/" : args[0];
-
-            using (var appHost = new AppSelfHost())
-            {
-                try
-                {
-                    appHost.Init();
-
-                    // TODO: switch to Start after the next ServiceStack deployment (added to framework on commit #806)
-                    appHost.StartListening(listeningOn);
-                }
-                catch (Exception ex)
-                {
-                    Console.WriteLine("ERROR: {0}: {1}", ex.GetType().Name, ex.Message);
-                }
-                finally
-                {
-                    appHost.Stop();
-                }
-            }
-
-            Console.WriteLine("AppHost has finished");
-        }
-    }
-}

+ 0 - 36
frameworks/CSharp/servicestack/src/SelfHost/Properties/AssemblyInfo.cs

@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("ServiceStackBenchmark.SelfHost")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("ServiceStackBenchmark.SelfHost")]
-[assembly: AssemblyCopyright("Copyright ©  2013")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("0c254029-d754-40d1-a2a6-4c0ef648417f")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers 
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]

+ 0 - 154
frameworks/CSharp/servicestack/src/SelfHost/ServiceStackBenchmark.SelfHost.csproj

@@ -1,154 +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>
-    <ProjectGuid>{64B2E432-0D03-40CE-9086-81FC7190D9A3}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>ServiceStackBenchmark.SelfHost</RootNamespace>
-    <AssemblyName>ServiceStackBenchmark.SelfHost</AssemblyName>
-    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\src\</SolutionDir>
-    <RestorePackages>true</RestorePackages>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <PlatformTarget>AnyCPU</PlatformTarget>
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <PlatformTarget>AnyCPU</PlatformTarget>
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup>
-    <ApplicationManifest>app.manifest</ApplicationManifest>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
-    <DebugSymbols>true</DebugSymbols>
-    <OutputPath>bin\x86\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <DebugType>full</DebugType>
-    <PlatformTarget>x86</PlatformTarget>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
-    <Prefer32Bit>true</Prefer32Bit>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
-    <OutputPath>bin\x86\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <Optimize>true</Optimize>
-    <DebugType>pdbonly</DebugType>
-    <PlatformTarget>x86</PlatformTarget>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
-    <Prefer32Bit>true</Prefer32Bit>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
-    <DebugSymbols>true</DebugSymbols>
-    <OutputPath>bin\x64\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <DebugType>full</DebugType>
-    <PlatformTarget>x64</PlatformTarget>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
-    <Prefer32Bit>true</Prefer32Bit>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
-    <OutputPath>bin\x64\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <Optimize>true</Optimize>
-    <DebugType>pdbonly</DebugType>
-    <PlatformTarget>x64</PlatformTarget>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
-    <Prefer32Bit>true</Prefer32Bit>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="ServiceStack, Version=3.9.59.0, Culture=neutral, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\lib\ServiceStack.3.9.59\lib\net35\ServiceStack.dll</HintPath>
-    </Reference>
-    <Reference Include="ServiceStack.Common, Version=3.9.59.0, Culture=neutral, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\lib\ServiceStack.Common.3.9.59\lib\net35\ServiceStack.Common.dll</HintPath>
-    </Reference>
-    <Reference Include="ServiceStack.Interfaces, Version=3.9.59.0, Culture=neutral, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\lib\ServiceStack.Common.3.9.59\lib\net35\ServiceStack.Interfaces.dll</HintPath>
-    </Reference>
-    <Reference Include="ServiceStack.OrmLite, Version=3.9.59.0, Culture=neutral, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\lib\ServiceStack.OrmLite.SqlServer.3.9.59\lib\ServiceStack.OrmLite.dll</HintPath>
-    </Reference>
-    <Reference Include="ServiceStack.OrmLite.SqlServer, Version=3.9.59.0, Culture=neutral, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\lib\ServiceStack.OrmLite.SqlServer.3.9.59\lib\ServiceStack.OrmLite.SqlServer.dll</HintPath>
-    </Reference>
-    <Reference Include="ServiceStack.Redis, Version=3.9.59.0, Culture=neutral, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\lib\ServiceStack.Redis.3.9.59\lib\net35\ServiceStack.Redis.dll</HintPath>
-    </Reference>
-    <Reference Include="ServiceStack.ServiceInterface, Version=3.9.59.0, Culture=neutral, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\lib\ServiceStack.3.9.59\lib\net35\ServiceStack.ServiceInterface.dll</HintPath>
-    </Reference>
-    <Reference Include="ServiceStack.Text, Version=3.9.59.0, Culture=neutral, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\lib\ServiceStack.Text.3.9.59\lib\net35\ServiceStack.Text.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Data.DataSetExtensions" />
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="AppHostSelfHelper.cs" />
-    <Compile Include="AppSelfHost.cs" />
-    <Compile Include="Program.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="App.config" />
-    <None Include="app.manifest" />
-    <None Include="packages.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\ServiceStackBenchmark.csproj">
-      <Project>{80cf41ab-455b-4eb9-bfcc-3f8c4e1d8354}</Project>
-      <Name>ServiceStackBenchmark</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <AvailableItemName Include="RootContent">
-      <Visible>false</Visible>
-    </AvailableItemName>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Target Name="AfterBuild">
-    <Copy DestinationFolder="$(OutputPath)" SourceFiles="@(RootContent)" SkipUnchangedFiles="true" />
-  </Target>
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>

+ 0 - 55
frameworks/CSharp/servicestack/src/SelfHost/app.manifest

@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <assemblyIdentity version="1.0.0.0" name="ServiceStackBenchmark.SelfHost"/>
-  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
-    <security>
-      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
-        <!-- UAC Manifest Options
-            If you want to change the Windows User Account Control level replace the 
-            requestedExecutionLevel node with one of the following.
-
-        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
-        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
-        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
-
-            Specifying requestedExecutionLevel node will disable file and registry virtualization.
-            If you want to utilize File and Registry Virtualization for backward 
-            compatibility then delete the requestedExecutionLevel node.
-        -->
-        <!-- requestedExecutionLevel level="requireAdministrator" uiAccess="true" / -->
-      </requestedPrivileges>
-    </security>
-  </trustInfo>
-
-  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
-    <application>
-      <!-- A list of all Windows versions that this application is designed to work with. 
-      Windows will automatically select the most compatible environment.-->
-
-      <!-- If your application is designed to work with Windows Vista, uncomment the following supportedOS node-->
-      <!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"></supportedOS>-->
-
-      <!-- If your application is designed to work with Windows 7, uncomment the following supportedOS node-->
-      <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>-->
-
-      <!-- If your application is designed to work with Windows 8, uncomment the following supportedOS node-->
-      <!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"></supportedOS>-->
-
-    </application>
-  </compatibility>
-
-  <!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
-  <!-- <dependency>
-    <dependentAssembly>
-      <assemblyIdentity
-          type="win32"
-          name="Microsoft.Windows.Common-Controls"
-          version="6.0.0.0"
-          processorArchitecture="*"
-          publicKeyToken="6595b64144ccf1df"
-          language="*"
-        />
-    </dependentAssembly>
-  </dependency>-->
-
-</asmv1:assembly>

+ 0 - 8
frameworks/CSharp/servicestack/src/SelfHost/packages.config

@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="ServiceStack" version="5.9.2" targetFramework="net45" />
-  <package id="ServiceStack.Common" version="3.9.59" targetFramework="net45" />
-  <package id="ServiceStack.OrmLite.SqlServer" version="3.9.59" targetFramework="net45" />
-  <package id="ServiceStack.Redis" version="3.9.59" targetFramework="net45" />
-  <package id="ServiceStack.Text" version="3.9.59" targetFramework="net45" />
-</packages>

+ 0 - 172
frameworks/CSharp/servicestack/src/Service/MongoDBService.cs

@@ -1,172 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-
-using ServiceStack.Common;
-using ServiceStack.ServiceHost;
-using ServiceStack.ServiceInterface;
-
-using ServiceStackBenchmark.Model;
-
-using MongoDB.Bson;
-using MongoDB.Driver.Builders;
-using MongoDB.Driver;
-
-namespace ServiceStackBenchmark
-{
-
-    #region MongoDB Service Requests
-
-    [Api("Test #2 using Service Stack and MongoDB")]
-    public class MongoDBDbRequest : IReturn<World>
-    { }
-
-    [Api("Test #3 using Service Stack and MongoDB")]
-    public class MongoDBQueriesRequest : IReturn<List<World>>
-    {
-        [ApiMember(Name = "queries", Description = "Number of Queries to Execute", DataType = "int", IsRequired = true)]
-        [ApiAllowableValues("queries", 1, 500)]
-        public int queries { get; set; }
-    }
-
-    [Api("Test #4 using Service Stack, and MongoDB")]
-    public class MongoDBFortunesRequest : IReturn<List<Fortune>>
-    { }
-
-    [Api("Test #5 using Service Stack, and MongoDB")]
-    public class MongoDBUpdatesRequest : IReturn<List<World>>
-    {
-        [ApiMember(Name = "queries", Description = "Number of Queries to Execute", DataType = "int", IsRequired = true)]
-        [ApiAllowableValues("queries", 1, 500)]
-        public int queries { get; set; }
-    }
-
-    [Api("Test #7 using Service Stack, and MongoDB with Caching")]
-    public class MongoDBCachedDbRequest : IReturn<World>
-    { }
-
-    #endregion
-
-    /// <summary>Service Stack tests using MongoDB provider</summary>
-    public class MongoDBService : Service
-    {
-        private const string dbType = "MongoDB";
-
-        #region Public Properties
-
-        public MongoDatabase db { get; set; }
-
-        #endregion
-
-        #region Public Service Methods
-
-        public object Get(MongoDBDbRequest request)
-        {
-            // get a random world id
-            var id = SafeRandom.Instance.Next(0, 10000) + 1;
-
-            // retrieve world from database
-            return db.GetWorld(id);
-        }
-
-        public object Get(MongoDBQueriesRequest request)
-        {
-            // limit queries to be between 1 and 500 iterations
-            var worldCount = Math.Max(1, Math.Min(500, (int)request.queries));
-
-            // concurrently create a list of random world ids to retrieve
-            var ids = new List<int>();
-            Parallel.For(0, worldCount, i =>
-            {
-                lock (ids)
-                {
-                    ids.Add(SafeRandom.Instance.Next(0, 10000) + 1);
-                }
-            });
-
-            // retrieve worlds associated with ids
-            return db.GetWorlds(ids);
-        }
-
-        [AddHeader(ContentType = ServiceStack.Common.Web.ContentType.Html)]
-        public object Get(MongoDBFortunesRequest request)
-        {
-            // retrieve fortunes from database
-            var fortunes = db.GetFortunes();
-
-            // add additional fortune record
-            fortunes.Add(new Fortune { id = 0, message = "Additional fortune added at request time." });
-
-            // sort fortunes
-            fortunes.Sort();
-
-            // construct HTML page using template and return
-            return FortuneMethods.ToHtml(fortunes);
-        }
-
-        public object Get(MongoDBUpdatesRequest request)
-        {
-            // limit queries to be between 1 and 500 iterations
-            var worldCount = Math.Max(1, Math.Min(500, (int)request.queries));
-
-            // concurrently create a list of random world ids to update
-            var ids = new List<int>(worldCount);
-            Parallel.For(0, worldCount, i =>
-            {
-                lock (ids)
-                {
-                    ids.Add(SafeRandom.Instance.Next(0, 10000) + 1);
-                }
-            });
-
-            // purge cache client
-            Cache.FlushAll();
-
-            // update the worlds
-            return db.UpdateWorlds(ids, 10000);
-        }
-
-        public object Get(MongoDBCachedDbRequest request)
-        {
-            // get a random world id
-            var id = SafeRandom.Instance.Next(0, 10000) + 1;
-
-            // create the cache key for the random world id
-            var cacheKey = UrnId.CreateWithParts<World>(new string[] { dbType, id.ToString() });
-
-            // if world is cached, return it
-            var world = Cache.Get<World>(cacheKey);
-            if (world != null)
-                return world;
-
-            // get all of the worlds form the database            
-            var worlds = db.GetWorlds();
-
-            // construct a cache dictionary
-            var cacheDict = new Dictionary<string, World>();
-            Parallel.ForEach(worlds, w =>
-            {
-                // collect the current result
-                if (w.id == id)
-                    world = w;
-
-                // add world to cache dictionary
-                var key = UrnId.CreateWithParts<World>(new string[] { dbType, w.id.ToString() });
-                lock (cacheDict)
-                {
-                    cacheDict.Add(key, w);
-                }
-            });
-
-            // populate cache
-            Cache.SetAll<World>(cacheDict);
-
-            // return current request
-            return world;
-        }
-
-        #endregion
-    }
-
-}

+ 0 - 186
frameworks/CSharp/servicestack/src/Service/MySqlService.cs

@@ -1,186 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-
-using ServiceStack.Common;
-using ServiceStack.ServiceHost;
-using ServiceStack.ServiceInterface;
-
-using ServiceStackBenchmark.Model;
-
-namespace ServiceStackBenchmark
-{
-
-    #region MySQL Service Requests
-
-    [Api("Test #2 using Service Stack, ORMLite, and MySQL")]
-    public class MySqlDbRequest : IReturn<World>
-    { }
-
-    [Api("Test #3 using Service Stack, ORMLite, and MySQL")]
-    public class MySqlQueriesRequest : IReturn<List<World>>
-    {
-        [ApiMember(Name = "queries", Description = "Number of Queries to Execute", DataType = "int", IsRequired = true)]
-        [ApiAllowableValues("queries", 1, 500)]
-        public int queries { get; set; }
-    }
-
-    [Api("Test #4 using Service Stack, ORMLite, and MySQL")]
-    public class MySqlFortunesRequest : IReturn<List<Fortune>>
-    { }
-
-    [Api("Test #5 using Service Stack, ORMLite, and MySQL")]
-    public class MySqlUpdatesRequest : IReturn<List<World>>
-    {
-        [ApiMember(Name = "queries", Description = "Number of Queries to Execute", DataType = "int", IsRequired = true)]
-        [ApiAllowableValues("queries", 1, 500)]
-        public int queries { get; set; }
-    }
-
-    [Api("Test #7 using Service Stack, ORMLite, and MySQL with Caching")]
-    public class MySqlCachedDbRequest : IReturn<World>
-    { }
-
-    #endregion
-
-    /// <summary>Service Stack tests using MySQL provider and ORMLite</summary>
-    public class MySqlService : Service
-    {
-        private const string dbType = "MySql";
-
-        #region Public Properties
-
-        public IMySqlOrmLiteConnectionFactory dbFactory { get; set; }
-
-        #endregion
-
-        #region Public Service Methods
-
-        public object Get(MySqlDbRequest request)
-        {
-            // get a random world id
-            var id = SafeRandom.Instance.Next(0, 10000) + 1;
-
-            // retrieve world from database
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                return db.GetWorld(id);
-            }
-        }
-
-        public object Get(MySqlQueriesRequest request)
-        {
-            // limit queries to be between 1 and 500 iterations
-            var worldCount = Math.Max(1, Math.Min(500, (int)request.queries));
-
-            // concurrently create a list of random world ids to retrieve
-            var ids = new List<int>();
-            Parallel.For(0, worldCount, i =>
-            {
-                lock (ids)
-                {
-                    ids.Add(SafeRandom.Instance.Next(0, 10000) + 1);
-                }
-            });
-
-            // retrieve worlds associated with ids
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                return db.GetWorlds(ids);
-            }
-        }
-
-        [AddHeader(ContentType = ServiceStack.Common.Web.ContentType.Html)]
-        public object Get(MySqlFortunesRequest request)
-        {
-            var fortunes = new List<Fortune>();
-
-            // retrieve fortunes from database
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                fortunes = db.GetFortunes();
-            }
-
-            // add additional fortune record
-            fortunes.Add(new Fortune { id = 0, message = "Additional fortune added at request time." });
-
-            // sort fortunes
-            fortunes.Sort();
-
-            // construct HTML page using template and return
-            return FortuneMethods.ToHtml(fortunes);
-        }
-
-        public object Get(MySqlUpdatesRequest request)
-        {
-            // limit queries to be between 1 and 500 iterations
-            var worldCount = Math.Max(1, Math.Min(500, (int)request.queries));
-
-            // concurrently create a list of random world ids to update
-            var ids = new List<int>(worldCount);
-            Parallel.For(0, worldCount, i =>
-            {
-                lock (ids)
-                {
-                    ids.Add(SafeRandom.Instance.Next(0, 10000) + 1);
-                }
-            });
-
-            // purge cache client
-            Cache.FlushAll();
-
-            // update the worlds
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                return db.UpdateWorlds(ids);
-            }
-        }
-
-        public object Get(MySqlCachedDbRequest request)
-        {
-            // get a random world id
-            var id = SafeRandom.Instance.Next(0, 10000) + 1;
-
-            // create the cache key for the random world id
-            var cacheKey = UrnId.CreateWithParts<World>(new string[] { dbType, id.ToString() });
-
-            // if world is cached, return it
-            var world = Cache.Get<World>(cacheKey);
-            if (world != null)
-                return world;
-
-            // get all of the worlds form the database
-            List<World> worlds;
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                worlds = db.GetWorlds();
-            }
-
-            // construct a cache dictionary
-            var cacheDict = new Dictionary<string, World>();
-            Parallel.ForEach(worlds, w =>
-            {
-                // collect the current result
-                if (w.id == id)
-                    world = w;
-
-                // add world to cache dictionary
-                var key = UrnId.CreateWithParts<World>(new string[] { dbType, w.id.ToString() });
-                lock (cacheDict)
-                {
-                    cacheDict.Add(key, w);
-                }
-            });
-
-            // populate cache
-            Cache.SetAll<World>(cacheDict);
-
-            // return current request
-            return world;
-        }
-
-        #endregion
-    }
-
-}

+ 0 - 187
frameworks/CSharp/servicestack/src/Service/PostgreSqlService.cs

@@ -1,187 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-
-using ServiceStack.CacheAccess;
-using ServiceStack.Common;
-using ServiceStack.ServiceHost;
-using ServiceStack.ServiceInterface;
-
-using ServiceStackBenchmark.Model;
-
-namespace ServiceStackBenchmark
-{
-
-    #region PostgreSQL Service Requests
-
-    [Api("Test #2 using Service Stack, ORMLite, and PostgreSQL")]
-    public class PostgreSqlDbRequest : IReturn<World>
-    { }
-
-    [Api("Test #3 using Service Stack, ORMLite, and PostgreSQL")]
-    public class PostgreSqlQueriesRequest : IReturn<List<World>>
-    {
-        [ApiMember(Name = "queries", Description = "Number of Queries to Execute", DataType = "int", IsRequired = true)]
-        [ApiAllowableValues("queries", 1, 500)]
-        public int queries { get; set; }
-    }
-
-    [Api("Test #4 using Service Stack, ORMLite, and PostgreSQL")]
-    public class PostgreSqlFortunesRequest : IReturn<List<Fortune>>
-    { }
-
-    [Api("Test #5 using Service Stack, ORMLite, and PostgreSQL")]
-    public class PostgreSqlUpdatesRequest : IReturn<List<World>>
-    {
-        [ApiMember(Name = "queries", Description = "Number of Queries to Execute", DataType = "int", IsRequired = true)]
-        [ApiAllowableValues("queries", 1, 500)]
-        public int queries { get; set; }
-    }
-
-    [Api("Test #7 using Service Stack, ORMLite, and PostgreSQL with Caching")]
-    public class PostgreSqlCachedDbRequest : IReturn<World>
-    { }
-
-    #endregion
-
-    /// <summary>Service Stack tests using PostgreSQL provider and ORMLite</summary>
-    public class PostgreSqlService : Service
-    {
-        private const string dbType = "PgSql";
-
-        #region Public Properties
-
-        public IPostgreSqlOrmLiteConnectionFactory dbFactory { get; set; }
-
-        #endregion
-
-        #region Public Service Methods
-
-        public object Get(PostgreSqlDbRequest request)
-        {
-            // get a random world id
-            var id = SafeRandom.Instance.Next(0, 10000) + 1;
-
-            // retrieve world from database
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                return db.GetWorld(id);
-            }
-        }
-
-        public object Get(PostgreSqlQueriesRequest request)
-        {
-            // limit queries to be between 1 and 500 iterations
-            var worldCount = Math.Max(1, Math.Min(500, (int)request.queries));
-
-            // concurrently create a list of random world ids to retrieve
-            var ids = new List<int>();
-            Parallel.For(0, worldCount, i =>
-            {
-                lock (ids)
-                {
-                    ids.Add(SafeRandom.Instance.Next(0, 10000) + 1);
-                }
-            });
-
-            // retrieve worlds associated with ids
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                return db.GetWorlds(ids);
-            }
-        }
-
-        [AddHeader(ContentType = ServiceStack.Common.Web.ContentType.Html)]
-        public object Get(PostgreSqlFortunesRequest request)
-        {
-            var fortunes = new List<Fortune>();
-
-            // retrieve fortunes from database
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                fortunes = db.GetFortunes();
-            }
-
-            // add additional fortune record
-            fortunes.Add(new Fortune { id = 0, message = "Additional fortune added at request time." });
-
-            // sort fortunes
-            fortunes.Sort();
-
-            // construct HTML page using template and return
-            return FortuneMethods.ToHtml(fortunes);
-        }
-
-        public object Get(PostgreSqlUpdatesRequest request)
-        {
-            // limit queries to be between 1 and 500 iterations
-            var worldCount = Math.Max(1, Math.Min(500, (int)request.queries));
-
-            // concurrently create a list of random world ids to update
-            var ids = new List<int>(worldCount);
-            Parallel.For(0, worldCount, i =>
-            {
-                lock (ids)
-                {
-                    ids.Add(SafeRandom.Instance.Next(0, 10000) + 1);
-                }
-            });
-
-            // purge cache client
-            Cache.FlushAll();
-
-            // update the worlds
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                return db.UpdateWorlds(ids);
-            }
-        }
-
-        public object Get(PostgreSqlCachedDbRequest request)
-        {
-            // get a random world id
-            var id = SafeRandom.Instance.Next(0, 10000) + 1;
-
-            // create the cache key for the random world id
-            var cacheKey = UrnId.CreateWithParts<World>(new string[] { dbType, id.ToString() });
-
-            // if world is cached, return it
-            var world = Cache.Get<World>(cacheKey);
-            if (world != null)
-                return world;
-
-            // get all of the worlds form the database
-            List<World> worlds;
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                worlds = db.GetWorlds();
-            }
-
-            // construct a cache dictionary
-            var cacheDict = new Dictionary<string, World>();
-            Parallel.ForEach(worlds, w =>
-            {
-                // collect the current result
-                if (w.id == id)
-                    world = w;
-
-                // add world to cache dictionary
-                var key = UrnId.CreateWithParts<World>(new string[] { dbType, w.id.ToString() });
-                lock (cacheDict)
-                {
-                    cacheDict.Add(key, w);
-                }
-            });
-
-            // populate cache
-            Cache.SetAll<World>(cacheDict);
-
-            // return current request
-            return world;
-        }
-
-        #endregion
-    }
-
-}

+ 0 - 99
frameworks/CSharp/servicestack/src/Service/Services.cs

@@ -1,99 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-
-using ServiceStack.CacheAccess;
-using ServiceStack.CacheAccess.Providers;
-using ServiceStack.CacheAccess.Memcached;
-using ServiceStack.CacheAccess.AwsDynamoDb;
-using ServiceStack.CacheAccess.Azure;
-using ServiceStack.Common.Web;
-using ServiceStack.Redis;
-using ServiceStack.ServiceHost;
-using ServiceStack.ServiceInterface;
-
-namespace ServiceStackBenchmark
-{
-
-    #region Hello World Services
-
-    [Api("Test #1 (JSON serialization) using Service Stack")]
-    [Route("/json", "GET")]
-    public class JsonRequest { }
-
-    public class JsonService : Service
-    {
-        public object Get(JsonRequest request)
-        {
-            var response = new { message = "Hello, World!" };
-            return response;
-        }
-    }
-
-    [Api("Test #6 (Plaintext) using Service Stack")]
-    [Route("/plaintext", "GET")]
-    public class PlainTextRequest { }
-
-    public class PlainTextService : Service
-    {
-        public object Get(PlainTextRequest request)
-        {
-            var response = new HttpResult("Hello, World!", "text/plain");
-            return response;
-        }
-    }
-
-
-    [Api("Set Cache Provider")]
-    [Route("/cacheprovider/{provider}", "GET")]
-    public class SetCacheProviderRequest 
-    {
-        [ApiMember(Name ="provider", Description = "Cache Provider", DataType = "string", IsRequired = true)]
-        [ApiAllowableValues("provider", new string[] { "inmem", "memcache", "redis", "aws", "azure" })]
-        public string provider { get; set; }    
-    }
-
-    public class CacheProviderService : Service
-    {
-        public object Any(SetCacheProviderRequest request)
-        {
-            try
-            {
-                switch (request.provider)
-                {
-                    case "memcache":
-                        var memcache = new MemcachedClientCache();
-                        AppHost.Instance.Container.Register<ICacheClient>(memcache);
-                        return new HttpResult("Cache Provider switched to MemCache.");
-
-                    case "redis":
-                        AppHost.Instance.Container.Register<ICacheClient>(c => c.Resolve<IRedisClientsManager>().GetCacheClient());
-                        return new HttpResult("Cache Provider switched to Redis.");
-
-                    case "aws":
-                        var aws = new DynamoDbCacheClient("", "", Amazon.RegionEndpoint.APSoutheast1);
-                        AppHost.Instance.Container.Register<ICacheClient>(aws);
-                        return new HttpResult("Cache Provider switched to Amazon Web Service DynamoDb Cache Client.");
-
-                    case "azure":
-                        AppHost.Instance.Container.Register<ICacheClient>(new AzureCacheClient("default"));
-                        return new HttpResult("Cache Provider switched to Microsoft Azure Cache Client.");
-
-                    default:
-                        AppHost.Instance.Container.Register<ICacheClient>(new MemoryCacheClient());
-                        return new HttpResult("Cache Provider switched to In-Memory Cache Client.");
-                }
-            }
-            catch
-            {
-                throw;
-            }
-        }
-    }
-
-
-    #endregion
-
-
-
-}

+ 0 - 187
frameworks/CSharp/servicestack/src/Service/SqlServerService.cs

@@ -1,187 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-
-using ServiceStack.Common;
-using ServiceStack.ServiceHost;
-using ServiceStack.ServiceInterface;
-
-using ServiceStackBenchmark.Model;
-
-namespace ServiceStackBenchmark
-{
-
-    #region Microsoft SQL Server Service Requests
-
-    [Api("Test #2 using Service Stack, ORMLite, and Microsoft SQL Server")]
-    public class SqlServerDbRequest : IReturn<World>
-    { }
-
-    [Api("Test #3 using Service Stack, ORMLite, and Microsoft SQL Server")]
-    public class SqlServerQueriesRequest : IReturn<List<World>>
-    {
-        [ApiMember(Name = "queries", Description = "Number of Queries to Execute", DataType = "int", IsRequired = true)]
-        [ApiAllowableValues("queries", 1, 500)]
-        public int queries { get; set; }
-    }
-
-    [Api("Test #4 using Service Stack, ORMLite, and Microsoft SQL Server")]
-    public class SqlServerFortunesRequest : IReturn<List<Fortune>>
-    { }
-
-    [Api("Test #5 using Service Stack, ORMLite, and Microsoft SQL Server")]
-    public class SqlServerUpdatesRequest : IReturn<List<World>>
-    {
-        [ApiMember(Name = "queries", Description = "Number of Queries to Execute", DataType = "int", IsRequired = true)]
-        [ApiAllowableValues("queries", 1, 500)]
-        public int queries { get; set; }
-    }
-
-    [Api("Test #7 using Service Stack, ORMLite, and Microsoft SQL Server with Caching")]
-    public class SqlServerCachedDbRequest : IReturn<World>
-    { }
-
-    #endregion
-
-    /// <summary>Service Stack tests using Microsoft SQL Server provider and ORMLite</summary>
-    public class SqlServerService : Service
-    {
-        private const string dbType = "SqlSrvr";
-
-        #region Public Properties
-
-        public ISqlServerOrmLiteConnectionFactory dbFactory { get; set; }
-
-        #endregion
-
-        #region Public Service Methods
-
-        public object Get(SqlServerDbRequest request)
-        {
-            // get a random world id
-            var id = SafeRandom.Instance.Next(0, 10000) + 1;
-
-            // retrieve world from database
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                return db.GetWorld(id);
-            }
-        }
-
-        public object Get(SqlServerQueriesRequest request)
-        {
-            // limit queries to be between 1 and 500 iterations
-            var worldCount = Math.Max(1, Math.Min(500, (int)request.queries));
-
-            // concurrently create a list of random world ids to retrieve
-            var ids = new List<int>();
-            Parallel.For(0, worldCount, i =>
-            {
-                lock (ids)
-                {
-                    ids.Add(SafeRandom.Instance.Next(0, 10000) + 1);
-                }
-            });
-
-            // retrieve worlds associated with ids
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                return db.GetWorlds(ids);
-            }
-        }
-
-        [AddHeader(ContentType = ServiceStack.Common.Web.ContentType.Html)]
-        public object Get(SqlServerFortunesRequest request)
-        {
-            var fortunes = new List<Fortune>();
-
-            // retrieve fortunes from database
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                fortunes = db.GetFortunes();
-            }
-
-            // add additional fortune record
-            fortunes.Add(new Fortune { id = 0, message = "Additional fortune added at request time." });
-
-            // sort fortunes
-            fortunes.Sort();
-
-            // construct HTML page using template and return
-            return FortuneMethods.ToHtml(fortunes);
-        }
-
-        public object Get(SqlServerUpdatesRequest request)
-        {
-            // limit queries to be between 1 and 500 iterations
-            var worldCount = Math.Max(1, Math.Min(500, (int)request.queries));
-
-            // concurrently create a list of random world ids to update
-            var ids = new List<int>(worldCount);
-            Parallel.For(0, worldCount, i =>
-            {
-                lock (ids)
-                {
-                    ids.Add(SafeRandom.Instance.Next(0, 10000) + 1);
-                }
-            });
-
-            // purge cache client
-            Cache.FlushAll();
-
-            // update the worlds
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                return db.UpdateWorlds(ids);
-            }
-        }
-
-        public object Get(SqlServerCachedDbRequest request)
-        {
-            // get a random world id
-            var id = SafeRandom.Instance.Next(0, 10000) + 1;
-
-            // create the cache key for the random world id
-            var cacheKey = UrnId.CreateWithParts<World>(new string[] { dbType, id.ToString() });
-
-            // if world is cached, return it
-            var world = Cache.Get<World>(cacheKey);
-            if (world != null)
-                return world;
-
-            // get all of the worlds form the database
-            List<World> worlds;
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                worlds = db.GetWorlds();
-            }
-
-            // construct a cache dictionary
-            var cacheDict = new Dictionary<string,World>();
-            Parallel.ForEach(worlds, w =>
-                {
-                    // collect the current result
-                    if (w.id == id)
-                        world = w;
-
-                    // add world to cache dictionary
-                    var key = UrnId.CreateWithParts<World>(new string[] { dbType, w.id.ToString() });
-                    lock (cacheDict)
-                    {
-                        cacheDict.Add(key, w);
-                    }
-                });
-
-            // populate cache
-            Cache.SetAll<World>(cacheDict);
-
-            // return current request
-            return world;
-        }
-
-        #endregion
-
-    }
-
-}

+ 0 - 282
frameworks/CSharp/servicestack/src/ServiceStackBenchmark.csproj

@@ -1,282 +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>
-    <ProjectGuid>{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}</ProjectGuid>
-    <ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>ServiceStackBenchmark</RootNamespace>
-    <AssemblyName>ServiceStackBenchmark</AssemblyName>
-    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <TargetFrameworkProfile />
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">.\</SolutionDir>
-    <RestorePackages>false</RestorePackages>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <PlatformTarget>AnyCPU</PlatformTarget>
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <Prefer32Bit>false</Prefer32Bit>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <PlatformTarget>AnyCPU</PlatformTarget>
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <Prefer32Bit>false</Prefer32Bit>
-  </PropertyGroup>
-  <PropertyGroup>
-    <StartupObject />
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
-    <DebugSymbols>true</DebugSymbols>
-    <OutputPath>bin\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <DebugType>full</DebugType>
-    <PlatformTarget>x86</PlatformTarget>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
-    <OutputPath>bin\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <Optimize>true</Optimize>
-    <DebugType>pdbonly</DebugType>
-    <PlatformTarget>x86</PlatformTarget>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
-    <DebugSymbols>true</DebugSymbols>
-    <OutputPath>bin\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <DebugType>full</DebugType>
-    <PlatformTarget>x64</PlatformTarget>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
-    <OutputPath>bin\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <Optimize>true</Optimize>
-    <DebugType>pdbonly</DebugType>
-    <PlatformTarget>x64</PlatformTarget>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="AWSSDK, Version=2.0.0.4, Culture=neutral, PublicKeyToken=9f476d3089b52be3, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\lib\AWSSDK.2.0.0.4-beta\lib\net45\AWSSDK.dll</HintPath>
-    </Reference>
-    <Reference Include="Enyim.Caching">
-      <HintPath>..\lib\EnyimMemcached.2.12\lib\net35\Enyim.Caching.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.ApplicationServer.Caching.Client">
-      <HintPath>..\lib\WindowsAzure.Caching.1.7.0.0\lib\net35-full\Microsoft.ApplicationServer.Caching.Client.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.ApplicationServer.Caching.Core">
-      <HintPath>..\lib\WindowsAzure.Caching.1.7.0.0\lib\net35-full\Microsoft.ApplicationServer.Caching.Core.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Web.DistributedCache">
-      <HintPath>..\lib\WindowsAzure.Caching.1.7.0.0\lib\net35-full\Microsoft.Web.DistributedCache.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.WindowsFabric.Common">
-      <HintPath>..\lib\WindowsAzure.Caching.1.7.0.0\lib\net35-full\Microsoft.WindowsFabric.Common.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.WindowsFabric.Data.Common">
-      <HintPath>..\lib\WindowsAzure.Caching.1.7.0.0\lib\net35-full\Microsoft.WindowsFabric.Data.Common.dll</HintPath>
-    </Reference>
-    <Reference Include="MongoDB.Bson">
-      <HintPath>..\lib\mongocsharpdriver.1.8.2\lib\net35\MongoDB.Bson.dll</HintPath>
-    </Reference>
-    <Reference Include="MongoDB.Driver">
-      <HintPath>..\lib\mongocsharpdriver.1.8.2\lib\net35\MongoDB.Driver.dll</HintPath>
-    </Reference>
-    <Reference Include="Mono.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\lib\Npgsql.2.0.13-beta1\lib\net45\Mono.Security.dll</HintPath>
-    </Reference>
-    <Reference Include="MySql.Data, Version=6.7.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\lib\MySql.Data.6.7.4\lib\net40\MySql.Data.dll</HintPath>
-    </Reference>
-    <Reference Include="Npgsql, Version=2.0.13.91, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\lib\Npgsql.2.0.13-beta1\lib\net45\Npgsql.dll</HintPath>
-    </Reference>
-    <Reference Include="policy.2.0.Npgsql, Version=0.0.0.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\lib\Npgsql.2.0.13-beta1\lib\net45\policy.2.0.Npgsql.dll</HintPath>
-    </Reference>
-    <Reference Include="ServiceStack, Version=3.9.59.0, Culture=neutral, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\lib\ServiceStack.3.9.59\lib\net35\ServiceStack.dll</HintPath>
-    </Reference>
-    <Reference Include="ServiceStack.Api.Swagger, Version=3.9.59.0, Culture=neutral, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\lib\ServiceStack.Api.Swagger.3.9.59\lib\net35\ServiceStack.Api.Swagger.dll</HintPath>
-    </Reference>
-    <Reference Include="ServiceStack.CacheAccess.AwsDynamoDb">
-      <HintPath>..\lib\ServiceStack.Caching.AwsDynamoDb.3.9.55\lib\ServiceStack.CacheAccess.AwsDynamoDb.dll</HintPath>
-    </Reference>
-    <Reference Include="ServiceStack.CacheAccess.Azure">
-      <HintPath>..\lib\ServiceStack.Caching.Azure.3.9.55\lib\ServiceStack.CacheAccess.Azure.dll</HintPath>
-    </Reference>
-    <Reference Include="ServiceStack.CacheAccess.Memcached">
-      <HintPath>..\lib\ServiceStack.Caching.Memcached.3.9.55\lib\ServiceStack.CacheAccess.Memcached.dll</HintPath>
-    </Reference>
-    <Reference Include="ServiceStack.Common, Version=3.9.59.0, Culture=neutral, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\lib\ServiceStack.Common.3.9.59\lib\net35\ServiceStack.Common.dll</HintPath>
-    </Reference>
-    <Reference Include="ServiceStack.Interfaces, Version=3.9.59.0, Culture=neutral, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\lib\ServiceStack.Common.3.9.59\lib\net35\ServiceStack.Interfaces.dll</HintPath>
-    </Reference>
-    <Reference Include="ServiceStack.OrmLite, Version=3.9.59.0, Culture=neutral, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\lib\ServiceStack.OrmLite.SqlServer.3.9.59\lib\ServiceStack.OrmLite.dll</HintPath>
-    </Reference>
-    <Reference Include="ServiceStack.OrmLite.MySql, Version=3.9.59.0, Culture=neutral, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\lib\ServiceStack.OrmLite.MySql.3.9.59\lib\ServiceStack.OrmLite.MySql.dll</HintPath>
-    </Reference>
-    <Reference Include="ServiceStack.OrmLite.PostgreSQL, Version=3.9.59.0, Culture=neutral, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\lib\ServiceStack.OrmLite.PostgreSQL.3.9.59\lib\ServiceStack.OrmLite.PostgreSQL.dll</HintPath>
-    </Reference>
-    <Reference Include="ServiceStack.OrmLite.SqlServer, Version=3.9.59.0, Culture=neutral, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\lib\ServiceStack.OrmLite.SqlServer.3.9.59\lib\ServiceStack.OrmLite.SqlServer.dll</HintPath>
-    </Reference>
-    <Reference Include="ServiceStack.Redis, Version=3.9.59.0, Culture=neutral, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\lib\ServiceStack.Redis.3.9.59\lib\net35\ServiceStack.Redis.dll</HintPath>
-    </Reference>
-    <Reference Include="ServiceStack.ServiceInterface, Version=3.9.59.0, Culture=neutral, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\lib\ServiceStack.3.9.59\lib\net35\ServiceStack.ServiceInterface.dll</HintPath>
-    </Reference>
-    <Reference Include="ServiceStack.Text, Version=3.9.59.0, Culture=neutral, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\lib\ServiceStack.Text.3.9.59\lib\net35\ServiceStack.Text.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.ComponentModel.DataAnnotations" />
-    <Reference Include="System.Configuration" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Data.DataSetExtensions" />
-    <Reference Include="System.Runtime.Serialization" />
-    <Reference Include="System.Web" />
-    <Reference Include="System.Web.ApplicationServices" />
-    <Reference Include="System.Web.DynamicData" />
-    <Reference Include="System.Web.Entity" />
-    <Reference Include="System.Web.Extensions" />
-    <Reference Include="System.XML" />
-    <Reference Include="System.Xml.Linq" />
-  </ItemGroup>
-  <ItemGroup>
-    <Content Include="swagger-ui\css\hightlight.default.css" />
-    <Content Include="swagger-ui\css\screen.css" />
-    <Content Include="swagger-ui\images\logo_small.png" />
-    <Content Include="swagger-ui\images\pet_store_api.png" />
-    <Content Include="swagger-ui\images\throbber.gif" />
-    <Content Include="swagger-ui\images\wordnik_api.png" />
-    <Content Include="swagger-ui\index.html" />
-    <Content Include="swagger-ui\lib\backbone-min.js" />
-    <Content Include="swagger-ui\lib\handlebars-1.0.rc.1.js" />
-    <Content Include="swagger-ui\lib\highlight.7.3.pack.js" />
-    <Content Include="swagger-ui\lib\jquery-1.8.0.min.js" />
-    <Content Include="swagger-ui\lib\jquery.ba-bbq.min.js" />
-    <Content Include="swagger-ui\lib\jquery.slideto.min.js" />
-    <Content Include="swagger-ui\lib\jquery.wiggle.min.js" />
-    <Content Include="swagger-ui\lib\swagger.js" />
-    <Content Include="swagger-ui\lib\underscore-min.js" />
-    <Content Include="swagger-ui\swagger-ui.js" />
-    <Content Include="swagger-ui\swagger-ui.min.js" />
-    <Content Include="Web.config">
-      <SubType>Designer</SubType>
-    </Content>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="Properties\PublishProfiles\IIS.pubxml" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="AppHostConfigHelper.cs" />
-    <Compile Include="Model\Fortune.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="SafeRandom.cs" />
-    <Compile Include="Service\MongoDBService.cs" />
-    <Compile Include="Service\MySqlService.cs" />
-    <Compile Include="Service\PostgreSqlService.cs" />
-    <Compile Include="Service\Services.cs" />
-    <Compile Include="DbFactories\MySqlOrmLiteConnectionFactory.cs" />
-    <Compile Include="DbFactories\PostgreSqlOrmLiteConnectionFactory.cs" />
-    <Compile Include="DbFactories\SqlServerOrmLiteConnectionFactory.cs" />
-    <Compile Include="Model\World.cs" />
-    <Compile Include="Service\SqlServerService.cs" />
-    <Content Include="Global.asax" />
-    <Compile Include="AppHost.cs" />
-    <Compile Include="Global.asax.cs">
-      <DependentUpon>Global.asax</DependentUpon>
-    </Compile>
-    <Compile Include="DbFactories\ISqlServerOrmLiteConnectionFactory.cs" />
-    <Compile Include="DbFactories\IMySqlOrmLiteConnectionFactory.cs" />
-    <Compile Include="DbFactories\IPostgreSqlOrmLiteConnectionFactory.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <Content Include="packages.config" />
-    <None Include="Web.Debug.config">
-      <DependentUpon>Web.config</DependentUpon>
-    </None>
-    <None Include="Web.Release.config">
-      <DependentUpon>Web.config</DependentUpon>
-    </None>
-  </ItemGroup>
-  <ItemGroup>
-    <AvailableItemName Include="RootContent">
-      <Visible>false</Visible>
-    </AvailableItemName>
-  </ItemGroup>
-  <ItemGroup />
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <PropertyGroup>
-    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
-    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
-  </PropertyGroup>
-  <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != '' And Exists('$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets')" />
-  <Import Project="..\lib\VisualStudio.MsBuild.11.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' == '' Or !Exists('$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets')" />
-  <Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
-    <AspNetCompiler VirtualPath="/" PhysicalPath="$(WebProjectOutputDir)" />
-  </Target>
-  <Target Name="AfterBuild">
-    <Copy DestinationFolder="$(OutputPath)" SourceFiles="@(RootContent)" SkipUnchangedFiles="true" />
-  </Target>
-  <ProjectExtensions>
-    <VisualStudio>
-      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
-        <WebProjectProperties>
-          <SaveServerSettingsInUserFile>True</SaveServerSettingsInUserFile>
-        </WebProjectProperties>
-      </FlavorProperties>
-    </VisualStudio>
-  </ProjectExtensions>
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <PropertyGroup>
-    <PreBuildEvent>
-    </PreBuildEvent>
-  </PropertyGroup>
-</Project>

+ 0 - 58
frameworks/CSharp/servicestack/src/ServiceStackBenchmark.sln

@@ -1,58 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceStackBenchmark", "ServiceStackBenchmark.csproj", "{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{0C24E4BD-94BD-4AFD-B912-00A5FF825E6B}"
-	ProjectSection(SolutionItems) = preProject
-		NuGet.config = NuGet.config
-	EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{E408A80A-0E70-4FD8-9441-76C90F37D955}"
-	ProjectSection(SolutionItems) = preProject
-		.nuget\NuGet.Config = .nuget\NuGet.Config
-		.nuget\NuGet.exe = .nuget\NuGet.exe
-		.nuget\NuGet.targets = .nuget\NuGet.targets
-	EndProjectSection
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceStackBenchmark.SelfHost", "SelfHost\ServiceStackBenchmark.SelfHost.csproj", "{64B2E432-0D03-40CE-9086-81FC7190D9A3}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Any CPU = Debug|Any CPU
-		Debug|x64 = Debug|x64
-		Debug|x86 = Debug|x86
-		Release|Any CPU = Release|Any CPU
-		Release|x64 = Release|x64
-		Release|x86 = Release|x86
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Debug|x64.Build.0 = Debug|Any CPU
-		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Debug|x86.ActiveCfg = Debug|x86
-		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Debug|x86.Build.0 = Debug|x86
-		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Release|Any CPU.Build.0 = Release|Any CPU
-		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Release|x64.ActiveCfg = Release|x64
-		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Release|x64.Build.0 = Release|x64
-		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Release|x86.ActiveCfg = Release|Any CPU
-		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Release|x86.Build.0 = Release|Any CPU
-		{64B2E432-0D03-40CE-9086-81FC7190D9A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{64B2E432-0D03-40CE-9086-81FC7190D9A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{64B2E432-0D03-40CE-9086-81FC7190D9A3}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{64B2E432-0D03-40CE-9086-81FC7190D9A3}.Debug|x64.Build.0 = Debug|Any CPU
-		{64B2E432-0D03-40CE-9086-81FC7190D9A3}.Debug|x86.ActiveCfg = Debug|x86
-		{64B2E432-0D03-40CE-9086-81FC7190D9A3}.Debug|x86.Build.0 = Debug|x86
-		{64B2E432-0D03-40CE-9086-81FC7190D9A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{64B2E432-0D03-40CE-9086-81FC7190D9A3}.Release|Any CPU.Build.0 = Release|Any CPU
-		{64B2E432-0D03-40CE-9086-81FC7190D9A3}.Release|x64.ActiveCfg = Release|x64
-		{64B2E432-0D03-40CE-9086-81FC7190D9A3}.Release|x64.Build.0 = Release|x64
-		{64B2E432-0D03-40CE-9086-81FC7190D9A3}.Release|x86.ActiveCfg = Release|Any CPU
-		{64B2E432-0D03-40CE-9086-81FC7190D9A3}.Release|x86.Build.0 = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal

+ 0 - 30
frameworks/CSharp/servicestack/src/Web.Debug.config

@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
-
-<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
-  <!--
-    In the example below, the "SetAttributes" transform will change the value of 
-    "connectionString" to use "ReleaseSQLServer" only when the "Match" locator 
-    finds an attribute "name" that has a value of "MyDB".
-    
-    <connectionStrings>
-      <add name="MyDB" 
-        connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" 
-        xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
-    </connectionStrings>
-  -->
-  <system.web>
-    <!--
-      In the example below, the "Replace" transform will replace the entire 
-      <customErrors> section of your web.config file.
-      Note that because there is only one customErrors section under the 
-      <system.web> node, there is no need to use the "xdt:Locator" attribute.
-      
-      <customErrors defaultRedirect="GenericError.htm"
-        mode="RemoteOnly" xdt:Transform="Replace">
-        <error statusCode="500" redirect="InternalError.htm"/>
-      </customErrors>
-    -->
-  </system.web>
-</configuration>

+ 0 - 31
frameworks/CSharp/servicestack/src/Web.Release.config

@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
-
-<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
-  <!--
-    In the example below, the "SetAttributes" transform will change the value of 
-    "connectionString" to use "ReleaseSQLServer" only when the "Match" locator 
-    finds an attribute "name" that has a value of "MyDB".
-    
-    <connectionStrings>
-      <add name="MyDB" 
-        connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" 
-        xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
-    </connectionStrings>
-  -->
-  <system.web>
-    <compilation xdt:Transform="RemoveAttributes(debug)" />
-    <!--
-      In the example below, the "Replace" transform will replace the entire 
-      <customErrors> section of your web.config file.
-      Note that because there is only one customErrors section under the 
-      <system.web> node, there is no need to use the "xdt:Locator" attribute.
-      
-      <customErrors defaultRedirect="GenericError.htm"
-        mode="RemoteOnly" xdt:Transform="Replace">
-        <error statusCode="500" redirect="InternalError.htm"/>
-      </customErrors>
-    -->
-  </system.web>
-</configuration>

+ 0 - 74
frameworks/CSharp/servicestack/src/Web.config

@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-  <configSections>
-    <!-- Append below entry to configSections. Do not overwrite the full section. -->
-    <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
-  </configSections>
-  <connectionStrings>
-    <add name="MongoDB" connectionString="mongodb://tfb-database" />
-    <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" />
-    <!-- Set max pool size to SQL Server's default max_connections value. In practice, we don't seem to be getting close to the max at all. -->
-    <add name="SQLServer" connectionString="server=tfb-database; user id=benchmarkdbuser; password=B3nchmarkDBPass; database=hello_world; max pool size=32767" providerName="System.Data.SqlClient" />
-  </connectionStrings>
-  <appSettings>
-    <!-- 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 40 per logical processor. This seems to be
-         a little conservative as http://support.microsoft.com/kb/821268 recommends 50.-->
-    <add key="minWorkerThreadsPerLogicalProcessor" value="40" />
-    <!-- Disable ServiceStack features -->
-    <add key="DisabledFeatures" value="MetaData, Soap, Soap11, Soap12" />
-    <!-- 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" />
-  </appSettings>
-  <system.web>
-    <customErrors mode="Off" />
-    <compilation debug="false" targetFramework="4.5" />
-    <httpHandlers>
-      <add path="*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" />
-    </httpHandlers>
-  </system.web>
-  <system.webServer>
-    <handlers>
-      <add path="*" name="ServiceStack.Factory" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" preCondition="integratedMode" resourceType="Unspecified" allowPathInfo="true" />
-    </handlers>
-  </system.webServer>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-6.7.4.0" newVersion="6.7.4.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Npgsql" publicKeyToken="5d8b90d52f46fda7" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-2.0.13.91" newVersion="2.0.13.91" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="AWSSDK" publicKeyToken="9f476d3089b52be3" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-2.0.0.4" newVersion="2.0.0.4" />
-      </dependentAssembly>
-    </assemblyBinding>
-  </runtime>  
-  <dataCacheClients>
-    <!-- DynamoDb ACS Cache Provider -->
-    <dataCacheClient name="default">
-      <hosts>
-        <host name="[Insert Cache EndPoint]" cachePort="22233" />
-      </hosts>
-      <securityProperties mode="Message">
-        <messageSecurity authorizationInfo="[Encrypted ACS token goes here]">
-        </messageSecurity>
-      </securityProperties>
-    </dataCacheClient>
-    <dataCacheClient name="SslEndpoint">
-      <hosts>
-        <host name="[Insert Cache EndPoint]" cachePort="22243" />
-      </hosts>
-      <securityProperties mode="Message" sslEnabled="true">
-        <messageSecurity authorizationInfo="[Encrypted ACS token goes here]"></messageSecurity>
-      </securityProperties>
-    </dataCacheClient>
-  </dataCacheClients>
-</configuration>

+ 0 - 23
frameworks/CSharp/servicestack/src/packages.config

@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="AWSSDK" version="2.0.0.4-beta" targetFramework="net45" />
-  <package id="EnyimMemcached" version="2.12" targetFramework="net45" />
-  <package id="mongocsharpdriver" version="1.8.2" targetFramework="net45" />
-  <package id="Microsoft.Bcl" version="1.0.19" targetFramework="net45" />
-  <package id="Microsoft.Bcl.Build" version="1.0.10" targetFramework="net45" />
-  <package id="Microsoft.Net.Http" version="2.1.10" targetFramework="net45" />
-  <package id="MySql.Data" version="6.7.4" targetFramework="net45" />
-  <package id="Npgsql" version="2.0.13-beta1" targetFramework="net45" />
-  <package id="ServiceStack" version="3.9.59" targetFramework="net45" />
-  <package id="ServiceStack.Api.Swagger" version="3.9.59" targetFramework="net45" />
-  <package id="ServiceStack.Caching.AwsDynamoDb" version="3.9.55" targetFramework="net45" />
-  <package id="ServiceStack.Caching.Azure" version="3.9.55" targetFramework="net45" />
-  <package id="ServiceStack.Caching.Memcached" version="3.9.55" targetFramework="net45" />
-  <package id="ServiceStack.Common" version="3.9.59" targetFramework="net45" />
-  <package id="ServiceStack.OrmLite.MySql" version="3.9.59" targetFramework="net45" />
-  <package id="ServiceStack.OrmLite.PostgreSQL" version="3.9.59" targetFramework="net45" />
-  <package id="ServiceStack.OrmLite.SqlServer" version="3.9.59" targetFramework="net45" />
-  <package id="ServiceStack.Redis" version="3.9.59" targetFramework="net45" />
-  <package id="ServiceStack.Text" version="3.9.59" targetFramework="net45" />
-  <package id="WindowsAzure.Caching" version="1.7.0.0" targetFramework="net45" />
-</packages>