This is somehow related to the previous C# articles but also speaks about Windows 8 (8.1.) environment.
As you probably know already Windows 8 has it’s own store and and as it is quite new it can be a good way to make your entry in mobile devices world.
I will briefly present what languages are at your disposal when developing Windows 8 apps and get more into C# and .NET.
Windows 8 start screen supports a tiled layout, where each tile represents an application installed on the machine. Unlike a typical Windows desktop application, Windows 8 applications are built for touch-screen interactions. They are also run in full-screen renderings and lack the usual “chrome” (e.g., menu systems, status bars, and toolbar buttons) we see in many desktop applications.
Building a Windows 8 application requires developers to adhere to an entirely new set of UI design guidelines, data storage methodologies, and user input options. To be sure, a Win8 app is much more than a tile installed on the Windows 8 start screen.
Creating and running a Windows 8 application is only possible on Windows 8 and is not supported under Windows 7. In fact, if you install Visual Studio on Windows 7 (or earlier), you will not even see Windows 8 project templates appear in the New Project dialog box.
So as I previously mentioned we can develop applications in .NET (mostly any .NET aware language) and XAML which is not quite new as we do have XAML in Silverlight and WPF.
Coding a Little C++
Why C++ ?
It is much closer to the operating system than .NET and gives very fine-grained control over the UI and device interactions.
It is possible — even recommended — to build Windows 8 application logic in C++. Games, especially, benefit from the large amount of existing code in the community and strong library support. C++ applications are likely faster than HTML5 or .NET, providing an outlet for very processor-heavy tasks. And, as with .NET, C++ libraries can be consumed by HTML5 Windows 8 applications, too.
So back to the .NET and C#
Programming a Windows 8 application requires developers toR tap into an entirely new runtime layer termed (appropriately enough) Windows Runtime (WinRT). Be very aware that WinRT is not the .NET CLR, however it does offer some similar services such as garbage collection.
In addition, these applications are created using a completely new set of namespaces, all of which begin with the root name Windows.
The Windows.* namespaces offer functionality that mirrors many APIs of the .NET base class libraries. In fact, from a programming point of view, building an application for WinRT feels very similar to building a .NET application for the CLR.
As well, many of the Windows.* namespaces offer similar (though not identical) functionality as is found in the .NET base class libraries.
In addition to the Windows.* namespaces, Windows 8 applications can also make use of a large subset of the .NET platform. Collectively, the .NET APIs for Windows 8 applications, provide support for generic collections, LINQ, XML document processing, I/O services, security services etc.
Just keep in mind that .NET proper is not used to build Windows 8 applications. Rather, you will make use of new libraries (Windows.*), a new runtime (WinRT), and a subset of .NET proper (the .NET APIs) to create such a program.
The keyword here is “subset” as from my own personal experience I learned that you have limited access to what you were used to from WPF and WF applications. One simple example I can think of is that in WinRT you are not able to access an SQL Server which I find rather disturbing as not everyone has an Azure subscription and the SQLite is no match for SQL Server.
Sadly I am unable to provide you free books on this matter as there are not any good free books. However you can find plenty of resources on ACM learning platform if you have a subscription.
For that reason I will try to write more articles on this field, including Hands-ON articles to get you started as well as recommendation of other resources on this area.