Thanks for the detailed explanations Shawn! -r
On Wed, Dec 16, 2020 at 10:48 AM Shawn Black <endo...@yahoo.com.invalid> wrote: > I do -- > https://github.com/apache/openwhisk-runtime-dotnet/issues/34 > - The commends below are based on the code @kamyker pointed out in > https://github.com/kamyker/openwhisk-dotnet-csharp/commit/f9a739779887b4262c987c0be8bf2b77071c651b#diff-6bc49d26f451cad6d8312deca5a0eadeL89-L96. > Comments are for everything in the diff, not just the extraction aspect of > things as mentioned in his comments. - Things to avoid (I think at least, > please provide comments): + The overall diff will essentially break the > existing contract and introduce a method not used in any other runtimes > (AFAIK, I haven't looked at other recently). > + Right now, we pass a JObject (essentially a class that exposes the > payload as a JSON object, it is from the Newtonsoft.JSON library, which in > the .NET world is the most used library for JSON serialization and > manipulation [That's why I picked it for handling JSON in the runtime]) + > This change will remove that and essentially pass thru the HttpRequest > object (the originating object going into calling the function -- this is > where I don't think we have any other runtimes doing this) - Things to look > into a bit (since the change is more than just extracting a zip): > +@kamyker explicitly handles the steps of extracting the payload and that > might be faster than the helper method provided by the .NET runtime > https://github.com/apache/openwhisk-runtime-dotnet/issues/39 > - I believe this is resolved with the latest code in GitHub, but I am not > sure if it has been included in a release. > https://github.com/apache/openwhisk-runtime-dotnet/issues/35 > - I believe this is also resolved with a change to validating the payload > size and allowing larger zip files based on configuration. If I recall, > this is in the latest release. > In regards to the .NET serialization library used, backwards capability > always comes to mind. Changing the library used also changes the object > passed between our runtime and the end user function. > We might be able to implement some code at Initialization that analyzes > the end user function to see what object type the function expects and > route it to a Newtonsoft.JSON handler or another libraries (maybe the one > included with .NET now, it's gotten a lot better) handler and make a > recommendation to migrate to the new handler and eventually phase out the > Newtonsoft.JSON one. Just a thought on how we can handle changing that -- > which is another thing @kamyker pointed out. Again, Newtonsoft.JSON was > picked since it is the de facto standard for JSON in .NET. > Thanks!!Shawn > On Wednesday, December 16, 2020, 08:08:53 AM CST, Rodric Rabbah < > rod...@gmail.com> wrote: > > Deprecating 2.2 makes sense to me being out of support. > I'm neutral on 5.0 vs waiting for .NET 6.0 (I am not a .NET developer > though :). > > There were a couple of issues in the repo about improving the performance > of the .NET runtime by reducing dependencies and tweaking the JSON serdes. > Do you have thoughts on those? > > -r > > On Wed, Dec 16, 2020 at 12:02 AM Shawn Black <endo...@yahoo.com.invalid> > wrote: > > > Howdy, all! > > > > I wanted to get some feedback on the current state of .NET within the > > OpenWhisk ecosystem. > > > > Right now, we support .NET Core 2.2 (not LTS and no longer supported) > > and .NET Core 3.1 (LTS). > > > > .NET 5.0 was recently released, but I would like to skip supporting this > > version as it is not an LTS release. > > > > I think it would make more sense to wait for .NET 6.0, which will be an > > LTS release. > > > > Once that is out, we can add support for it and then deprecate .NET 2.2. > > > > The .NET Core 3.1 runtime supports running .NET Core 2.2 binaries (we > > have a unit test to support this). > > > > Thoughts? Concerns? > > > > Thanks!! > > > > Shawn > > > > >