-
Notifications
You must be signed in to change notification settings - Fork 390
Home
- What is Template 10?
- Template 10 Documentation
- Template 10 Philosophy and Other Information
- Is Template 10 right for me?
- Known Issues with Template10
Do you have technical questions you want to ask the community? Use the
Template10
tag on StackOverflow. http://stackoverflow.com/questions/tagged/template10
Template 10 is a set of Visual Studio project templates. They sling-shot developer productivity by getting ~80% of the boilerplate stuff delivered in the template - things like navigation, suspension, and even a Hamburger control.
Template 10 is intended for Window XAML apps written in C#.
Template 10 is the brainchild of Microsoft Developer Evangelism and was started there. Lots of learnings from Windows 8, including lots from the Pattern's and Practices Prism.StoreApps framework are in the code base.
The philosophy is this: we want you do it our way unless you want to do it your way. You are the developer and only you know your app well enough to make big decisions. But, without a good reason to do it another way, do it our way. It's not about telling you to do it our way, it's about telling you to do it our way unless you don't want to. It's about guidance. It's about conventions. And, it's about flexibility.
Here are some of our conventions:
- We put views (XAML files) in a /Views folder (and ns)
- We only have one view-model for one view
- We put our view-models in a /ViewModels folder (and ns)
- We use OnNavigatedTo in view-models, not pages
- We put our models in a /Models folder (and ns)
- We often use the façade pattern with our models
- We navigate using a NavigationService
- We communicate with a Messenger
- We like Dependency Injection
- We use Template 10 ;-)
- There are controls
- There are behaviors
- There are services
- There are converters
- There are MVVM classes (BindableBase, DelegateCommand, and ViewModelBase)
- There are utility classes (Template.Utils)
- There are project templates (Blank, Minimal, Hamburger)
- There is a NuGet package
- There are samples, many samples!
No. Though it's difficult to imagine any XAML app not using model-view-view-model, there is nothing in Template 10 that requires you to use it. Template 10 is compatible with any MVVM framework.
To leverage other MVVM frameworks, simply inherit from Template10.Mvvm.ViewModelBase or implement Template10.Services.NavigationService.INavigable. This enables OnNavigatedTo/From in your view-models.
- On Microsoft Virtual Academy's Developer's Guide to Windows 10
- On Microsoft official Windows 10 Hands-on-Labs
- At the Microsoft Windows 10 Tour events
- In Microsoft Press Windows 10 exam-prep books
- Jerry Nixon, co-author of Developer's Guide to Windows 10.
- Daren May, co-author of official Windows 10 hands on labs.
- Robert Evans, lead field engineer and consultant for Windows apps.
- Microsoft (PFE) premier field engineers, worldwide.
- Internal Microsoft product teams who contribute and advise.
- Internal Microsoft platform teams who contribute and advise.
- Community developers, like you, who submit pull requests all the time.
Probably. Template 10 packs in as many time-saving lessons-learned as possible. It's perfect for new apps, or apps wanting to leverage the library. That being said, it's not for everyone (probably 90% of Windows XAML apps).
There are a couple of known issues with Template 10 v1.1.10.
- When HamburgerButtonInfo.ButtonType is set to Command, the Visibility property of the button isn't respected.
- On initial load, the state of the HamburgerMenu can be incorrect (in some instances).
- HamburgerButtonInfo.Visibility defaults to Visible when the HamburgerMenu is full screen.
- The HamburgerMenu's initial color is transparent, which looks stupid.
- Home
- Getting Started
- Template 10 Templates
- Behaviors and Actions
- Bootstrapper
- Controls
- Converters
- Services
- Hints, tips and other documentation