This roadmap provides an overview of key enterprise features for Windows 10 Universal Windows Platform (UWP) apps.
Note This article is targeted towards developers writing enterprise UWP apps. For general UWP development, see the How-to guides for Windows 10 apps. For WPF, Windows Forms, or Win32 development, visit the Desktop dev center. For IT professional resources, like deploying Windows 10 or managing enterprise security features, see Windows 10 on TechNet.
Is there a version of this application that shows some of the advancements that were showcased at Build during this presentation Rapidly Construct LOB Applications with UWP and Visual Studio
Things worth calling out at front:
What's new for Enterprise applications
Here's some tools, libraries, and capabilities that have been created fairly recently.
Windows Template Studio
Windows Template Studio 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.
Controls to create Desktop-Style UIs
We've released new UWP XAML controls that fill the gap between a traditional desktop application UI and a UWP UI.
For example, the new MenuBar, DropDownButton, SplitButton, and CommandBarFlyout controls give you more flexible ways to expose commands, and the EditableComboBox let's the user enter values that aren't listed in a pre-defined list of options.
Controls to support Enterprise scenarios
The DataGridView provides a flexible way to display a collection of data in rows and columns.
The TreeView enables a hierarchical list with expanding and collapsing nodes that contain nested items. It can be used to illustrate a folder structure or nested relationships in your UI.
Windows UI Library
The Windows UI Library is a set of NuGet packages that provide controls and other user interface elements for UWP apps. It also enables down-level compatibility with earlier versions of Windows 10, so your app works even if users don't have the latest OS.
UWP controls in desktop applications
Windows 10 now enables you to use UWP controls in WPF, Windows Forms, and C++ Win32 desktop applications. This means that you can enhance the look, feel, and functionality of your existing desktop applications with the latest Windows 10 UI features that are only available via UWP controls, such as Windows Ink and controls that support the Fluent Design System. This feature is called XAML islands.
.NET Standard 2.0
The .NET Standard includes over 20,000 more APIs than .NET Standard 1.x. This makes it so much easier to migrate existing .NET Framework libraries and then use them across different .NET applications including your UWP application.
SQL Server connectivity
Your app can connect directly to a SQL Server database and then store and retrieve data by using classes in the System.Data.SqlClient namespace.
MSIX is the Windows app package format that provides a modern packaging experience to all Windows apps. The MSIX package format preserves the functionality of existing app packages and install files in addition to enabling new, modern packaging and deployment features to Win32, WPF, and Windows Forms apps.
MSIX is a packaging format built to be safe, secure and reliable, based on a combination of .msi, .appx, App-V and ClickOnce installation technologies.
See MSIX documentation.
Windows 10 provides a suite of security features for app developers to protect the identity of their users, the security of corporate networks, and any business data stored on devices. New for Windows 10 is Microsoft Passport, an easy-to-deploy two-factor password alternative that is accessible by using a PIN or Windows Hello, which provides enterprise grade security and supports fingerprint, facial, and iris based recognition.
|Intro to secure Windows app development||This introductory article explains various Windows security features across the stages of authentication, data-in-flight, and data-at-rest. It also describes how you can integrate those stages into your apps. It covers a large range of topics, and is aimed primarily at helping app architects better understand the Windows features that make creating Universal Windows Platform apps quick and easy.|
|Authentication and user identity||UWP apps have several options for user authentication which are outlined in this article. For the enterprise, the new Microsoft Passport feature is strongly recommended. Microsoft Passport replaces passwords with strong two-factor authentication (2FA) by verifying existing credentials and by creating a device-specific credential that a biometric or PIN-based user gesture protects, resulting in a both convenient and highly secure experience.|
|Cryptography||The cryptography section provides an overview of the cryptography features available to UWP apps. Articles range from introductory walkthroughs on how to easily encrypt sensitive business data, to advanced to advanced topics such as manipulating cryptographic keys and working with MACs, hashes, and signatures.|
|Windows Information Protection (WIP)||This is a hub topic covering the full developer picture of how Windows Information Protection (WIP) relates to files, buffers, clipboard, networking, background tasks, and data protection under lock.|
Data binding and databases
Data binding is a way for your app's UI to display data from an external source, such as a database, and optionally to stay in sync with that data. Data binding allows you to separate the concern of data from the concern of UI, and that results in a simpler conceptual model as well as better readability, testability, and maintainability of your app.
|Data binding overview||This topic shows you how to bind a control (or other UI element) to a single item or bind an items control to a collection of items in a Universal Windows Platform (UWP) app. In addition, it shows how to control the rendering of items, implement a details view based on a selection, and convert data for display.|
|Entity Framework 7 for UWP||Performing complex queries against large data sets is vastly simplified using Entity Framework 7, which supports UWP. In this walkthrough, you will build a UWP app that performs basic data access against a local SQLite database using Entity Framework.|
|SQLite local database||This video is a comprehensive developer's guide to using SQLite, the recommended solution for local app databases. Visit SQLite to download the latest version for UWP, or use the version that's already provided with the Windows 10 SDK.|
Networking and data serialization
Line-of-business apps often need to communicate with or store data on a variety of other systems. This is typically accomplished by connecting to a network service (using protocols such as REST or SOAP) and then serializing or deserializing data into a common format. Working with networks and data serialization in UWP apps similar to WPF, WinForms, and ASP.NET applications. See the following articles for more information.
|Networking basics||This walkthrough explains basic networking concepts relevant to all UWP apps, regardless of the communication protocols in use.|
|Which networking technology?||A quick overview of the networking technologies available for UWP apps, with suggestions on how to choose the technologies that are the best fit for your app.|
|XML and SOAP serialization||XML serialization converts objects into an XML stream that conforms to a specific XML Schema definition language (XSD). To convert between XML and a strongly-typed class, you can use the native XDocument class, or an external library.|
In order to integrate with line-of-business tools, like printers, barcode scanners, or smart card readers, you may find it necessary to integrate external devices or sensors into your app. Here are some examples of features that you can add to your app using the technology described in this section.
|Enumerate devices||This article explains how to use the Windows.Devices.Enumeration namespace to find devices that are internally connected to the system, externally connected, or detectable over wireless or networking protocols. Start here if you're building any app that works with devices.|
|Printing and scanning||Describes how to print and scan from your app, including connecting to and working with business devices like point-of-sale (POS) systems, receipt printers, and high-capacity feeder scanners.|
|Bluetooth||In addition to using traditional Bluetooth connections to send and receive data or control devices, Windows 10 enables using Bluetooth Low Energy (BTLE) to send or receive beacons in the background. Use this to display notifications or enable functionality when a user gets close to or leaves a particular location.|
|Enterprise shared storage||In device lockdown scenarios, learn how data can be shared within the same app, between instances of an app, or even between apps.|
Many users today are bringing their own phone or tablet to work, which have varying form factors and screen sizes. With the Universal Windows Platform (UWP), you can write a single line-of-business app that runs seamlessly on all different types of devices, including desktop PCs and PPI displays, allowing you to maximize the reach of your app and the efficiency of your code.
|Guide to UWP apps||In this introductory guide, you'll get acquainted with the Windows 10UWP platform, including: what a device family is and how to decide which one to target, new UI controls and panels that allow you to adapt your UI to different device form factors, and how to understand and control the API surface that is available to your app.|
|Adaptive XAML UI code sample||This code sample shows all the possible layout options and controls for your app, regardless of device type, and allows you to interact with the panels to show how to achieve any layout you are looking for. In addition to showing how each control responds to different form factors, the app itself is responsive and shows various methods for achieving adaptive UI.|
|Xamarin topic||Xamarin for targeting phone|
You have options for distributing apps to your organization’s users. You can use Microsoft Store for Business, existing mobile device management or you can sideload apps to devices. You can also make your apps available to the general public by publishing to the Microsoft Store.
|Distribute LOB apps to enterprises||You can publish line-of-business apps directly to enterprises for volume acquisition via the Microsoft Store for Business, without making the apps broadly available to the public.|
|Sideload apps||When you sideload an app, you deploy a signed app package to a device. You maintain the signing, hosting, and deployment of these apps. The process for sideloading apps is streamlined for Windows 10.|
|Publish apps to the Microsoft Store||The unified Microsoft Store lets you publish and manage all of your apps for all Windows devices. Customize your app’s availability with per-market pricing, distribution and visibility controls, and other options.|
Enterprise UWP samples
Intro text goes here.
Action - talk to Josh and/or Karl to get more enterprise-focused samples together.
|VanArsdel Inventory Sample||A sample Windows 10 application (using the Universal Windows Platform) focused in Line of Business scenarios, showing how to use the latest Windows capabilities in Desktop applications. The sample is based around creating and managing customer, orders, and products for the fictitious company VanArsdel.|
|Highlights MVVM, SQL database, Entity Framework. List others.|
Patterns and practices
Code bases for large scale, enterprise-grade apps can become unwieldy. Prism is a framework for building loosely coupled, maintainable, and testable XAML applications in WPF, Windows 10 UWP, and Xamarin Forms. Prism provides an implementation of a collection of design patterns that are helpful in writing well-structured and maintainable XAML applications, including MVVM, dependency injection, commands, EventAggregator, and others.
For more information on Prism, see the GitHub repo.