Here we will discuss how we can create a provider-hosted add-in using visual studio 2015 for SharePoint online site and how we can host it in Microsoft Azure. SharePoint Provider Hosted Add-ins contains components that are deployed and hosted outside SharePoint farm. Here we will discuss how we can host in Microsoft Azure.

Detailed Steps:

To start with the development follow below steps:
Open visual studio 2015/2017/2019 and then File -> New Project. Then in the New Project dialog box, choose Templates -> Visual C# -> Office/SharePoint and from there choose App for SharePoint like below. Give a name and make sure .Net Framework version should be chosen 4.5.

Then choose a SharePoint developer site and then choose Provider-hosted like below. You can see below article to know how we can create developer site in SharePoint.

Then it will ask to give credentials for the developer site and then it will automatically select the SharePoint version like below:

Then in the web project type, select whether you want to create a ASP.NET web Forms Application or ASP.NET MVC Web Application like below. Here we will choose ASP.NET MVC Web Application.

Then choose "Use Windows Azure Access Control Service (for SharePoint cloud apps)" in the Configure authentication settings like below:

Visual studio will take sometime and will create two projects one (Add-in and another one is the ASP.NET MVC Web project) like below.

Here we are not modifying the default code which is displaying the current username (presented in HomeController.cs file).

Now we will try to publish the provider hosted-add-in to Microsoft Azure.

Right click on the Web project and click on Publish like below:

This will open the Publish Web dialog box which looks like below:

Here we will use the "Microsoft Azure Web Apps" option to deploy the project to Azure.

Before procedeing further we need to create a web site in Microsoft Azure. Let us follow below article for the same.

- Steps to create a website in Microsoft Azure for SharePoint Online

Once the website is ready, follow below step.

Open the _layouts/15/appregnew.aspx url in the developer site.

There click on the Generate button for the Client Id and Client Secret fields. Then give a title and Domain put the website which we have created in Azure (without https://). And the Redirect URI put the website URL, make sure to  give in https:

Here the page looks like below:

Then open the web.config file and replace the ClientId and ClientSecret which we have generated in the above page.

It looks like below:

Now right click on the web project and click on Publish. Then choose the Microsoft Azure Web Apps option like below: 

Then click on OK.

Then login to your Azure account, Once you login, it will populate all the existing web apps. Choose the one which we have created in the above step. Here also you can directly create a web app, if you have not created before.

This will open the below screen. Give the destination url as as shown like below:

Click on Next.

Then click on Next and finally click on Publish like below:

It will take some time to publish.

Once it is successfully deployed, Now right click on the Addin project like below:

Here click on the Edit button 

Here in the Web Deploy dialog box give the clientid and client secret like below:

For the safe side click on the Deploy your web project button. Now once it is deployed successfully, click on the Pakage the app button which is presented below:

This will show the URl and ClientId, here click on Finish button which will generate the app file.

Now we can upload the .app file into the app catalog site or in the developer site. The .app file will get generated in the below location.
C:\Users\<username>\Documents\visual studio 2015\Projects\OurDemoPoviderHostedAddin\OurDemoPoviderHostedAddin\bin\Debug\app.publish\

Here I have uploaded to the Apps in Testing library in my developer site.

Once it is installed successfully, when you click on the app, the Azure site will open and it will display the user name like below.


Here we have discussed how we can develop a SharePoint provider hosted add-in using visual studio 2015 and how we can deploy it to Microsoft Azure.