Book Image

C# 8 and .NET Core 3 Projects Using Azure - Second Edition

By : Paul Michaels, Dirk Strauss, Jas Rademeyer
Book Image

C# 8 and .NET Core 3 Projects Using Azure - Second Edition

By: Paul Michaels, Dirk Strauss, Jas Rademeyer

Overview of this book

.NET Core is a general-purpose, modular, cross-platform, and opensource implementation of .NET. The latest release of .NET Core 3 comes with improved performance and security features, along with support for desktop applications. .NET Core 3 is not only useful for new developers looking to start learning the framework, but also for legacy developers interested in migrating their apps. Updated with the latest features and enhancements, this updated second edition is a step-by-step, project-based guide. The book starts with a brief introduction to the key features of C# 8 and .NET Core 3. You'll learn to work with relational data using Entity Framework Core 3, before understanding how to use ASP.NET Core. As you progress, you’ll discover how you can use .NET Core to create cross-platform applications. Later, the book will show you how to upgrade your old WinForms apps to .NET Core 3. The concluding chapters will then help you use SignalR effectively to add real-time functionality to your applications, before demonstrating how to implement MongoDB in your apps. Finally, you'll delve into serverless computing and how to build microservices using Docker and Kubernetes. By the end of this book, you'll be proficient in developing applications using .NET Core 3.
Table of Contents (13 chapters)

Using the Azure Storage Client

We'll start by uploading a file into Azure Storage. The first step is to download the NuGet package for client access to Azure Storage:

Install-Package WindowsAzure.Storage

Then, we can create the method to upload the file:

public async Task UploadFile(string fullPath)
{
string fileName = Path.GetFileName(fullPath);
var blob = GetBlockBlobReference(fileName);

using (var fileStream = System.IO.File.OpenRead(fullPath))
{
await blob.UploadFromStreamAsync(fileStream);
}
}

The preceding code is basically getting a reference to the file in Azure (even though it doesn't exist) and uploading the stream. We should probably have a look at the helper method, that is, GetBlockBlobReference:

private CloudBlockBlob GetBlockBlobReference(string fileName)
{
if (CloudStorageAccount.TryParse(_connectionString, out CloudStorageAccount...