Introduction:

Visual Studio 2019 publicly available from April 2 2019 and it’s includes many improvements for Xamarin mobile developers in Visual Studio. Microsoft mainly focused on key areas to make more productive when authoring Xamarin apps, including optimizations to build and deployment times as well as improvements to UI authoring experiences.

Let we look today steps by step all the awesome Visual Studio 2019 Xamarin Developer. Visual Studio 2019 and Visual Studio 2019 for Mac are now available so you can start download and start use with awesome VS feature .


Lower disk impact

VS2019 release focuses on the fundamental’s stability and performance. Visual Studio 2017 required minimum 23 GB or more, but visual studio 2019 is now 3.28x smaller in the size, it’s Just 5GB to 7GB and you can do faster installation with lower disk impact, no need to wait very long time for installation.


Solutions creation

Visual studio team improved solutions creation time by up to 2x and solutions load time by 23% on real world profiled solutions.

Android SDK Update:

Managing Android SDKs can be very difficult, especially when working on complex solutions across teams. Some of them not aware, difference between target, compile, and minimum framework version, Visual studio 2017 tried for Android SDK auto update but manually enable from Tool options .

Visual Studio 2019 will automatically analyze our app while project load, determine if you have the necessary Android SDK configuration to build, and offer to install those components for you to resolve any configuration conflicts.


Faster Build and Deployment:

Visual studio 2019 improved Xamarin Build and Deployment, you can check your enterprise application build times are 26.6% faster than Visual studio 2017version and Deployment times are now twice as fast.



Shell Project template

Visual studio 2019 added Shell project template to the Xamairn Form. Shell provides 3 tiers of elements to our application and then gets out of your way to start populating the app with content and features.In Shell template you will get it following 

A simplified way to express the high level of your application architecture in a single file (AppShell.xaml)

A hierarchy of common UI navigation patterns that suite your target mobile platforms: flyout menu, bottoms tabs, top tabs 

A robust navigation service that provides URI-based routing so you can jump directly to any part of your application with ease 

An extensible template-based infrastructure to easily customize elements of your UI



Visual design experiences for iOS and Android

Visual Studio 2019 improved new IntelliSense experience for XAML with matching around the control and property names to ensure you receive the correct suggestion.

The XAML Previewer shows you how your Xamarin.Forms XAML page will look on iOS and Android. When you make changes to your XAML, you'll see them previewed immediately alongside your code. The XAML Previewer is available in Visual Studio and Visual Studio for Mac.

You can now edit common attributes for your Xamarin.Forms controls in the property panel for Visual Studio 2019 on Windows. Open the property panel by going to View → Properties Window. The property panel will show attributes for whatever control is currently in focus in your XAML file.


Summary

In this article, your learned What is new in Xamarin Development in Visual Studio 2019. If you have any questions/ feedback/ issues, please write in the comment box.

Introduction:

Visual Studio 2019 streamlines your experience so you can get right down to focused work. Microsoft announced Visual studio 2019 will launch on April 2, 2019 with many attractive features. Initially preview version not supported Bot template. Microsoft released update Bot Template with VS 2019 support on Feb 13, in this article, we will learn how to create a bot by using Visual Studio 2019 with Microsoft Bot Framework template, and will be testing it with the Bot Emulator version 4.2.1.



The Bot Framework enables you to build bots that support different types of interactions with users. You can design conversations in your bot to be free. Your bot can also have more guided interactions where it provides the users choices or actions. The conversation can use simple text strings or more complex rich cards that contain text, images, and action buttons. And, you can add natural language interactions, which let your users interact with your bots in a natural and expressive way.

Prerequisites:

Download Visual Studio 2019 Preview ++
Download the Bot Framework V4 Emulator for your platform from the GitHub releases page.

Create New Project:

Let's start with creating a new Bot application using Visual Studio 2019. Go to Windows >> Visual Studio 2019.



Before create a new project, Install the Bot Builder template from Tools >Extensions and Updates and search Bot Build V4 SDK > click on Install



