Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Relayer packages to remove dependencies for adapters #134

Merged
merged 13 commits into from
Aug 16, 2022

Conversation

twsouthwick
Copy link
Member

@twsouthwick twsouthwick commented Jul 29, 2022

This change separates out the System.Web types into a single assembly that doesn't have any reliance on other dependencies. Any additional dependencies will be brought in by the extensions library which will only need to be added to the ASP.NET Core and ASP.NET Framework applications themselves (not any supporting libraries).

Fixes #131

@twsouthwick twsouthwick force-pushed the tasou/create-extensions-lib branch from 54e30cb to e8eaaf7 Compare July 29, 2022 18:48
This change separates out the System.Web types into a single assembly that doesn't have any reliance on other dependencies. Any additional dependencies will be brought in by the extensions library which will only need to be added to the ASP.NET Core and ASP.NET Framework applications themselves (not any supporting libraries).
@twsouthwick twsouthwick force-pushed the tasou/create-extensions-lib branch from 8d1eb1a to 713219e Compare July 29, 2022 19:32
@twsouthwick twsouthwick mentioned this pull request Jul 29, 2022
12 tasks
@twsouthwick
Copy link
Member Author

twsouthwick commented Aug 15, 2022

@davidfowl @Tratcher @mjrousos

I've updated the PR per our discussion this morning. There are a few types I'm including in the adapters libraries so they can potentially be used for 3rd party libraries (i.e. MessagePack support for session keys):

  • ISessionState - container for session state
  • ISessionSerializer - serializes ISessionState instances
  • ISessionKeySerializer - serializes session key/value pairs

The following are public APIs that are shared services. As discussed, I'm using shared sources and they do not make sense in the adapter layer:

  • JsonSessionSerializerExtensions: Registers JSON support for session
  • JsonSessionSerializerOptions: Options for the json serializer
  • SessionSerializerOptions: General options for session serializers
  • ISystemWebAdapterBuilder: Builder type for registering adapter functionality/services
  • RemoteAppOptions: Options for remote app information options

I don't think we want to have same type names but not actually same types in two assemblies, so these need to be renamed or shared in a 4th package (i.e. Microsoft.AspNetCore.SystemWebAdapters.Services that would target .NET 6+ and .NET 4.7.2). Thoughts?

@Tratcher
Copy link
Member

When this ships we'll want to obsolete the old packages on nuget.

README.md Outdated Show resolved Hide resolved
@twsouthwick twsouthwick merged commit ddb8eed into main Aug 16, 2022
@twsouthwick twsouthwick deleted the tasou/create-extensions-lib branch August 16, 2022 21:04
zsharp-gls added a commit to zsharp-gls/systemweb-adapters that referenced this pull request Oct 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Relayer packages to minimize dependencies
2 participants