Book Image

Mastering Visual Studio 2017

Book Image

Mastering Visual Studio 2017

Overview of this book

Visual Studio 2017 is the all-new IDE released by Microsoft for developers, targeting Microsoft and other platforms to build stunning Windows and web apps. Learning how to effectively use this technology can enhance your productivity while simplifying your most common tasks, allowing you more time to focus on your project. With this book, you will learn not only what VS2017 offers, but also what it takes to put it to work for your projects. Visual Studio 2017 is packed with improvements that increase productivity, and this book will get you started with the new features introduced in Visual Studio 2017 IDE and C# 7.0. Next, you will learn to use XAML tools to build classic WPF apps, and UWP tools to build apps targeting Windows 10. Later, you will learn about .NET Core and then explore NuGet, the package manager for the Microsoft development platform. Then, you will familiarize yourself with the debugging and live unit testing techniques that comes with the IDE. Finally, you'll adapt Microsoft's implementation of cloud computing with Azure, and the Visual Studio integration with Source Control repositories.
Table of Contents (11 chapters)

WPF property system

WPF provides a new property system, which extends the functionality of the default CLR (Common Language Runtime) property and is known as a dependency property. A normal CLR property is a wrapper to its getter and setter implementation of its private variable; whereas a dependency property extends it to provide you a way to compute the value based on the value of other inputs.

In addition to this, it also provides you with a way to do self-contained validation, set default values, monitor changes to its value, and do a callback.

To work with a dependency property, you must derive the class from DependencyObject, which will work as the observer. It holds the new property system defined within the DependencyObject class:

A CLR property looks like this:

  private string m_AuthorName; 
 
  public string AuthorName 
  { 
     get { return m_AuthorName; } 
     set...