Windows Template Studio quickly builds a UWP app, using a wizard-based UI to turn your needs into a foundation of Windows 10 patterns and best practices.
C# Visual Basic PowerShell Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

Windows Template Studio

Windows Template Studio (WTS) is a Visual Studio 2017 Extension that accelerates the creation of new Universal Windows Platform (UWP) apps using a wizard-based experience. The resulting UWP project is well-formed, readable code that incorporates the latest Windows 10 features while implementing proven patterns and best practices. Sprinkled throughout the generated code we have links Docs, Stack Overflow and blogs to provide useful insights. WTS supports creating apps in C# or VB.Net.

Example scenario: I need an app that uses MVVM Light, uses master detail, can suspend and resume, settings, maps on one of the pages and will need Azure hub notifications. It will need a background service that does a query every 5 minutes.

Windows Template Studio screenshot

Build Status

Branch CI Test Version Version
master Build status Prerelease Version Production Version
dev Build status Nightly Version
Branch Gen Tests Full Tests WACK Tests
master Generation Tests Full Integration Tests Wack Tests
dev Generation Tests Full Integration Tests Wack Tests

The builds include test verifications to validate the contributions:

  • CI Build: Includes all unit test + minimum integration verifications (minimum generation + build + code style rules). Runs every PR requested / PR accepted.
  • Gen Tests: Includes tests to verify combinations and variations of templates from a project generation point of view. Runs every PR accepted and takes a bit to complete.
  • Full Tests: Includes Gen Tests and actually builds the solutions generated to ensure no build time issues found. Runs every PR accepted and takes longer to be completed.
  • Wack Tests: Includes tests that run the App Certification Kit against the generated projects to ensure there are no issues blocking a submission to the store. Runs once nightly and takes quite a while to complete.

Features

Windows Template Studio approaches UWP app creation using the following four attribute sets:

  • Project type: First, how do you want your app's UI navigation to behave? We currently support three project types: basic, navigation pane, and pivot and tabs.
  • App design pattern: Next, what coding pattern do you want to use in your project, we currently support three common patterns: code behind, basic MVVM, MVVMLight, Caliburn.Micro, and Prism.
  • App pages: To accelerate app creation, we provide a number of app page templates that you can use to add common UI pages into your new app. We currently include page templates from the blank page to the common layouts (e.g., master/detail, tabbed, web view) to pages that implement common patterns (e.g., app settings, map control). Using the wizard, add as many of the pages as you need, providing a name for each one, and we'll generate them for you.
  • Windows 10 features: Lastly, you specify which UWP capabilities you want to use in your app, and we'll build out the framework for the features into your app, tagging 'TODO' items. Currently supported features cover application lifecycle (settings storage, suspend and resume), background tasks, and user interaction (app notifications, Live tiles, and Azure Notification Hub).

Once you select the attributes you want your new UWP app to have, you can quickly extend the generated code.

Documentation

Known issues

  • Issue (#1753): Wack tests are currently failing in our build server due to a machine configuration issue. All tests pass correctly if locally executed. We are working on getting them back to green.
  • Issue (#1629): the Master-Detail view has an issue if you set the background to Transparent in the MastertDetailControl. We are actively working with the UWPCommunityTookit team to get this solved as soon as possible.
  • Issue (#1532): when uninstalling / upgrading where you may get an error of "A value for 'Component' needs to be specified in the catalog." If you get this error, we need logs to help track this with the help of the Visual Studio team. We don't know how to reproduce it but we know a few people have hit this scenario. We have how to capture these logs in the tracking issue on GitHub.
  • You can't have side-by-side versions (nightly/pre-release/release) of WindowsTemplateStudio VSPackage into a single instance of Visual Studio.

Feedback, Requests and Roadmap

Please use GitHub issues for feedback, questions or comments.

If you have specific feature requests or would like to vote on what others are recommending, please go to the GitHub issues section as well. We would love to see what you are thinking.

Here is what we're currently thinking in our roadmap.

Contributing

Do you want to contribute? We would love to have you help out. Here are our contribution guidelines.

Principles

  1. Generated templates will be kept simple.
  2. Generated templates are a starting point, not a completed application.
  3. Generated templates once generated, must be able to be compiled and run.
  4. Generated templates should work on all device families.
  5. Templates should have comments to aid developers. This includes links to signup pages for keys, MSDN, blogs and how-to's. All guidance provide should be validated from either the framework/SDK/library’s creator.
  6. All features will be supported for two most recent RTM Windows 10 Updates. Those supported releases are Windows 10 Creators Update and Windows 10 Fall Creators Update.
  7. Templates released in production will try to adhere to the design language used in the current release of Windows 10.
  8. Code should follow .NET Core coding style.

This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information see the .NET Foundation Code of Conduct.

License

This code is distributed under the terms and conditions of the MIT license.

Privacy Statement

The extension does log basic telemetry for what is being selected. Please read the Microsoft privacy statement for more information.

.NET Foundation

This project is supported by the .NET Foundation.