This tutorial shows how to prepare your local machine for
developing [.NET](https://dotnet.microsoft.com/en-us/learn/dotnet/what-is-dotnet)
and [.NET Framework](https://dotnet.microsoft.com/en-us/learn/dotnet/what-is-dotnet-framework)
apps that run on Google Cloud and call Google Cloud APIs.

## Install a development environment

The recommended development environment for running the .NET tutorials and
sample apps in this documentation is
[Visual Studio](https://www.visualstudio.com/)
or
[Visual Studio Code](https://code.visualstudio.com/).

## Create a Google Cloud project

[Create a Google Cloud project](https://docs.cloud.google.com/resource-manager/docs/creating-managing-projects.md.txt)
to run your apps. Google Cloud projects form the basis for creating,
enabling, and using all Google Cloud services.

## Set up authentication

Your .NET app must authenticate itself to use Google Cloud APIs. You use
[Application Default Credentials (ADC)](https://docs.cloud.google.com/docs/authentication/application-default-credentials.md.txt),
which let you provide credentials for either local development or in a
production environment.


If you're using a local shell, then create local authentication credentials for your user
account:

```bash
gcloud auth application-default login
```

You don't need to do this if you're using Cloud Shell.


If an authentication error is returned, and you are using an external identity provider
(IdP), confirm that you have
[signed in to the gcloud CLI with your federated identity](https://docs.cloud.google.com/iam/docs/workforce-log-in-gcloud.md.txt).

For more information, see
[Authenticate for using client libraries](https://docs.cloud.google.com/docs/authentication/client-libraries.md.txt).
For general information about authentication, see
[Authentication at Google](https://docs.cloud.google.com/docs/authentication.md.txt).

## (Optional) Install SDKs

Even though you can create and manage Google Cloud resources using your
web browser using the [Google Cloud console](http://console.cloud.google.com),
if you'd prefer to manage your Google Cloud resources from the
command-line, you can consider installing the
[Google Cloud CLI](https://docs.cloud.google.com/sdk).
The gcloud CLI is a command-line interface for Google Cloud
products and services.

## Observability (optional)

[Google Cloud Observability](https://docs.cloud.google.com/stackdriver) include observability services that help you
understand the behavior, health, and performance of your .NET
applications. For more information, see
[Google Cloud Observability for .NET](https://docs.cloud.google.com/dotnet/docs/stackdriver.md.txt).

## What's next

- [Transcribe audio to text with Speech-to-Text API](https://docs.cloud.google.com/speech-to-text/docs/transcribe-client-libraries)

- [Deploy a .NET app to App Engine flexible environment](https://github.com/GoogleCloudPlatform/dotnet-docs-samples/tree/master/appengine/flexible)

- [Deploy a .NET Framework app to Compute Engine](https://docs.cloud.google.com/dotnet/docs/getting-started/hello-world)