Create new bot application project or open the recent project, as like below



Provide project name and location in the following screen and click on create



After click on create button, the solutions will create with Core, Empty and echo bot. You can select the required project version and select another project and delete


Empty Project :

A good template if you are familiar with Bot Framework v4, and simple want a basic skeleton project. Also a good option if you want to take sample code from the documentation and paste it into a minimal bot in order to learn.

Core Project :

Our most advanced template, the Core Bot template provides 6 core features every bot is likely to have. This template covers the core features of a Conversational-AI bot using LUIS. See the Core Bot Features table below for more details.

Echo Project :

A good template if you want a little more than "Hello World!", but not much more. This template handles the very basics of sending messages to a bot, and having the bot process the messages by repeating them back to the user. This template produces a bot that simply "echos" back to the user anything the user says to the bot.

Run the application:

Run the app by clicking on the IIS Express button in Visual Studio (with the green play icon).

Check the port that your web application, if it is not running on port 3978 you'll need to update the Bot configuration. In order to update this setting, go to Visual Studio Project and open the EchoBot.bot file. Update the endpoint setting to match the port that your app is using.


Edit OnTurnAsync method:

Open EchoBotBot.cs and add the required namespace and modify the OnTurnAsync method, replace the content of the else statement with the following code snippet

public async Task OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken = default(CancellationToken))
{
// Handle Message activity type, which is the main activity type for shown within a conversational interface
// Message activities may contain text, speech, interactive cards, and binary or unknown attachments.
// see https://aka.ms/about-bot-activity-message to learn more about the message and other activity types
if (turnContext.Activity.Type == ActivityTypes.Message)
{
// Get the conversation state from the turn context.
var state = await _accessors.CounterState.GetAsync(turnContext, () => new CounterState());
// Bump the turn count for this conversation.
state.TurnCount++;
// Set the property using the accessor.
await _accessors.CounterState.SetAsync(turnContext, state);
// Save the new turn count into the conversation state.
await _accessors.ConversationState.SaveChangesAsync(turnContext);
// Echo back to the user whatever they typed.
var responseMessage = $"Turn {state.TurnCount}: You sent '{turnContext.Activity.Text}'\n";
await turnContext.SendActivityAsync(responseMessage);
}
else
{
await turnContext.SendActivityAsync($"{turnContext.Activity.Type} event detected");
}
}

Test Bot Applications:

Open the Bot Framework Emulator from the Start Menu and Click Open Bot and select the file EchoBot.bot from project. Previously we had to provide the bot endpoint to the emulator but now it can read all the configuration from a .bot file.


Summary

In this article, your learned how to create a Bot application using Visual Studio 2019. If you have any questions/ feedback/ issues, please write in the comment box.






Introduction:

Visual Studio 2019 streamlines your experience so you can get right down to focused work. Microsoft announced Visual studio 2019 will launch on April 2, 2019 with many attractive features. Initially preview version not supported Bot template. Microsoft released update Bot Template with VS 2019 support on Feb 13, in this article, we will learn how to create a bot by using Visual Studio 2019 with Microsoft Bot Framework template, and will be testing it with the Bot Emulator version 4.2.1.

The Bot Framework enables you to build bots that support different types of interactions with users. You can design conversations in your bot to be free. Your bot can also have more guided interactions where it provides the users choices or actions. The conversation can use simple text strings or more complex rich cards that contain text, images, and action buttons. And, you can add natural language interactions, which let your users interact with your bots in a natural and expressive way.

Prerequisites:

Download Visual Studio 2019 Preview ++
Download the Bot Framework V4 Emulator for your platform from the GitHub releases page.

Create New Project:

Let's start with creating a new Bot application using Visual Studio 2019. Go to Windows >> Visual Studio 2019.



Before create a new project, Install the Bot Builder template from Tools >Extensions and Updates and search Bot Build V4 SDK > click on Install



Create new bot application project or open the recent project, as like below



Provide project name and location in the following screen and click on create



