ngs-doo / revenj

DSL Platform compatible backend
https://dsl-platform.com
BSD 3-Clause "New" or "Revised" License
268 stars 44 forks source link

Port Revenj WCF .NET 4.8 app to .NET 5.0 #161

Closed Kobus-Smit closed 3 years ago

Kobus-Smit commented 3 years ago

Hi @zapov

Hope you are well and safe.

  1. How possible would it be to upgrade a Revenj based .NET framework 4.8 that uses WCF to .NET 5.0?
  2. The service would be ASP.NET Core Web API based, right?
  3. Or can the source be compiled to perhaps use CoreWCF?
  4. I had a look at the Using Revenj from ASP.NET core with Postgres and Visual studio tutorial, that looks like a CQRS example, but as I understand I can add app.UseRevenjMiddleware() to enable Revenj REST API within ASP.NET core.
  5. Would there be any DSL file changes required?
  6. Will the v1.5 release Revenj.Client work with .NET 5.0?
zapov commented 3 years ago

Hi, tnx.

  1. well, 4.8 -> 5.0 seems like a minor upgrade so I dont expect any problems :trollface:
  2. It should work from ASP.NET core, yeah
  3. Ideally relevant projects should compile out-of-the box
  4. Yes, something like that should be sufficient
  5. No
  6. I would assume there is nothing which would break, but didnt really test it. Will look into publishing it hopefully under .net standard 2.0, but if there are some problems, probably for this 5.0 version

It seems I never manage to get around actually finishing this work, but I'll plan to make a Revenj version which works alongside ASP.NET core + publish all projects on Nuget. I did plan on resolving this issues end of next month.

Kobus-Smit commented 3 years ago

Thanks for the feedback mate. I'll start upgrading and see how it goes. Minor upgrade... hehehe you are funny! 🤣 Nugets would be great, looking forward to that.

Kobus-Smit commented 3 years ago

Closing this as I found a gRPC based solution MagicOnion that is similar to how we've used ServiceConsumer in our WCF app.

Example: https://github.com/Kobus-Smit/revenj-examples/tree/master/DotNetCore/netcoreapp3.1/MagicOnion

Regarding point 6, in this above example, Revenj works on Kestrel .NET Core 3.1 but not on Kestrel .NET 5.0, more details in https://github.com/ngs-doo/revenj/issues/162