This commit is contained in:
Vishwac Sena Kannan 2018-08-29 14:20:48 -07:00
Родитель 84771e05ee
Коммит 7100622f51
11 изменённых файлов: 661 добавлений и 0 удалений

63
.gitattributes поставляемый Normal file
Просмотреть файл

@ -0,0 +1,63 @@
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto
###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs diff=csharp
###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln merge=binary
#*.csproj merge=binary
#*.vbproj merge=binary
#*.vcxproj merge=binary
#*.vcproj merge=binary
#*.dbproj merge=binary
#*.fsproj merge=binary
#*.lsproj merge=binary
#*.wixproj merge=binary
#*.modelproj merge=binary
#*.sqlproj merge=binary
#*.wwaproj merge=binary
###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg binary
#*.png binary
#*.gif binary
###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.doc diff=astextplain
#*.DOC diff=astextplain
#*.docx diff=astextplain
#*.DOCX diff=astextplain
#*.dot diff=astextplain
#*.DOT diff=astextplain
#*.pdf diff=astextplain
#*.PDF diff=astextplain
#*.rtf diff=astextplain
#*.RTF diff=astextplain

27
.github/ISSUE_TEMPLATE.md поставляемый Normal file
Просмотреть файл

@ -0,0 +1,27 @@
<!--
- Please only report BotBuilder-Samples issues on this repository.
- Have you searched for similar issues on Stack Overflow or on other forums? If not, please do so first, as you may find an answer!
-->
## Information:
* Sample name: <!-- Sample being used -->
* Sample language: <!-- csharp_webapi/ csharp_dotnetcore/ javascript_es6/ javascript_ts/ javascript_nodejs -->
* OS: <!-- Windows, Mac OS, Linux distro, etc. -->
## Issue Description:
<!-- Please describe the issue you're facing. -->
## Commands Example:
<!-- Please provide the commands that reproduces the issue. Do not take screenshots of your commands. -->
## Reproduction Steps:
1.
2.
3.
## Expected Behavior:
<!-- What you expected to happen. -->
## Actual Results:
<!-- What actually happened. Please give examples and support it with screenshots, copied output or error messages. -->

35
.github/ISSUE_TEMPLATE/Bug_report.md поставляемый Normal file
Просмотреть файл

@ -0,0 +1,35 @@
---
name: Bug report
about: Create a report to help us improve
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]
**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]
**Additional context**
Add any other context about the problem here.

17
.github/ISSUE_TEMPLATE/Feature_request.md поставляемый Normal file
Просмотреть файл

@ -0,0 +1,17 @@
---
name: Feature request
about: Suggest an idea for this project
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

14
.github/PULL_REQUEST_TEMPLATE.md поставляемый Normal file
Просмотреть файл

@ -0,0 +1,14 @@
Fixes #<!-- If this addresses a specific issue, please provide the issue number here -->
## Proposed Changes
<!-- Please discuss the changes you have worked on. What do the changes do; why is this PR needed? -->
<!-- You must demonstrate that the code works. Include screenshots of the code in action -->
<!-- If you are introducing a new sample, make sure that the sample adheres to sample guidelines -->
-
-
-
## Testing
<!-- If you are adding a new feature to a library, you must include tests for your new code. -->

3
.github/package-lock.json сгенерированный поставляемый Normal file
Просмотреть файл

@ -0,0 +1,3 @@
{
"lockfileVersion": 1
}

269
.gitignore поставляемый Normal file
Просмотреть файл

@ -0,0 +1,269 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
# dotnet core app settings
appsettings.json
appsettings.production.json
appsettings.development.json
# webapi app settings
web.config
# JS/ TS/ es6 env files
*.env
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
# Visual Studio 2015 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# DNX
project.lock.json
artifacts/
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Comment the next line if you want to checkin your web deploy settings
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config
# NuGet v3's project.json files produces more ignoreable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.pfx
*.publishsettings
node_modules/
orleans.codegen.cs
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
*.mdf
*.ldf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# JetBrains Rider
.idea/
*.sln.iml
# Node
/**/node_modules
# Visual Studio Code
.vscode/

41
Contributing.md Normal file
Просмотреть файл

