Book Image

Windows Presentation Foundation Development Cookbook

Book Image

Windows Presentation Foundation Development Cookbook

Overview of this book

Windows Presentation Foundation (WPF) is Microsoft's development tool for building rich Windows client user experiences that incorporate UIs, media, and documents. With the updates in .NET 4.7, Visual Studio 2017, C# 7, and .NET Standard 2.0, WPF has taken giant strides and is now easier than ever for developers to use. If you want to get an in-depth view of WPF mechanics and capabilities, then this book is for you. The book begins by teaching you about the fundamentals of WPF and then quickly shows you the standard controls and the layout options. It teaches you about data bindings and how to utilize resources and the MVVM pattern to maintain a clean and reusable structure in your code. After this, you will explore the animation capabilities of WPF and see how they integrate with other mechanisms. Towards the end of the book, you will learn about WCF services and explore WPF's support for debugging and asynchronous operations. By the end of the book, you will have a deep understanding of WPF and will know how to build resilient applications.
Table of Contents (13 chapters)
2
Using WPF Standard Controls

The DataContract attribute

A data contract is a formal agreement between a client and a service that abstractly describes the data to be exchanged. In WCF, this is the most common way to serialize an object and make it ready to be available for passing between client and service. This is done by marking the class with the [DataContract] attribute.

It is worth mentioning that the serialization is not restricted to exactly match the class name and/or the property names in the class. You can simply use the DataContract and DataMember attributes to define their names in serialization. For example, consider the following code snippet:
[DataContract (Name = "Employee")]
public class EmployeeModel { ... }

In the preceding code snippet, though the class name is EmployeeModel, the class will be exposed to serialization as Employee as the name mapping has been done using the Name property of the attribute.