A Consolidated and Enriched Store
Gone are the platform-specific stores, with Windows 10 there is a single store for all platforms running Windows, from the Raspberry Pi to the Xbox. The same store now also offers other kinds of media such as music, and videos.
For developers this also means there is now a single place to submit apps to, and the possibility of submitting
a single package that can run on all platforms. The Windows store is also no longer restricted in the way it was in Windows 8. It can now support traditional Win32 applications through the compatibility layer mentioned above. To keep users secure, apps installed from the Windows store, are sandboxed from each other and can only talk to each other though APIs designed for the purpose. One app cannot interact with another apps’ settings or private data, and in fact gets its own private virtual registry. This makes it harder for malware to do anything too damaging while also making it possible to quickly and consistently uninstall apps in a way that gets rid of all their data.
The features of this unified app store have also been enhanced with the ability to offer apps on a subscription model, and to have per-market pricing. The platform is now smart enough to share libraries between different applications if they use the same version, thus reducing disk space and download sizes.
There are also interesting implications of the new constantly updating model of Windows. New updates to Windows 10 can bring new platform features and APIs, however any updates to these APIs are versioned. So when developing an application, you can specify the range of versions of Windows that your application supports and the device families it supports (desktop, mobile, holographic, IoT etc.). If your app runs on the oldest version of the API and uses only UWP it should run on all platforms and devices; although in practicality such apps will be few.
This is quite similar to Android’s way of doing things where you can select the oldest version of Android you want to target, and that will lock you to the subset of APIs that that device supports. Another similarity with Android is the support for universal binaries. Just like it’s possible to have a single Android apk that runs on any Android device be it a mobile, tablet or TV, it is now possible to have single Windows binary that that can run on any platform that supports Windows, even if that platform didn’t even exist when you compiled it! Another treat for those developing for the Windows store is the ability to hide apps pushed to the store so they can only be accessed if you know the URL. Windows Store will also soon be available as a website that people can browse and buy apps from.
Other Bits and Bobs
.NET Native: For performance conscious .NET application developers, there is some good news, now .NET applications can be compiled to native machine code.
The Windows 10 store now offers Apps, Music and Videos though a single storefront. Of course we wouldn’t know because only Apps are available in India.
Microsoft is dreaming big, and aiming to reach a billion devices over the next 2-3 years. Cross-platform brides are one of their efforts to enable that.
Performance isn’t even the only advantage of .NET Native, unlike previous .NET applications that needed to have the .NET Framework used by the app installed on the end-user’s machine, compiled applications are self-contained and can ship with the bits of .NET that they need to run. This means you can use the latest version of .NET without worrying about packaging the huge .NET installer with your app. OneGet: If you’ve used Linux you’ll notice that the ease of getting and installing applications on it is unparalleled. If you want a package available for your OS, installing it is just an ‘apt-get’, ‘zypper’, ‘yum’, or ‘pacman’ command away.
Windows 10 ships with a similar tool called OneGet (which can be installed on previous Windows versions as well). With OneGet you get PowerShell commands such as ‘Find- Package’ for searching for packages to install, and ‘Install-Package’ to install them. It automatically downloads the package and extracts / installs it while creating a convenient launch script. It uses the popular community-run Chocolatey service and package in for most of the work and acts as a sort for meta-package-manager that can be extended with support for other installers / package managers.
Console Improvements: Microsoft’s cmd.exe command shell is quite, quite bad, and hasn’t improved much in a long time. Finally, with Windows 10 Microsoft has put in some work to make the experience of using ‘cmd.exe’ better.
Here you can see the new Find-Package and Install-Package commands in action in the new Windows 10 console. Also you can see the new line-by-line selection feature in action. How efficient of us.
No need for obscure registry hacks or shady patcher, Windows 10 can sideload apps or be put in to developer mode though the control panel.
First of all, finally you can resize the console window just like any other window by dragging the edges. What’s more this will automatically cause text to wrap if possible. Another great addition is the ability to easily select text in a console window without needing to access a submenu of the window menu to go into mark mode. Selecting text in the console window now works like every other window that lists text, i.e. text is selected line-by-line rather that whatever comes inside the rectangle you draw on screen. You can also do this with usual keyboard shortcuts, just press the shift and cursor keys to extend your selection and use Ctrl-C to copy and Ctrl-V to paste. The console is now also HiDPI aware and as such won’t need a magnifying glass to view on such screens. Also, you can now make the console window semi-transparent just like them people do on their Linuxes!
Conclusion
The road to a converged Windows hasn’t been without its bumps –with one of those major bumps being the massively ill-thought Windows 8 – and Windows 10 is still fresh. There are surely bumps yet to come as Microsoft seems to be trying everything new all at once. It is unlikely that the Windows 10 launch will be without niggles, but Microsoft does seem to have at least some measures in place to alleviate those issues.
We have peer-to-peer downloading of updates to reduce the burden and increase performance of frequent update downloads; the promise of frequent updates in the first place to get not only fixes, but also new features out quicker. Of course there is Windows Insider, Microsoft’s constant pool of beta-testers using the future versions of their OS and giving feedback. With such massive changes to the Windows ecosystem, how the chips fall will only become clear perhaps a decade from now when we can compare where Windows 10 is (or whatever it’s called by then) compared to now, and compared to 10 years ago when Windows XP was still the latest Microsoft OS.