After click on create button, the solutions will create with Core, Empty and echo bot. You can select the required project version and select another project and delete



Empty Project :

A good template if you are familiar with Bot Framework v4, and simple want a basic skeleton project. Also a good option if you want to take sample code from the documentation and paste it into a minimal bot in order to learn.

Core Project :

Our most advanced template, the Core Bot template provides 6 core features every bot is likely to have. This template covers the core features of a Conversational-AI bot using LUIS. See the Core Bot Features table below for more details.

Echo Project :

A good template if you want a little more than "Hello World!", but not much more. This template handles the very basics of sending messages to a bot, and having the bot process the messages by repeating them back to the user. This template produces a bot that simply "echos" back to the user anything the user says to the bot.

Run the application:

Run the app by clicking on the IIS Express button in Visual Studio (with the green play icon).

Check the port that your web application, if it is not running on port 3978 you'll need to update the Bot configuration. In order to update this setting, go to Visual Studio Project and open the EchoBot.bot file. Update the endpoint setting to match the port that your app is using.


Edit OnTurnAsync method:

Open EchoBotBot.cs and add the required namespace and modify the OnTurnAsync method, replace the content of the else statement with the following code snippet

public async Task OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken = default(CancellationToken))
{
// Handle Message activity type, which is the main activity type for shown within a conversational interface
// Message activities may contain text, speech, interactive cards, and binary or unknown attachments.
// see https://aka.ms/about-bot-activity-message to learn more about the message and other activity types
if (turnContext.Activity.Type == ActivityTypes.Message)
{
// Get the conversation state from the turn context.
var state = await _accessors.CounterState.GetAsync(turnContext, () => new CounterState());
// Bump the turn count for this conversation.
state.TurnCount++;
// Set the property using the accessor.
await _accessors.CounterState.SetAsync(turnContext, state);
// Save the new turn count into the conversation state.
await _accessors.ConversationState.SaveChangesAsync(turnContext);
// Echo back to the user whatever they typed.
var responseMessage = $"Turn {state.TurnCount}: You sent '{turnContext.Activity.Text}'\n";
await turnContext.SendActivityAsync(responseMessage);
}
else
{
await turnContext.SendActivityAsync($"{turnContext.Activity.Type} event detected");
}
}

Test Bot Applications:

Open the Bot Framework Emulator from the Start Menu and Click Open Bot and select the file EchoBot.bot from project. Previously we had to provide the bot endpoint to the emulator but now it can read all the configuration from a .bot file.


Summary

In this article, your learned how to create a Bot application using Visual Studio 2019. If you have any questions/ feedback/ issues, please write in the comment box.




Introduction:

The Azure AD is the identity provider, responsible for verifying the identity of users and applications and providing security tokens upon successful authentication of those users and applications.in this article I have explained about create Azure AD authentication and integrate into bot application using AuthBot library.



The Bot show very simple dialog with openUrl button and this button launches the web browser for validate user credential and AD will response the message with authentication code, you can copy same code and reply back to the bot, bot will validation and response the welcome message.

You can follow below given steps one by one and you will get to see an interesting demo at end of article.

Azure AD App registration:

I will show the steps given below for the azure application creation, user creation and permission configuration. While implementing bot application, We need Client ID, tenant, return URL, so here I will show how to get all the configuration information from the steps given below.

Step 1: 

Login to Microsoft Azure portal and choose Azure Active Directory from the sidebar.

Step 2:

If you have not created AZURE Active directory, try to create new AD creation for tenant url or Select or add tenant url from Domain names sections


Step 3:

 Select Application Registration and Provide the details given below, name for the application , application type must be Web app/API, enter your application redirect URL and click on Create.


Step 4: 

We need to give the permission to access the application from Bot, so grand the permission. Select newly created Application > select Required Permission > Click Grand permission.

Step 5: 

create new user from users and groups sections (optional)

Step 6: 

Create client secret key from Application. Select Application > Select keys > add new / copy client secret key .


Step 4: 

