What are Bot Extensions?
Bot Extensions are encapsulating services that integrate with your bot in order for you to focus in its development, allow rapid deployment with multiple integrating services and to show best practices of implementation.
- Download / clone repo
`git clone https://github.com/robece/bot-extensions.git`
-
Create Bot Application or Install Visual Studio Bot Templates.
-
Right click in bot project, properties and target to netcore 2.2. Download netcore 2.2.
-
Go to Visual Studio, right click on solution and Add Existing project.
- Choose your extension project.
-
In your main Bot project right click on dependencies.
- Click on Add Reference.
- Choose your extension project/s.
- Edit appsettings.json file to add extension configuration.
- Change Startup.cs file and create extension instance.
- Use extension instance methods.
-
Key Vault: is a service to to safeguard and manage cryptographic keys and secrets used by cloud applications and services.
-
Active Directory: is a multi-tenant, cloud-based identity and access management service.
-
QnA: is a cloud-based API service that creates a conversational, question-and-answer layer over your data.
-
Luis: is a machine learning-based service to build natural language understanding into apps, bots, and IoT devices.
-
Translator: is a cloud-based machine translation service you can use to translate text in near real-time through a simple REST API call.
Security | Cognitive Services | |
---|---|---|
Key Vault | ✅ | |
Active Directory | ✅ | |
QnA | ✅ | |
Luis | ✅ | |
Translator | ✅ |
Why use extensions instead of adding the functionality in my bot app? Extensions help maintain integrating service code apart and modularized in order for better legibility and guide your development through some development practices.
Are the extensions limited? No, you can continue extending functionalities by adding new extensions to your forked repo or if you want to contribute send us a pull request with your features.
I want to thank Andrea Arroyo for her contribution on this project.