This tutorial shows how to create an ASP.NET Core web app using Visual Studio and deploy it from Visual Studio to Azure App Service using continuous deployment.
See also [Use VSTS to Build and Publish to an Azure Web App with Continuous Deployment](/vsts/build-release/archive/apps/aspnet/aspnet-4-ci-cd-azure-automatic), which shows how to configure a continuous delivery (CD) workflow for [Azure App Service](/azure/app-service/app-service-web-overview) using Visual Studio Team Services. Azure Continuous Delivery in Team Services simplifies setting up a robust deployment pipeline to publish updates for apps hosted in Azure App Service. The pipeline can be configured from the Azure portal to build, run tests, deploy to a staging slot, and then deploy to production.
> [!NOTE]
> To complete this tutorial, a Microsoft Azure account is required. To obtain an account, [activate MSDN subscriber benefits](https://azure.microsoft.com/pricing/member-offers/credit-for-visual-studio-subscribers/?WT.mc_id=A261C142F) or [sign up for a free trial](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).
## Prerequisites
This tutorial assumes the following software is installed:
1. Select the **ASP.NET Core Web Application** project template. It appears under **Installed** > **Templates** > **Visual C#** > **.NET Core**. Name the project `SampleWebAppDemo`. Select the **Create new Git repository** option and click **OK**.
1. In the **New ASP.NET Core Project** dialog, select the ASP.NET Core **Empty** template, then click **OK**.
![New ASP.NET Project dialog](azure-continuous-deployment/_static/02-web-site-template.png)
> [!NOTE]
> The most recent release of .NET Core is 2.0.
### Running the web app locally
1. Once Visual Studio finishes creating the app, run the app by selecting **Debug** > **Start Debugging**. As an alternative, press **F5**.
It may take time to initialize Visual Studio and the new app. Once it's complete, the browser shows the running app.
![Browser window showing running application that displays 'Hello World!'](azure-continuous-deployment/_static/04-browser-runapp.png)
1. After reviewing the running Web app, close the browser and select the "Stop Debugging" icon in the toolbar of Visual Studio to stop the app.
## Create a web app in the Azure Portal
The following steps create a web app in the Azure Portal:
1. Log in to the [Azure Portal](https://portal.azure.com).
1. Select **NEW** at the top left of the portal interface.
1. Select **Web + Mobile** > **Web App**.
![Microsoft Azure Portal: New button: Web + Mobile under Marketplace: Web App button under Featured Apps](azure-continuous-deployment/_static/05-azure-newwebapp.png)
1. In the **Web App** blade, enter a unique value for the **App Service Name**.
> The **App Service Name** name must be unique. The portal enforces this rule when the name is provided. If providing a different value, substitute that value for each occurrence of **SampleWebAppDemo** in this tutorial.
Also in the **Web App** blade, select an existing **App Service Plan/Location** or create a new one. If creating a new plan, select the pricing tier, location, and other options. For more information on App Service plans, see [Azure App Service plans in-depth overview](/azure/app-service/azure-web-sites-web-hosting-plans-in-depth-overview).
1. Select **Create**. Azure will provision and start the web app.
![Azure Portal: Sample Web App Demo 01 Essentials blade](azure-continuous-deployment/_static/07-azure-webappblade.png)
## Enable Git publishing for the new web app
Git is a distributed version control system that can be used to deploy an Azure App Service web app. Web app code is stored in a local Git repository, and the code is deployed to Azure by pushing to a remote repository.
1. Log into the [Azure Portal](https://portal.azure.com).
1. Select **App Services** to view a list of the app services associated with the Azure subscription.
1. Select the web app created in the previous section of this tutorial.
1. In the **Deployment** blade, select **Deployment options** > **Choose Source** > **Local Git Repository**.
In this section, create a local Git repository using Visual Studio and push from that repository to Azure to deploy the web app. The steps involved include the following:
* Add the remote repository setting using the GIT URL value, so the local repository can be deployed to Azure.
* Commit project changes.
* Push project changes from the local repository to the remote repository on Azure.
1. In **Solution Explorer** right-click **Solution 'SampleWebAppDemo'** and select **Commit**. The **Team Explorer** is displayed.
![Team Explorer Connect tab](azure-continuous-deployment/_static/10-team-explorer.png)
1. In **Team Explorer**, select the **Home** (home icon) > **Settings** > **Repository Settings**.
1. In the **Remotes** section of the **Repository Settings**, select **Add**. The **Add Remote** dialog box is displayed.
1. Set the **Name** of the remote to **Azure-SampleApp**.
1. Set the value for **Fetch** to the **Git URL** that copied from Azure earlier in this tutorial. Note that this is the URL that ends with **.git**.
> As an alternative, specify the remote repository from the **Command Window** by opening the **Command Window**, changing to the project directory, and entering the command. Example:
1. Select the **Home** (home icon) > **Settings** > **Global Settings**. Confirm that the name and email address are set. Select **Update** if required.
1. Select **Home** > **Changes** to return to the **Changes** view.
1. Enter a commit message, such as **Initial Push #1** and select **Commit**. This action creates a *commit* locally.
![Team Explorer Connect tab](azure-continuous-deployment/_static/12-initial-commit.png)
> [!NOTE]
> As an alternative, commit changes from the **Command Window** by opening the **Command Window**, changing to the project directory, and entering the git commands. Example:
>
> `git add .`
>
> `git commit -am "Initial Push #1"`
1. Select **Home** > **Sync** > **Actions** > **Open Command Prompt**. The command prompt opens to the project directory.
1. Enter the following command in the command window:
`git push -u Azure-SampleApp master`
1. Enter the Azure **deployment credentials** password created earlier in Azure.
This command starts the process of pushing the local project files to Azure. The output from the above command ends with a message that the deployment was successful.
```
remote: Finished successfully.
remote: Running post deployment command(s)...
remote: Deployment successful.
To https://username@samplewebappdemo01.scm.azurewebsites.net:443/SampleWebAppDemo01.git
* [new branch] master -> master
Branch master set up to track remote branch master from Azure-SampleApp.
```
> [!NOTE]
> If collaboration on the project is required, consider pushing to [GitHub](https://github.com) before pushing to Azure.
### Verify the Active Deployment
Verify that the web app transfer from the local environment to Azure is successful.
In the [Azure Portal](https://portal.azure.com), select the web app. Select **Deployment** > **Deployment options**.
> As an alternative, push the changes from the **Command Window** by opening the **Command Window**, changing to the project directory, and entering a git command. Example:
>
> `git push -u Azure-SampleApp master`
## View the updated web app in Azure
View the updated web app by selecting **Browse** from the web app blade in the Azure Portal or by opening a browser and entering the URL for the web app. Example: `http://SampleWebAppDemo.azurewebsites.net`
## Additional resources
* [Use VSTS to Build and Publish to an Azure Web App with Continuous Deployment](/vsts/build-release/archive/apps/aspnet/aspnet-4-ci-cd-azure-automatic)