You can copy tenant, client ID and Client Secret and you can follow below steps for create and implement AD authentication in Bot

Create New Bot Application:

Let's create a new bot application using Visual Studio 2017. Open Visual Studio > Select File > Create New Project (Ctrl + Shift +N) > Select Bot application.



The Bot application template gets created with all the components and all required NuGet references installed in the solutions.


Install AuthBot Nuget Package:

The AuthBot provide Azure Active Directory authentication library for implement Azure AD login in Bot.

Right click on Solution, select Manage NuGet Package for Solution > Search “ AuthBot” > select Project and install the package.



You can follow given below steps for integrate AD authentication

Step 1: 

Select Web.config file and add Mode,resourceID,Endpointurl ,Tenant,clientID,clientSecret and redirect url appsettings property and replace Azure AD details as per below
<appSettings>
<!-- update these with your BotId, Microsoft App Id and your Microsoft App Password-->
<add key="BotId" value="YourBotId" />
<add key="MicrosoftAppId" value="" />
<add key="MicrosoftAppPassword" value="" />
<!-- AAD Auth v1 settings -->
<add key="ActiveDirectory.Mode" value="v1" />
<add key="ActiveDirectory.ResourceId" value="https://graph.windows.net/" />
<add key="ActiveDirectory.EndpointUrl" value="https://login.microsoftonline.com" />
<add key="ActiveDirectory.Tenant" value="dxdemos.net" />
<add key="ActiveDirectory.ClientId" value="2d3b5788-05a5-486d-b2a4-2772a4511396" />
<add key="ActiveDirectory.ClientSecret" value="wU3oFBJ1gjWcB8Lo/fMaaCwg7ygg8Y9zBJlUq+0yBN0=" />
<add key="ActiveDirectory.RedirectUrl" value="http://localhost:3979/api/OAuthCallback" />
</appSettings>

Step 2: 

Select Global.asax.cs file and call all the bot app setting property and assign to AuthBot model class, like below
 
using System.Configuration;
using System.Web.Http;
namespace DevAuthBot
{
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register);
AuthBot.Models.AuthSettings.Mode = ConfigurationManager.AppSettings["ActiveDirectory.Mode"];
AuthBot.Models.AuthSettings.EndpointUrl = ConfigurationManager.AppSettings["ActiveDirectory.EndpointUrl"];
AuthBot.Models.AuthSettings.Tenant = ConfigurationManager.AppSettings["ActiveDirectory.Tenant"];
AuthBot.Models.AuthSettings.RedirectUrl = ConfigurationManager.AppSettings["ActiveDirectory.RedirectUrl"];
AuthBot.Models.AuthSettings.ClientId = ConfigurationManager.AppSettings["ActiveDirectory.ClientId"];
AuthBot.Models.AuthSettings.ClientSecret = ConfigurationManager.AppSettings["ActiveDirectory.ClientSecret"];
}
}
}

Step 3: 

