Getting Into UWP (Universal Windows platform) - Windows10 Apps

In this article you will learn some useful terms and things you need to know to start with windows 10 apps.

Introduction

In this article, I will go through the technical terms and technologies used to develop for universal windows platform. After reading this you would get the overall idea what universal apps are all about.

Content

Microsoft have announced that windows 10 would be final windows version! What it mean? Is Windows 10 perfect? Doesn't it need changes?
Answer is yes! It would evolve and change like other software products but it will only get updates, not next version of windows. Why so? It is because of the fact that all windows platforms (mobile, desktop and Xbox etc) has converged to a single Universal Platform. Which means all have same OS (kernel), now no such thing as Windows Phone 8 or 8.1, its just Windows on phone.


So if you develop app for Windows 10 it would run on all devices running windows 10 like Mobiles, Xbox, Hololens, etc. Hope you got the idea of "Universal" word in UWP.

2 .NET vs .NET Core

Windows applications are developed on top of .NET framework. It consists a runtime (CLR) and FCL (Foundation class library) I am keeping things simple here. Previously .NET was shipped as single unit and it had different subsets to cater need of different platform e.g compact subset of .NET was introduced for mobile devices which provide APIs specific to compact devices. In simple words .NET had different customized subsets for every platform which provide APIs according to platform it developed for. It caused many problems like you can't use your same code base for different platform.

To overcome this problem idea of .NET core was introduced. It uses modular approach which enables us to use same code base for different platforms. .NET core is a set of packages delivered through NuGet. It has unified BCL (Base Class Library) which can be used in any platform. When it code is compiled only those APIs which used by app are merged with that app.

You can read more about .NET Core here.

3. XAML and C#

Till this point you know what are universal apps technically. Now we will briefly see what languages could be used to develop Universal apps.

Applications have two major parts: Front end (Display) and Back end (Code to handle user interaction).
XAML(Extensible Markup Language) is used to create front end of universal windows 10 apps. XAML is XML based language proprietary of Microsoft. As clear from word "Markup" it have tags for different GUI elements e.g button just like (not really) HTML. Here we would call those controls.

To develop backend we can use C#. Every page have a backend C# (.cs) file and frontend in XAML. If you are an android developer a page is just like an 'activity' which have a backend java file. For example, if we have a button on page (XAML) we can handle it's click event in it's backend .cs file.

If you know about WPF XAML/C# is the same here.