Skip to content
Chen edited this page Oct 10, 2017 · 8 revisions

Welcome to the BotBuilder.Standard wiki!

This repository contains my current as well as previous attempts to make Microsoft/BotBuilder work on .NET Core, which will consequently enables you to run the bots on Linux. To begin with, the repository is just a fork from Microsoft's, but later I thought it was almost impossible that I could merge my huge & dirty commits back to the official repository. So this repository is now just detached to a stand-alone one.

This repository contains unofficially ported versions of BotBuilder. By using the releases in this repository, you understand that you are at the risk of unreported bugs in the library. Still, you can help with this version by opening an issue or PR ;-)

This repository maintained by an individual who intended to make a bot out of this. Sadly, he's currently busy with his real life, which means it would be some time before he had a chance to taste the BotBuilder running on Linux. Fortunately, with the new directory structure, it's relatively easy (I hope so) to just fetch and merge from Microsoft's official master branch without almost any conflicts.

The branches

There are currently several branches in the repository, in the order of creation

  • portable [.NET Core 1.0] [Notes]: The very first attempt. Inspired by Microsoft/BotBuilder#572 and Microsoft/BotBuilder#2289. Used Newtonsoft.Json with some hacks on JsonConverter to completely dispense with binary serialization. Ported major part of the BotBuilder library. Put the ported projects beside the original ones.
  • netcore2 [.NET Core 2.0] [Notes]: Reintroduced binary serialization with some surrogate hacks that makes BinaryFormatter work with Types, Delegates, etc, taking the place of Newtonsoft.Json.
  • netcore20+net45 [.NET Core 2.0/.NET 4.5]: The latest & active branch. I copied the branch from netcore20@CXuesong/BotBuilder fork. It seems that Microsoft/BotBuilder#3472 might not be so easily merged. I remastered the polyfills to keep the original solution structure intact, while the new multi-targeted projects/solution shared most of the source files with the original ones. The basic idea is the same as netcore2 branch, but I believe this branch is more resilient to the merges from Microsoft's official reposiory.
Clone this wiki locally