DEV Community

loading...

PortableWebClient v3.x - prerelease

Dave Humphreys
I have been coding since we got our first computer and am now doing my passion for a living. I have previously worked for Xamarin and Microsoft. Mainly using C# and dotnet these days.
・1 min read

PortableWebClient is a cross platform web client framework for calling ASP.NET Core RESTful Web Apis and (now) Grpc services.

GitHub logo newky2k / PortableWebClient

Cross platform web client framework for calling ASP.NET Core RESTful Web Apis and Grpc services

Portable Web Client

Cross platform web client framework for calling ASP.NET Core RESTful Web Apis and Grpc services

Functionality

The libary provides base level, bootstrap base classes to simplify the building of client libraries for use with ASP.NET Core Web Apis and now Grpc services too.

  • Base web service client classes for RESTful Web APIs and Grpc service clients
    • Core Web Client functionality
    • Stores Url
    • Can check for connectivity
    • Stores Default Timeout
  • Base service client classes for both RESTFul and Grpc services
    • Handles RestClient and Grpc channel management functionality
    • Helper methods for Get and Post method calls
    • Simplifies calls to the services
  • Base request and response classes
  • Generic methods and extensions for calling RESTful Web APIs
  • EF Core session
    • Secure sessions for users
  • Secure request and response classes using a SecurePayload
  • Integrated encryption, with abiltiy provide override with custom implementations
    • Uses 256-bit AES encryption by default

V3.x breaking changes

With…

Version 3 of PortableWebClient has added support for Grpc services, both Http/2 and Http/1.1(Grpc.Web).

The core has also been decoupled to allow for alternate encryption providers to be used and for less bootstrap code to be needed when implementing in your code.

We have changed the packaging of the classes and moved things arround to support both RESTfull web apis and Grpc services, so this is a breaking release.

Packages

To-Do

  • Create and update Wiki and documentation
  • Remove requirement for static variable for IV and KeySize
  • Create sample services and client application
  • Testing

Discussion (0)