mirror of
https://github.com/kataras/iris.git
synced 2026-01-10 05:25:58 +00:00
.NET Core (no mvc) with Sessions vs Iris (no mvc) with Sessions
Former-commit-id: 04a9660645a824dfbc49414605aeff2b3ff88b55
This commit is contained in:
25
_benchmarks/netcore-sessions/Program.cs
Normal file
25
_benchmarks/netcore-sessions/Program.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace netcore_sessions
|
||||
{
|
||||
public class Program
|
||||
{
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
BuildWebHost(args).Run();
|
||||
}
|
||||
|
||||
public static IWebHost BuildWebHost(string[] args) =>
|
||||
WebHost.CreateDefaultBuilder(args)
|
||||
.UseStartup<Startup>()
|
||||
.Build();
|
||||
}
|
||||
}
|
||||
82
_benchmarks/netcore-sessions/Startup.cs
Normal file
82
_benchmarks/netcore-sessions/Startup.cs
Normal file
@@ -0,0 +1,82 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.AspNetCore.Routing;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
|
||||
namespace netcore_sessions
|
||||
{
|
||||
public class Startup
|
||||
{
|
||||
public Startup(IConfiguration configuration)
|
||||
{
|
||||
Configuration = configuration;
|
||||
}
|
||||
|
||||
public IConfiguration Configuration { get; }
|
||||
|
||||
// This method gets called by the runtime. Use this method to add services to the container.
|
||||
public void ConfigureServices(IServiceCollection services)
|
||||
{
|
||||
services.AddRouting();
|
||||
|
||||
// Adds a default in-memory implementation of IDistributedCache.
|
||||
services.AddDistributedMemoryCache();
|
||||
|
||||
services.AddSession(options =>
|
||||
{
|
||||
options.Cookie.Name = ".cookiesession.id";
|
||||
options.Cookie.HttpOnly = true;
|
||||
options.IdleTimeout = TimeSpan.FromMinutes(1);
|
||||
});
|
||||
}
|
||||
|
||||
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
||||
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
|
||||
{
|
||||
var routeBuilder = new RouteBuilder(app);
|
||||
|
||||
routeBuilder.MapGet("setget", context =>{
|
||||
context.Session.SetString("key", "value");
|
||||
|
||||
var value = context.Session.GetString("key");
|
||||
if (String.IsNullOrEmpty(value)) {
|
||||
return context.Response.WriteAsync("NOT_OK");
|
||||
}
|
||||
|
||||
return context.Response.WriteAsync(value);
|
||||
});
|
||||
/*
|
||||
Test them one by one by these methods:
|
||||
|
||||
routeBuilder.MapGet("get", context =>{
|
||||
var value = context.Session.GetString("key");
|
||||
if (String.IsNullOrEmpty(value)) {
|
||||
return context.Response.WriteAsync("NOT_OK");
|
||||
}
|
||||
return context.Response.WriteAsync(value);
|
||||
});
|
||||
|
||||
routeBuilder.MapPost("set", context =>{
|
||||
context.Session.SetString("key", "value");
|
||||
return context.Response.WriteAsync("OK");
|
||||
});
|
||||
|
||||
routeBuilder.MapDelete("del", context =>{
|
||||
context.Session.Remove("key");
|
||||
return context.Response.WriteAsync("OK");
|
||||
});
|
||||
*/
|
||||
|
||||
var routes = routeBuilder.Build();
|
||||
|
||||
app.UseSession();
|
||||
app.UseRouter(routes);
|
||||
}
|
||||
}
|
||||
}
|
||||
8
_benchmarks/netcore-sessions/appsettings.json
Normal file
8
_benchmarks/netcore-sessions/appsettings.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"Logging": {
|
||||
"IncludeScopes": false,
|
||||
"LogLevel": {
|
||||
"Default": "Error"
|
||||
}
|
||||
}
|
||||
}
|
||||
15
_benchmarks/netcore-sessions/netcore-sessions.csproj
Normal file
15
_benchmarks/netcore-sessions/netcore-sessions.csproj
Normal file
@@ -0,0 +1,15 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
Reference in New Issue
Block a user