Seems we now able to build and run Bot framework on .Net Core 2. Good to add some examples or instructions, or even application generators how to make bot application there. What steps to do after dotnet new webapi -o EchoBot command and adding Nuget packages references Microsoft.Bot.Builder and System.IdentityModel.Tokens.Jwt?
This example seems outdated.
@akontsevich: I wish that were true. Unfortunately, BotBuilder relies on the BinaryFormatter to serialize low-level types like System.RuntimeType and delegates. .NET Core 2.0 removed serialization for many types last May because they felt doing so could constrain the future implementations of the platform. .NET Core 2.0 serialization only supports classes they explicitly intend to work cross platform over the long-term.
I spent a couple days looking into building a custom version of BinaryFormatted that brought these capabilities back. Support for System.RuntimeType looked doable but then I ran into the delegate problem and decided to give up (see #572).
I believe now that this is going to take a big munge of the BotBuilder source itself to get working. Frankly, I think that using the BinaryFormatter was a really bad idea. It's probably going to take a hard fork and take some time to redo this if MSFT isn't going to take this on.
I'm not sure this will be a high priority for MSFT because hosting the .NET Framework based bots on Azure is probably their sweet spot. And, even if they did make this change, existing serialized bot state wouldn't work on .NET Core based deployments, without some kind of converter (which would be hard to write because BinaryFormatter is so low-level).
It is a pity. Premature issue then.
relates to #572
duplicate of https://stackoverflow.com/questions/46009473/bot-builder-application-on-net-core-2 [on hold]
Please do not close this, as I created both and stackoverflow issue was also closed.
@akontsevich Please continue the .NET Core conversation in the thread at #572
.NET Core 2.0 does include BinaryFormatter. The problem is that they
also removed serialization support for many of .NET Core types including
System.RuntimeType, System.RuntimeMethod, CollectionBase, and a bunch
of exception types. There is a GitHub issues discussing why they made made
these changes but I can't find it again.
Essentially, it boiled down to the fact that they decided to commit to
making BinaryFormatter work across platforms but didn't want to commit to
making some specific types like these runtime types and exceptions, etc.
support cross platform serialization because doing so would essentially
lock down much of the implementation for these types and MSFT doesn't want
to do this for for their shiny new .NET Core 2.0 platform (which makes
sense).
This limitation is probably fine for many applications. Unfortunately,
BotBuilder does serialize types like System.RuntimeType and
System.RuntimeMethod which is the root of the problem.
On Mon, Sep 4, 2017 at 10:21 PM, Aleksey notifications@github.com wrote:
@jefflill https://github.com/jefflill This announcement video
https://github.com/Microsoft/BotBuilder/issues/572#issuecomment-322810369
tells BinaryFormatter should be present in .Net Core 2, no?—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/BotBuilder/issues/3412#issuecomment-327073999,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AErlj_qHmd4et-cQHruww4WBo_hB06RJks5sfNp1gaJpZM4PKvrP
.
Any info when support for ASPNet Core 2.0 will be available?
Most helpful comment
Any info when support for ASPNet Core 2.0 will be available?