You can create a new AzureADDialog class to show the default login and logout UI Design dialog. Rightclick on Project, select Add New Item, create a class that is marked with the [Serializable] attribute (so the dialog can be serialized to state), and implement the IDialog interface.
using AuthBot;
using AuthBot.Dialogs;
using Microsoft.Bot.Builder.Dialogs;
using Microsoft.Bot.Connector;
using System;
using System.Configuration;
using System.Threading;
using System.Threading.Tasks;
namespace DevAuthBot.Dialogs
{
[Serializable]
public class AzureADDialog : IDialog<string>
{

Step 4 :

IDialog interface has only StartAsync() method. StartAsync() is called when the dialog becomes active. The method passes the IDialogContext object, used to manage the conversation.

public async Task StartAsync(IDialogContext context)
{
context.Wait(MessageReceivedAsync);
}

Step 5: 

Create a MessageReceivedAsync method and write the following code for the login and logout default dialog and create a ResumeAfterAuth for after the user login, bot will reply the user name and email id details.
/// <summary>
/// Login and Logout
/// </summary>
/// <param name="context"></param>
/// <param name="item"></param>
/// <returns></returns>

public virtual async Task MessageReceivedAsync(IDialogContext context, IAwaitable<IMessageActivity> item)
{
var message = await item;
//endpoint v1
if (string.IsNullOrEmpty(await context.GetAccessToken(ConfigurationManager.AppSettings["ActiveDirectory.ResourceId"])))
{
//Navigate to website for Login
await context.Forward(new AzureAuthDialog(ConfigurationManager.AppSettings["ActiveDirectory.ResourceId"]), this.ResumeAfterAuth, message, CancellationToken.None);
}
else
{
//Logout
await context.Logout();
context.Wait(MessageReceivedAsync);
}
}
/// <summary>
/// ResumeAfterAuth
/// </summary>
/// <param name="context"></param>
/// <param name="result"></param>
/// <returns></returns>

private async Task ResumeAfterAuth(IDialogContext context, IAwaitable<string> result)
{
//AD resposnse message
var message = await result;
await context.PostAsync(message);
context.Wait(MessageReceivedAsync);
}

After the user enters the first message, our bot will reply and ask to login to the AD. Then, it waits for Authentication code and bot will reply the user details as a response like below.


Run Bot Application

The emulator is a desktop application that lets us test and debug our bot on localhost. Now, you can click on "Run the application" in Visual studio and execute in the browser


  • Test Application on Bot Emulator
  • You can follow the below steps to test your bot application.
  • Open Bot Emulator.
  • Copy the above localhost url and paste it in emulator e.g. - http://localHost:3979
  • You can append the /api/messages in the above url; e.g. - http://localHost:3979/api/messages.
  • You won't need to specify Microsoft App ID and Microsoft App Password for localhost testing, so click on "Connect".


Related Article:

I have explained about Bot framework Installation, deployment and implementation in the below article

Summary

In this article, you learned how to create a Bot Azure AD login authentication and Logout using AuthBot. If you have any questions/feedback/ issues, please write in the comment box.



Building Chat Bots with Bing search results using Bot Framework

Introduction:

The Bot Framework supports different types of rich cards, Azure AD authentication and provides a richer interaction experience to the users, I have already shared about message design, login and deployment in my previous article. In this article I will share about how to connect and deploy bots into Bing Search.

You can build Bing Bot Application using Bot Framework and connect application to the Bing channel, whenever user search tag /category text and Bing search output show your Bot along with your website.



You can follow below give steps for implement your bot application into the Bing Channel.

Setup and Create New Bot Application:

You can read my previous article for create a Bots Application Using Visual Studio 2017 from following URL http://www.c-sharpcorner.com/article/getting-started-with-bots-using-visual-studio-2017/

Deploy Bot to Azure:

You can read my previous article for deploy bot application into Azure using Visual Studio 2017 from following URL http://www.c-sharpcorner.com/article/getting-started-deploy-a-bot-to-azure-using-visual-studio-2017/


Publishing Bot on Bing:

Step 1: Publishing a bot on Bing, you can navigate to Bot Framework Portal https://dev.botframework.com/bots > Login with Microsoft account > Select deployed bot application > click the Channels tab, and then click Bing.


Step 2: 

Upload Bot png icon within 32kb. Bot Icon will help people to find bot on Bing with image

Step 3: 

Provide Bot application basic information
Display Name - provide a bot display name. This name will appear in Bing search results.
Long Description – provide about bot application. The bot must operate as described in its bot description.
Website - Link to your website with more information about this bot. 


Step 4: 

The Category and tags option will help us for search bot , You can select relevant category and provide tag value with comma separated .


Step 5: 

You can provide the following publisher information.
Publisher Name
Publisher Email
Publisher Phone


Step 6: 

Provide the privacy and terms url and Click on Submit for Review


Step 7:

