Skip to content

Commit 83368e1

Browse files
authored
Create a shared services library (#235)
With the current layering, the FrameworkServices and CoreServices libraries have some shared source. This is fine for internal implementations, but for public types, this causes two types to exist. This is not an issue in the main case (i.e. in an application) as they will never depend on each other. However, the problem arises when a user wants to develop an implementation on a shared, public service that would then be consumed by both the framework services and core services. An example is the ISessionKeySerializer, that a user may want to customize for themselves, but the framework and core services have identical interfaces, but in different assemblies. These are logically the same service, and should therefore have the same identity (i.e. same assembly).
1 parent 78a6487 commit 83368e1

22 files changed

+53
-20
lines changed

Microsoft.AspNetCore.SystemWebAdapters.sln

+7
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Samples.MVCApp.Tests", "tes
5959
EndProject
6060
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Samples.RemoteAuth.Forms.Tests", "test\Samples.RemoteAuth.Forms.Tests\Samples.RemoteAuth.Forms.Tests.csproj", "{7C994084-D425-487C-9266-413BB0C22695}"
6161
EndProject
62+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.SystemWebAdapters.Abstractions", "src\Microsoft.AspNetCore.SystemWebAdapters.Abstractions\Microsoft.AspNetCore.SystemWebAdapters.Abstractions.csproj", "{632E6195-4304-4C67-AABB-7CFC3F9086B6}"
63+
EndProject
6264
Global
6365
GlobalSection(SolutionConfigurationPlatforms) = preSolution
6466
Debug|Any CPU = Debug|Any CPU
@@ -133,6 +135,10 @@ Global
133135
{7C994084-D425-487C-9266-413BB0C22695}.Debug|Any CPU.Build.0 = Debug|Any CPU
134136
{7C994084-D425-487C-9266-413BB0C22695}.Release|Any CPU.ActiveCfg = Release|Any CPU
135137
{7C994084-D425-487C-9266-413BB0C22695}.Release|Any CPU.Build.0 = Release|Any CPU
138+
{632E6195-4304-4C67-AABB-7CFC3F9086B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
139+
{632E6195-4304-4C67-AABB-7CFC3F9086B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
140+
{632E6195-4304-4C67-AABB-7CFC3F9086B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
141+
{632E6195-4304-4C67-AABB-7CFC3F9086B6}.Release|Any CPU.Build.0 = Release|Any CPU
136142
EndGlobalSection
137143
GlobalSection(SolutionProperties) = preSolution
138144
HideSolutionNode = FALSE
@@ -159,6 +165,7 @@ Global
159165
{6931FEFB-DC18-4B3F-8AFC-EDA03063A518} = {F9DB9323-C919-49E8-8F96-B923D2F42E60}
160166
{C4F5601D-8D33-4C95-BCFD-EDEF1DC095B4} = {A1BDA50C-D70B-416C-97F1-74B0649797C5}
161167
{7C994084-D425-487C-9266-413BB0C22695} = {A1BDA50C-D70B-416C-97F1-74B0649797C5}
168+
{632E6195-4304-4C67-AABB-7CFC3F9086B6} = {F9DB9323-C919-49E8-8F96-B923D2F42E60}
162169
EndGlobalSection
163170
GlobalSection(ExtensibilityGlobals) = postSolution
164171
SolutionGuid = {DABA3C65-9D74-4EB6-9B1C-730328710EAD}

Microsoft.AspNetCore.SystemWebAdapters.slnf

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"solution": {
33
"path": "Microsoft.AspNetCore.SystemWebAdapters.sln",
44
"projects": [
5+
"src\\Microsoft.AspNetCore.SystemWebAdapters.Abstractions\\Microsoft.AspNetCore.SystemWebAdapters.Abstractions.csproj",
56
"src\\Microsoft.AspNetCore.SystemWebAdapters.CoreServices\\Microsoft.AspNetCore.SystemWebAdapters.CoreServices.csproj",
67
"src\\Microsoft.AspNetCore.SystemWebAdapters.FrameworkServices\\Microsoft.AspNetCore.SystemWebAdapters.FrameworkServices.csproj",
78
"src\\Microsoft.AspNetCore.SystemWebAdapters\\Microsoft.AspNetCore.SystemWebAdapters.csproj",

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ This project provides a collection of adapters that help migrating from `System.
55
- `Microsoft.AspNetCore.SystemWebAdapters`: Subset of the APIs from `System.Web.dll` backed by `Microsoft.AspNetCore.Http` types
66
- `Microsoft.AspNetCore.SystemWebAdapters.CoreServices`: Support for adding services to ASP.NET Core applications to enable migration efforts
77
- `Microsoft.AspNetCore.SystemWebAdapters.FrameworkServices`: Support for adding services to ASP.NET Framework applications to enable migration efforts
8+
- `Microsoft.AspNetCore.SystemWebAdapters.Abstractions`: A collection of abstractions shared between the ASP.NET Core and .NET Framework implementations, such as session serialization interfaces.
89

910
These adapters help enable large scale, incremental migration from ASP.NET to ASP.NET Core. For more details on incremental migration from ASP.NET to ASP.NET Core, please see the [documentation](docs).
1011

samples/MvcApp/MvcApp.csproj

+4
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,10 @@
359359
<Project>{55c1bbe0-b922-46b0-8f2c-8472bc9a5f33}</Project>
360360
<Name>Microsoft.AspNetCore.SystemWebAdapters</Name>
361361
</ProjectReference>
362+
<ProjectReference Include="..\..\src\Microsoft.AspNetCore.SystemWebAdapters.Abstractions\Microsoft.AspNetCore.SystemWebAdapters.Abstractions.csproj">
363+
<Project>{632e6195-4304-4c67-aabb-7cfc3f9086b6}</Project>
364+
<Name>Microsoft.AspNetCore.SystemWebAdapters.Abstractions</Name>
365+
</ProjectReference>
362366
<ProjectReference Include="..\ClassLibrary\ClassLibrary.csproj">
363367
<Project>{11dd4d64-7a95-4635-a273-775715e18852}</Project>
364368
<Name>ClassLibrary</Name>

samples/RemoteAuth/Bearer/RemoteBearer/RemoteBearer.csproj

+4
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,10 @@
216216
<Project>{55c1bbe0-b922-46b0-8f2c-8472bc9a5f33}</Project>
217217
<Name>Microsoft.AspNetCore.SystemWebAdapters</Name>
218218
</ProjectReference>
219+
<ProjectReference Include="..\..\..\..\src\Microsoft.AspNetCore.SystemWebAdapters.Abstractions\Microsoft.AspNetCore.SystemWebAdapters.Abstractions.csproj">
220+
<Project>{632e6195-4304-4c67-aabb-7cfc3f9086b6}</Project>
221+
<Name>Microsoft.AspNetCore.SystemWebAdapters.Abstractions</Name>
222+
</ProjectReference>
219223
</ItemGroup>
220224
<PropertyGroup>
221225
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>

samples/RemoteAuth/Forms/FormsAuth/FormsAuth.csproj

+4
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,10 @@
244244
<Project>{55c1bbe0-b922-46b0-8f2c-8472bc9a5f33}</Project>
245245
<Name>Microsoft.AspNetCore.SystemWebAdapters</Name>
246246
</ProjectReference>
247+
<ProjectReference Include="..\..\..\..\src\Microsoft.AspNetCore.SystemWebAdapters.Abstractions\Microsoft.AspNetCore.SystemWebAdapters.Abstractions.csproj">
248+
<Project>{632e6195-4304-4c67-aabb-7cfc3f9086b6}</Project>
249+
<Name>Microsoft.AspNetCore.SystemWebAdapters.Abstractions</Name>
250+
</ProjectReference>
247251
</ItemGroup>
248252
<PropertyGroup>
249253
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>

samples/RemoteAuth/OIDC/OIDCAuth/OIDCAuth.csproj

+4
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,10 @@
225225
<Project>{55c1bbe0-b922-46b0-8f2c-8472bc9a5f33}</Project>
226226
<Name>Microsoft.AspNetCore.SystemWebAdapters</Name>
227227
</ProjectReference>
228+
<ProjectReference Include="..\..\..\..\src\Microsoft.AspNetCore.SystemWebAdapters.Abstractions\Microsoft.AspNetCore.SystemWebAdapters.Abstractions.csproj">
229+
<Project>{632e6195-4304-4c67-aabb-7cfc3f9086b6}</Project>
230+
<Name>Microsoft.AspNetCore.SystemWebAdapters.Abstractions</Name>
231+
</ProjectReference>
228232
</ItemGroup>
229233
<PropertyGroup>
230234
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFramework>netstandard2.0</TargetFramework>
5+
<IsPackable>true</IsPackable>
6+
<EnablePackageValidation>true</EnablePackageValidation>
7+
<RootNamespace>Microsoft.AspNetCore.SystemWebAdapters</RootNamespace>
8+
</PropertyGroup>
9+
10+
<PropertyGroup Label="Package Information">
11+
<Description>A collection of abstractions to provide support for enabling configuration for Microsoft.AspNetCore.SystemWebAdapters.</Description>
12+
</PropertyGroup>
13+
14+
<ItemGroup>
15+
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="6.0.0" />
16+
</ItemGroup>
17+
18+
<ItemGroup>
19+
<ProjectReference Include="..\Microsoft.AspNetCore.SystemWebAdapters\Microsoft.AspNetCore.SystemWebAdapters.csproj" />
20+
</ItemGroup>
21+
22+
</Project>

src/Services/SessionState/Serialization/ISessionKeySerializer.cs src/Microsoft.AspNetCore.SystemWebAdapters.Abstractions/SessionState/Serialization/ISessionKeySerializer.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public interface ISessionKeySerializer
1010
/// </summary>
1111
/// <param name="key">Session key for object.</param>
1212
/// <param name="value">Object to serialize.</param>,
13-
/// <param name="bytes">Bytes if sucessful.</param>
13+
/// <param name="bytes">Bytes if successful.</param>
1414
/// <returns><c>true</c> if successful. If key is unknown, <c>false</c> will be returned.</returns>
1515
bool TrySerialize(string key, object value, out byte[] bytes);
1616

Original file line numberDiff line numberDiff line change
@@ -1,34 +1,28 @@
11
<Project Sdk="Microsoft.NET.Sdk">
2-
32
<PropertyGroup>
43
<TargetFrameworks>net6.0</TargetFrameworks>
54
<IsPackable>true</IsPackable>
65
<EnablePackageValidation>true</EnablePackageValidation>
76
<RootNamespace>Microsoft.AspNetCore.SystemWebAdapters</RootNamespace>
87
<UseSharedServices>true</UseSharedServices>
98
</PropertyGroup>
10-
119
<PropertyGroup Label="Package Information">
1210
<Description>A collection of services to provide support for enabling configuration for Microsoft.AspNetCore.SystemWebAdapters.</Description>
1311
</PropertyGroup>
14-
1512
<ItemGroup>
1613
<InternalsVisibleTo Include="Microsoft.AspNetCore.SystemWebAdapters.CoreServices.Tests" />
1714
<InternalsVisibleTo Include="DynamicProxyGenAssembly2" Key="0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7" />
1815
</ItemGroup>
19-
2016
<ItemGroup>
2117
<FrameworkReference Include="Microsoft.AspNetCore.App" />
2218
</ItemGroup>
23-
2419
<ItemGroup>
2520
<Using Include="Microsoft.AspNetCore.Http.HttpContext" Alias="HttpContextCore" />
2621
<Using Include="Microsoft.AspNetCore.Http.HttpResponse" Alias="HttpResponseCore" />
2722
<Using Include="Microsoft.AspNetCore.Http.HttpRequest" Alias="HttpRequestCore" />
2823
</ItemGroup>
29-
3024
<ItemGroup>
3125
<ProjectReference Include="..\Microsoft.AspNetCore.SystemWebAdapters\Microsoft.AspNetCore.SystemWebAdapters.csproj" />
26+
<ProjectReference Include="..\Microsoft.AspNetCore.SystemWebAdapters.Abstractions\Microsoft.AspNetCore.SystemWebAdapters.Abstractions.csproj" />
3227
</ItemGroup>
33-
34-
</Project>
28+
</Project>
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
<Project Sdk="Microsoft.NET.Sdk">
2-
32
<PropertyGroup>
43
<TargetFramework>net472</TargetFramework>
54
<IsPackable>true</IsPackable>
@@ -9,35 +8,29 @@
98
<RootNamespace>Microsoft.AspNetCore.SystemWebAdapters</RootNamespace>
109
<UseSharedServices>true</UseSharedServices>
1110
</PropertyGroup>
12-
1311
<PropertyGroup Label="Package Information">
1412
<Description>A collection of services for ASP.NET application to incorporate Microsoft.AspNetCore.SystemWebAdapters.</Description>
1513
</PropertyGroup>
16-
1714
<ItemGroup>
1815
<None Include="Content\*" Pack="true" PackagePath="Content\" />
1916
</ItemGroup>
20-
2117
<ItemGroup>
2218
<Reference Include="System.Web" />
2319
<Reference Include="System.Net.Http" />
2420
</ItemGroup>
25-
2621
<ItemGroup>
2722
<InternalsVisibleTo Include="Microsoft.AspNetCore.SystemWebAdapters.FrameworkServices.Tests" />
2823
<InternalsVisibleTo Include="DynamicProxyGenAssembly2" Key="0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7" />
2924
</ItemGroup>
30-
3125
<ItemGroup>
3226
<PackageReference Include="Microsoft.Extensions.Options.DataAnnotations" Version="6.0.0" />
3327
<PackageReference Include="System.Text.Json" Version="6.0.0" />
3428
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="6.0.0" />
3529
<PackageReference Include="Microsoft.Extensions.Options" Version="6.0.0" />
3630
<PackageReference Include="Microsoft.Extensions.Logging" Version="6.0.0" />
3731
</ItemGroup>
38-
3932
<ItemGroup>
4033
<ProjectReference Include="..\Microsoft.AspNetCore.SystemWebAdapters\Microsoft.AspNetCore.SystemWebAdapters.csproj" />
34+
<ProjectReference Include="..\Microsoft.AspNetCore.SystemWebAdapters.Abstractions\Microsoft.AspNetCore.SystemWebAdapters.Abstractions.csproj" />
4135
</ItemGroup>
42-
43-
</Project>
36+
</Project>

src/Microsoft.AspNetCore.SystemWebAdapters.FrameworkServices/SessionState/Serialization/BinaryWriterReaderExtensions.cs

-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
// Licensed to the .NET Foundation under one or more agreements.
22
// The .NET Foundation licenses this file to you under the MIT license.
33

4-
using System;
5-
using System.IO;
64
using System.Runtime.CompilerServices;
75

86
namespace Microsoft.AspNetCore.SystemWebAdapters.SessionState.Serialization;

src/Microsoft.AspNetCore.SystemWebAdapters/Microsoft.AspNetCore.SystemWebAdapters.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
<Compile Remove="**/*" />
2828
<Compile Include="Properties/PropertyInfo.cs" />
2929
<Compile Include="Generated/Ref.*.cs" />
30+
<Compile Include="Adapters/SessionState/ISessionState.cs" />
3031
</ItemGroup>
3132

3233
<ItemGroup Condition=" '$(TargetFramework)' == 'net6.0' ">

0 commit comments

Comments
 (0)