Book Image

Windows Phone 8 Application Development Essentials

By : Tomasz Szostak
Book Image

Windows Phone 8 Application Development Essentials

By: Tomasz Szostak

Overview of this book

<p>Windows Phone 8 replaces Windows Phone 7 devices with the Windows NT kernel found on many Windows 8 components. Windows 8 will give you more options to develop better and more visually appealing PC and Tablet applications.</p> <p>A practical guide that will show you how you how to create testable MVVM applications keeping in mind the best UI practices. You will learn how to integrate peripheral sensors and social portals like Facebook and Twitter into your applications. This book shows the advantages of using modern patterns instead of the traditional way of programming.</p> <p>Starting with a Windows Phone UI description, the guide then takes you through the world of fast and fluid design guidelines. After that, you will be shown the beauty of C# and MVVM advantages, finishing with clear descriptions of mobile-application integration with peripherals and social media. Clear and well-described examples throughout will help you become a WP8 developer.</p> <p>You will also learn how to test your applications using Unit Test cut dependencies in your methods using Mocks, and use the newest features of C# such as asynchronous methods. If you are more of a designer than a developer, then there is also an explanation on how to create a consistent look and feel for Windows Phone applications.</p>
Table of Contents (12 chapters)

Model


Model is a description of the domain model that contains all characteristics that may describe some objects. In short, model represents the data. The main goal of creating models is to encapsulate data, validation, and business rules within classes. It is independent from ViewModel, View and is not designed to store any visual information, but it can be a data entity; for example, taken from database or web service resources.

Model classes use the INotifyPropertyChanged interface in notifications about changing a property value. All we need to do is to implement the INotifyPropertyChanged interface in our Model class and raise an event each time the property is set.

public class SampleModel : INotifyPropertyChanged
{
  private string sampleProperty;
 
  public string SampleProperty
  {
    get { return sampleProperty; }
    set
    {
      sampleProperty = value;
      RaisePropertyChanged();
    }
  }
 
  private void RaisePropertyChanged(
  [CallerMemberName] string caller = "")...