17
Projects and solution folders
The Hilo Visual Studio solution contains three projects: Hilo, HiloTests, and CartoonEffect.
Note The version of Hilo that contains the HiloTests project is available at patterns & practices -
Develop Windows Store apps using C++ & XAML: Hilo.
The Hilo project uses Visual Studio solution folders to organize the source code files into these logical
categories:
The Assets folder contains the splash screen, tile, and other images.
The Common folder contains common page and navigation functionality for the app.
The Strings folder contains resource strings, with subfolders for each locale.
The ExceptionHandling folder defines the policies and classes for dealing with unhandled
exceptions.
The Imaging folder contains imaging extension code and helpers.
The Models folder contains repository code and other classes that are used by viewmodels.
The Tile folder contains the code that updates the app's Start screen tile.
The ViewModels folder contains the application logic that is exposed to XAML controls.
The Views folder contains the app's XAML controls.
The XamlExtensions folder contains data converters and other utilities.
The HiloTests project contains unit tests for Hilo. It shares code with the Hilo project and adds source
files that contain unit tests. The CartoonEffect project implements an image processing algorithm that
applies a cartoon effect to an image, packaged as a static library.
You can reuse some of the components in Hilo with any app with little or no modification. For your own
app, you can adapt the organization and ideas that these files provide. When we consider a coding
pattern to be especially applicable in any app, we call it out here.
The development tools and languages
Hilo is a Windows Store app that uses C++ and XAML. This combination is not the only option. You can
write Windows Store apps in many ways, using the language of your choice. When we considered which
language to use for Hilo, we asked these questions:
What kind of app do we want to build? If you're creating a food, banking, or photo app, you
might use HTML5/CSS/JavaScript or XAML/C++/C#/Visual Basic because the Windows Runtime
provides enough built-in controls and functionality to create these kinds of apps. However, if
you're creating a 3-D app or game and want to take full advantage of graphics hardware, you
might choose C++ and DirectX.