I couldn't agree more. I develop applications for mobile computers that integrate with a variety of hardware. Creating a Modern app would seem to be a natural step in the evolution of our product. But we cannot access much of that hardware from a Modern app, and what's worse, we cannot communicate with a desktop application or Windows service that does have access to that hardware.
If your app is to be installed from the appstore, it shouldn't be able to do bad things to the machine it is running on.
That should explain why Metro apps don't get to talk directly to your hardware, your desktop apps or to other metro apps by default.
If you need to mess with hardware or with other people's apps, you need to be a desktop application, albeit with a Metro frontend doing the "driving". Your desktop application can be invisible and expose itself as a server to the Metro application over a loopback socket.
- We need to be able to sideload our Modern apps on tablets/computers that are NOT part of a domain. Our LOB customers do not have big IT departments. In many cases, the IT department is the guy who figured out how to set a password on the wireless router.
You can use Intune to configure non-domain joined WinRT/iPad/iPhone/Android/AndroidTab/Windows devices centrally. If you have several small clients, you can also be the administrator of several entirely distinct "groups". Each group gets a "company store" of side-loadable apps that the user can choose to install from.