@ -0,0 +1,41 @@
# Instructions for Logging Issues
## 1. Search for Duplicates
[Search the existing issues](https://github.com/Microsoft/BotBuilder-Samples/issues) before logging a new one.
## 2. Do you have a question?
The issue tracker is for **issues**, in other words, bugs and suggestions.
If you have a *question*, *feedback* or *suggestions*, please check our [support page](http://docs.botframework.com/support/).
In general, things we find useful when reviewing suggestions are:
* A description of the problem you're trying to solve
* An overview of the suggested solution
* Examples of how the suggestion would work in various places
* Code examples showing e.g. "this would be an error, this wouldn't"
* Code examples showing the generated JavaScript (if applicable)
* If relevant, precedent in other languages can be useful for establishing context and expected behavior
## 3. Did you find a bug?
When logging a bug, please be sure to include the following:
* Which sample and in what programming language
* If at all possible, an *isolated* way to reproduce the behavior
* The behavior you expect to see, and the actual behavior
# Instructions for Contributing Code
## Code of Conduct
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
## Contributing bug fixes and features
BotBuilder Samples is currently accepting contributions in the form of bug fixes and new features. Any submission must have an issue tracking it in the issue tracker that has been approved by the BotBuilder team. Your pull request should include a link to the bug that you are fixing. If you've submitted a PR for a bug, please post a comment in the bug to avoid duplication of effort.
## Legal
If your contribution is more than 15 lines of code, you will need to complete a Contributor License Agreement (CLA). Briefly, this agreement testifies that you are granting us permission to use the submitted change according to the terms of the project's license, and that the work being submitted is under appropriate copyright.
Please submit a Contributor License Agreement (CLA) before submitting a pull request. You may visit https://cla.azure.com to sign digitally. Alternatively, download the agreement ([Microsoft Contribution License Agreement.docx](https://www.codeplex.com/Download?ProjectName=typescript&DownloadId=822190) or [Microsoft Contribution License Agreement.pdf](https://www.codeplex.com/Download?ProjectName=typescript&DownloadId=921298)), sign, scan, and email it back to <cla@microsoft.com>. Be sure to include your github user name along with the agreement. Once we have received the signed CLA, we'll review the request.

21
LICENSE Normal file
Просмотреть файл

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2016 Microsoft
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

0
readme.md Normal file
Просмотреть файл

171
samples_spec.md Normal file
Просмотреть файл

@ -0,0 +1,171 @@
This specification outlines sample structure, requirements
# Goals
- Make it easy for developers to learn basic bot concepts
- Provide a numbering scheme for samples so developers can start simple and layer in sophistication
- Samples targeted at scenarios rather than technology involved
- Consistent set of samples across supported languages
- Samples are also consistently used in the docs topics for continuity and are developed by the documentation team, reviewed by the feature team.
- Each sample MUST include
- README with steps to run the sample, concepts involved and links to additional reading (docs)
- deep link to V4 Emulator, include a .bot file as well as point to relevant tools (UI based or CLI) as appropriate
- .chat files as appropriate that provide scenario overview and demonstrates how to construct mock conversations for the specific scenario
- .lu files as appropriate
- Include source JSON model files for LUIS, QnA, Dispatch where applicable
- Include LUISGen strong typed LUIS class for LUIS samples
- Any required build scripts for sample to work locally
- Well defined naming convention for setting, service endpoint, and secrets in setting files (.bot, app.json, etc.)
- Deploy to Azure button including all resources (similar to V3 samples)
- Each sample SHOULD include
- Welcome message (conversation update activity)
- Flow control and interruptions (help, cancel, detecting and handling interruptions)
- All samples are built and deployable on local dev env (Emulator) and Azure (WebChat)
- Samples (and docs) should add channel specific notes (if applicable). e.g. document list of supported channels for Adaptive cards sample etc.
- JS and TS samples should be in separate folders
# Samples structure - C#
| - <sampleName>.bot // bot file for this sample
| - README.md // Markdown readme file that includes steps to run this sample
(including steps to create and configure required services),
overview of concepts covered in this sample + links to
additional topics to read
| - Program.cs // Default program.cs
| - Startup.cs // Default startup.cs – configuration builder + middlewares
| - appsettings.json // Has bot configuration information
| - Dialogs
| - MainDialog
| - MainDialog.cs // Main router/ dispatcher for the bot
| - <botName_state>.cs // state definitions that are shared across dialogs/ components are here
| - Resources
| - <scenario>.lu // LU file that has intents that apply globally - e.g. help/ cancel etc.
| - <scenario_card>.cshtml // Cards that are shared across dialogs.
| - <scenario name>
| - <scenario>.cs // Dialog definition for this scenario
| - <scenario_state>.cs // State object definitions for this scenario
| - Resources
| - <scenario>.lu // LU file with intents + entities/ QnA pairs for this scenario
| - <scenario_card>.cshtml // cards for this particular scenario – template file for cards
| - <scenario>.chat // Chat file for this specific scenario; shows happy path or variations.
| - CognitiveModels
| - <bot_name>.luis // LUIS model file for this sample
| - <bot_name>.qna // QnA Maker JSON model file
| - <bot_name>.dispatch // Dispatch JSON model file
| - DeploymentScripts
| - DEPLOYMENT.md // Readme for deployment scripts.
| - azuredeploy.json // Azure deployment ARM template
# Samples structure - JS
| - <sample-name>.bot // bot file for this sample
| - README.md // Markdown readme file that includes steps to run this sample
(including steps to create and configure required services),
overview of concepts covered in this sample + links to
additional topics to read
| - index.js // Default app.js - startup, middlewares
| - .env // Has bot configuration information
| - dialogs
| - mainDialog
| - index.js // Main router/ dispatcher for the bot
| - <bot-name-state>.js // state definitions that are shared across dialogs/ components are here
| - resources
| - <scenario>.lu // LU file that has intents that apply globally - e.g. help/ cancel etc.
| - <scenario-name>
| - index.js // Dialog definition for this scenario
| - <scenario-state>.js // State object definitions for this scenario
| - resources
| - <scenario>.lu // LU file with intents + entities/ QnA pairs for this scenario
| - <scenario-card>.json // cards for this particular scenario – template file for cards
| - <scenario>.chat // Chat file for this specific scenario; shows happy path or variations.
| - cognitiveModels
| - <bot-name>.luis // LUIS model file for this sample
| - <bot-name>.qna // QnA Maker JSON model file
| - <bot-name>.dispatch // Dispatch JSON model file
| - deploymentScripts
| - DEPLOYMENT.md // Readme for deployment scripts.
| - azuredeploy.json // Azure deployment ARM template
# README.md template
```markdown
<INSERT AT MOST ONE PARAGRAPH DESCRIPTION OF WHAT THIS SAMPLE DOES>
# Concepts introduced in this sample
<DESCRIPTION OF THE CONCEPTS>
# To try this sample
- <STEPS TO CLONE REPO AND GET SETUP>
## Prerequisites
- <REQUIRED TOOLS, VERSIONS>
- <STEPS TO GET SET UP WITH THE SAMPLE. E.g. RUN AN INCLUDED SCRIPT OR MANUALLY DO SOMETHING ETC>
NOTE: <ANY NOTES ABOUT THE PREREQUISITES OR ALTERNATE THINGS TO CONSIDER TO GET SET UP>
## Visual studio
- <STEPS TO RUN THIS SAMPLE FROM VISUAL STUDIO>
## Visual studio code
- <STEPS TO RUN THIS SAMPLE FROM VISUAL STUDIO CODE>
## Testing the bot using Bot Framework Emulator
[Microsoft Bot Framework Emulator](https://github.com/microsoft/botframework-emulator) is a desktop application that allows bot developers to test and debug their bots on localhost or running remotely through a tunnel.
- Install the Bot Framework emulator from [here](https://github.com/Microsoft/BotFramework-Emulator/releases)
## Connect to bot using Bot Framework Emulator **V4**
- Launch Bot Framework Emulator
- File -> Open bot and navigate to samples\8.AspNetCore-LUIS-Bot folder
- Select AspNetCore-LUIS-Bot.bot file
# Further reading
- <LINKS TO ADDITIONAL READING>
```
# Samples repo structure, naming conventions
- All samples will live under the BotBuilder-Samples repository, master branch.
- Language/ platform specific samples go under respective folders – dotnet/ JS/ Java/ Python
- Samples should use published packages, available on NuGet or npmjs
- Each sample sits in its own folder
- Each sample folder is named as “\<\#\>. \<KEY SCENARIO INTRODUCED BY THE SAMPLE\>”
- Each solution/ project is named as “\<KEY SCENARIO INTRODUCED BY THE SAMPLE\>”
- C# - each sample has its own solution file
# Samples list
|Sample Name|Description|.NET CORE|.NET Web API|JS (es6)|TS|
|-----------|-----------|---------|------------|--------|--|
|1.Console-EchoBot|Introduces the concept of adapter and demonstrates a simple echo bot on console adapter and how to send a reply and access the incoming the incoming message. Doc topic from readme lists other adapter types|:heavy_check_mark:||:heavy_check_mark:||
|1.a. Browser-EchoBot|Introduces browser adapter|||:heavy_check_mark:||
|2.EchoBot-With-Counter|Demonstrates how to use state. Shows commented out code for all natively supported storage providers. Storage providers should include InMemory, CosmosDB and Blob storage. Default bot template for ABS, VSIX, Generators and dotnet new template|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
|3.Welcome-User|Introduces activity types and providing a welcome message on conversation update activity. This should be the “who to” sample and tie back to a Concept doc. |:heavy_check_mark:||:heavy_check_mark:||
|4.Simple-Prompt-Bot|Demonstrates prompt pattern by prompting user for a property. Introduces user state .vs. conversation state. Ask for name and prints back those information. Uses sequence dialogs if available or default option is to use waterfall dialogs|:heavy_check_mark:||:heavy_check_mark:||
|5.MultiTurn-Prompts-Bot|Demonstrates more complex pattern by prompting user for multiple properties. Ask for name, age and prints back that information. Uses sequence dialogs if available or default option is to use waterfall dialogs.|:heavy_check_mark:||:heavy_check_mark:||
|6.Using-Cards|Introduces all card types including thumbnail, audio, media etc. Builds on Welcoming user + multi-prompt bot by presenting a card with buttons in welcome message that route to appropriate dialog.|:heavy_check_mark:||:heavy_check_mark:||
|7.Using-Adaptive-Cards|Introduces adaptive cards - demonstrates how the multi-turn dialog can be augmented to also use a card to get user input for name and age.|:heavy_check_mark:||:heavy_check_mark:||
|8.Suggested-Actions|Demonstrates how to use suggested actions |:heavy_check_mark:||:heavy_check_mark:||
|9.Message-Routing|Demonstrates the main dialog or root dispatcher paradigm. Needs to show how to handle interruptions like cancel, help, start over. Tie to conceptual documentation and best practice/ patterns recommendations.|:heavy_check_mark:||:heavy_check_mark:||
|10.Prompt-Validations|Demonstrates how to take advantage of different prompt types and prompt validators. In this example, we will expand the multi-turn prompt sample to accept name, age, date of birth, favorite color.Name uses text prompt with 1min character and 50 max character limitation; Age uses number prompt with valid age between 1 - 99; Date of birth uses date time prompt with valid date of birth between 8/24/1918 through 8/24/2018; Favorite color uses choice prompt with red, blue, green, .. as choices|:heavy_check_mark:||:heavy_check_mark:||
|11.QnAMaker|Demonstrates how to use QnA Maker to have simple single-turn conversations|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
|12.NLP-With-LUIS|Demonstrates how to use LUIS to understand natural language|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
|13.Basic-Bot-Template|Basic bot template that puts together cards, NLP (LUIS)|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
|14.NLP-With-Dispatch|Demonstrates how dispatch should be used E2E|:heavy_check_mark:||:heavy_check_mark:||
|15.Handling-No-Match|Provides guidance on how to handle no-match. Its appropriate to have this covered after LUIS and QnA maker to show post NLP step as well.|:heavy_check_mark:||:heavy_check_mark:||
|16.Handling-Atachments|Demonstrates how to listen for/handle user provided attachments|:heavy_check_mark:||:heavy_check_mark:||
|17.Proactive-Messages|Demonstrates how to send proactive messages|:heavy_check_mark:||:heavy_check_mark:||
|18.Multi-Lingual-Bot|Using translate middleware to support a multi-lingual bot|:heavy_check_mark:||:heavy_check_mark:||
|19.Bot-uthentication|Bot that demonstrates how to integration with auth providers|:heavy_check_mark:||:heavy_check_mark:||
|20.Handling-End-Of-Conversation|Bot that demonstrates how to handle end of conversation events|:heavy_check_mark:||:heavy_check_mark:||
|21.Custom-Dialogs|Demonstrates different ways to model conversations. Waterfall .vs. using your own dialog management|:heavy_check_mark:||:heavy_check_mark:||
|50.Contoso-Café-Bot|A complete E2E Cafe bot that has all capabilities and includes best practices|:heavy_check_mark:||:heavy_check_mark:||
|51.Enterprise-Bot-Template|Bot that includes scaffolding and references to commonly used services for an enterprise scale bot. Also used as the enterprise bot template|:heavy_check_mark:||:heavy_check_mark:||
# Advanced topics
Additional advanced topics to consider based on feedback
- Create your own custom
- adapter
- context object
- middleware
- state provider
- clients
- events that clients can listen for
Feedback welcome.