 The review process will take a few weeks or days and you will get approved email confirmation. after approval, you can search your bot on bing using search keyword based on category and tag.



Click the Test on Bing , the link to preview a sample of how the bot will appear on Bing on like below 


Related Article:

I have explained about Bot framework Installation, deployment and implementation in the below article

Summary

In this article, you learned how to connect and deploy bots into Bing Search. If you have any questions/feedback/ issues, please write in the comment box.

Introduction:

The Bot Application runs inside an application, like Skype, web chat, Facebook, Message, etc. Users can interact with bots by sending them messages, commands, and inline requests. You control your bots using HTTPS requests to the bot API. In this Article, I am going to show how we can connect Facebook messengers’ channel and integrate Bot Application to the messengers App.


Create FAQ Bot Application:

You can refer my previews article to create and build a Xamarin FAQ Bot using Azure Bot Service and deploy it into Azure. I am not using any coding for develop the Bot Application, you can follow the provided steps in the article to create and deploy FAQ Bot.


Setup Facebook Page:

We can implement Bot Application to the Facebook page. You can create Facebook page or select existing page and navigate to “About page” for find and copy the Page ID.


Login to Facebook APP:

Create a new Facebook App (https://bit.ly/1D0BHpg) on the Page and generate an App ID , App Secret and Page Access Token for integrate Bot to the page messenger. You can click on “Skip and Create APP Id” from following screen.


Create New App ID:
Provide display Name and Contact Email for integrate Bot application and Click on Create.

After click on Create button, it will navigate to App dashboard screen. The side navigation menu having Settings > Basic and copy the APPID and APP Secret. Provide the Privacy URL, Terms of Service URL, App icon and Select Category.



I have shown the following screen to Select Setting > Advanced and Set the "Allow API Access to App Settings slider to "Yes" and click on Save Changes.

Setup Message:

Select Dashboard and Click on Setup button from messenger group


Create Page Access Token:

Select Setting from messenger side navigation menu to generate token, you can select the Page and generate access token and copy the page access token.

Setup Webhooks:

Click Set up Webhooks to forward messaging events from Facebook Messenger to the bot.



Provide following callback URL and Verify token to the webhooks setup page and select the message, message_postbacks, messaging_optins and message_deliveries subscription fields. The following Steps 2, will show how to generate Callback URL and verify token from Azure portal.


You can click on “Verify and Save “and select the Facebook page to Subscribe the webhook to the Facebook page.

Connect Facebook Channel:

Step 1: Login to Azure portal > Select the “All Resources” > Select Channels > Select Facebook Messengers, let we start configure “Facebook Messengers “Channel and follow below steps, the end of this article you can able to deploy Bot into the Facebook messenger



Step 2:

The Azure Facebook configuration channel will generate following Callback URL and verify token, You can copy those information and Past to the Facebook webhook setup screen. (Return to the Facebook messenger setup screen).





Step 3:

You can paste the Facebook App ID, Facebook App Secret, Page ID,and Page Access Token values copied from Facebook Messenger previously. You can use the same bot on multiple facebook pages by adding additional page ids and access tokens.


Submit for Facebook Review:

Select Ap preview and Click and Submit for review after submit will take some time for the facebook team testing to the messenger bot and you can mark your app live available to the public , then you can test messenger from the Facebook page .


Facebook Team review and Testing:

You can verify Facebook team testing progress, navigate to your Facebook page and Click on Inbox and verify, if anything problem to the messenger bot, the Team will update the bug list from App review screen.

Xamarin FAQ Messengers testing:

You can select your Facebook page and test your bot application. I have trained 7000+ more questions to the Facebook messengers bot from Xamarin Q & A Page,if you want to look the xamarin FAQ demo. Navigate to Xamarin Q & A Facebook page and ask your xamairn related question.





Summary:

In this article, you have learned how to integrate bot application right into your Facebook Page via Azure Microsoft AI. If you have any questions/feedback/issues, please write in the comment box.

Featured Post

Improving C# Performance by Using AsSpan and Avoiding Substring

During development and everyday use, Substring is often the go-to choice for string manipulation. However, there are cases where Substring c...

MSDEVBUILD - English Channel

MSDEVBUILD - Tamil Channel

Popular Posts