A Succinct Look at Windows 10 Tools for Developers

A lot has change since we first looked at Windows 10 in November of last year. As we have been updating our machines to the latest build, a very important announcement came out last week introducing the Windows 10 Technical Preview for Developers. While we are all excited about the new features and functionality, it is often helpful to have someone break down what we need to know without visiting and dissecting multiple pages and watching several videos ourselves. This article aims to cover the bits that you need, as well as some additional resources to get started. I’ve also spent some time breaking down the major announcements and taking a look at the new Windows 10 project template.

The bits and resources you need

10K Foot View

convergencejourney

Image courtesy of Microsoft

Taking a look at this image, a couple of things stand out. We see that there are a variety of devices such as mobile, PC, Xbox, IoT and more; all of them are under the Universal Apps umbrella.

What is even more interesting is that we are looking at one SDK as well as one store and dev center. So in other words, we will create one binary that will run across the family of Microsoft devices. It also contains one API surface that can detect the device it is running on and allow you to utilize those capabilities (for example, the Xbox Friend List when running on an XBox).

Microsoft also announced Adaptive UX – this contains adaptive controls and screen layouts that enable an experience tailored to the device it is running on. Now that we have an overview, lets look at a sample.

Taking a Look at VS 2013 vs. VS 2015 App Templates

With Visual Studio 2013, we had the following Store templates, which included “Universal Apps”, “Windows Apps” and “Windows Phone Apps :

vs2013templates

With Visual Studio 2015 CTP 6 and the Tools for Windows 10 Technical Preview installed, you will have the same templates except a new one, “Windows 10”, in addition to the “Store Apps” template.

vs2015templates

It contains one app template called “Blank Application (UAP)”. UAP is a term that you hear over and over and stands for “Universal App Platform” and is a converged API surface that you develop against.

Taking a look at the Windows 10 Blank Application Template

If you select the Windows 10 Blank Application Template and examine the solution explorer, nothing will seem unusual to you except for the fact that it is one project – you may recall having 3 separate projects if you were building a Windows Universal App in Windows 8.1.

uapsolutionexplorer

Let’s examine each file one by one:

  • Properties – contains AssemblyInfo.cs, which is general info about an assembly and a new file called Default.rd.xml, which contains runtime directives used by .NET native.
  • References – contains .NET for Windows Store apps, Universal App Platform and Application Insights. It also gives you the ability to add Extension SDKs for Windows Desktop or Windows Mobile specific APIs.referencemanagerYou could then write code to test if a particular feature is present or not on the device the app is currently running on.
  • Assets – are your logos, etc.
  • App.xaml/App.xaml.cs – is the starting point of your application.
  • App1_TemporaryKey.pfx – A temporary signing key is created.
  • ApplicationInsights.config – A configuration file is created for Application Insights; please note that this is now added by default.
  • MainPage.xaml/MainPage.xaml.cs – is the first view displayed to your user.
  • Package.appxmanifest – defines the package and what capabilities are required.
  • packages.config – lists the packages installed (ex. Application Insights).

The Designer

If we take a look at the designer, then we can see a vast variety of screen sizes are available to test our UI layout. It includes everything from the desktop, three different IoT devices, phone, tablet and even an Xbox.

vs15designer

Sharing code without the “Shared Project”

No longer do you have to write code in the “Shared Project” that we used in Windows 8.1 Universal Apps.

sharedwin81

Now you can write it in the MainPage.xaml, along with any code you wish to share. Since it targets multiple device familes, you could write the following code and it would trigger a MessageDialog that would have the appropriate appearance on different devices.

Let’s try this on a couple of devices.

public MainPage()
{
    this.InitializeComponent();
    Loaded += MainPage_Loaded;
}

async void MainPage_Loaded(object sender, RoutedEventArgs e)
{
    var dialog = new MessageDialog("Telerik Rocks!");
    await dialog.ShowAsync();
}

The resulting Windows 10 desktop app looks like:

win10app

The same Windows Phone App looks like:

winphoneapp1

Again, without changing any code the appropriate MessageDialog appears and adjusts to the width of the screen. This code would also apply to the other devices listed in the converged graphic at the top of the article such as IoT, Xbox, Surface Hub and Hololens.

Expression Blend Lives

Expression Blend users will be pleased to hear that it is included in the Visual Studio 15 CTP 6 installation. Expression Blend uses the Visual Studio shell, so you have the richness of Visual Studio without compromising on performance. You will notice that you have the ability to log into Expression Blend where your settings will roam and more. It also comes complete with the templates for Windows 10.

blendvs2015

Other features include :

  • Smart Tags
  • Basic Debugging Support
  • Peek in XAML
  • Custom Windows Layouts
  • Source Control
  • NuGet
  • XAML IntelliSense

Hosted Web Apps

Windows 10 allows web developers to package their apps to create a native Windows App that you can publish to the store. You have the ability to not only be findable via the Windows Store, but you can call Universal APIs from JavaScript and access things such as the Camera, Cortona, Contact Lists and more.

Several screen shots of Hosted Web Apps can be found at The Verge.

What about Desktop Apps?

Windows 10 ships with .NET Framework 4.6 and will run your Win32, WPF and Windows Forms apps out of the box. You can also leverage the Windows 10 APIs in your Win32 apps.

Telerik and vNext

Telerik will absolutely be there to support vNext of everything from Windows 10 to Visual Studio 2015 and more. We already have support for JustCode and Visual Studio 15 CTP 6, which is based completely off of Roslyn and supports C# 6.0. We’re also working hard to make sure our other products have the support you need. Also, in case you missed it, we released an e-book that is called, “The Developer’s Guide to the new .NET“. Feel free to check it out.

Wrap-up

We’ve learned today that you are going to have the luxury of reusing your existing XAML/C# skills to write UAP apps that span the family of Microsoft’s devices. Web Developers will also have the ability to leverage Hosted Web Apps. We will certainly learn more at //Build, but until then, this should be enough to get you started.

Also, if you want to learn more about Modern .NET apps, Telerik is hosting a new event called TelerikNext taking place in Boston, MA on May 3rd-5th. I’d love to see you there and discuss everything that happened at //Build. As a special bonus, if you use the promo code CRUMP when you register, you will receive $50 off the standard ticket price.

Comments