Book Image

Learn C# Programming

By : Marius Bancila, Raffaele Rialdi, Ankit Sharma
5 (1)
Book Image

Learn C# Programming

5 (1)
By: Marius Bancila, Raffaele Rialdi, Ankit Sharma

Overview of this book

The C# programming language is often developers’ primary choice for creating a wide range of applications for desktop, cloud, and mobile. In nearly two decades of its existence, C# has evolved from a general-purpose, object-oriented language to a multi-paradigm language with impressive features. This book will take you through C# from the ground up in a step-by-step manner. You'll start with the building blocks of C#, which include basic data types, variables, strings, arrays, operators, control statements, and loops. Once comfortable with the basics, you'll then progress to learning object-oriented programming concepts such as classes and structures, objects, interfaces, and abstraction. Generics, functional programming, dynamic, and asynchronous programming are covered in detail. This book also takes you through regular expressions, reflection, memory management, pattern matching, exceptions, and many other advanced topics. As you advance, you'll explore the .NET Core 3 framework and learn how to use the dotnet command-line interface (CLI), consume NuGet packages, develop for Linux, and migrate apps built with .NET Framework. Finally, you'll understand how to run unit tests with the Microsoft unit testing frameworks available in Visual Studio. By the end of this book, you’ll be well-versed with the essentials of the C# language and be ready to start creating apps with it.
Table of Contents (20 chapters)

Publishing an application

The last essential step for making an application usable outside the developer 
machine is publishing. There are two kinds of deployment: framework-dependent and self-contained.

Framework-dependent deployment (FDD) creates a folder with all the required binaries needed to run the application on any computer with the same OS and the .NET runtime installed. FDD deployment has several advantages:

  • It lowers the size of the deployment folder.
  • It makes the security updates easy to install by an IT manager instead of the need to redeploy them.
  • When deploying in Docker containers, you can start from pre-built images already containing the .NET runtime for the version you need.

The other publishing option is self-contained deployment (SCD), which creates/copies all the required files to run the application, including the runtime and all the base class libraries. The main advantage of SCD is that it gets rid of any requirements on the...