locked
Extent of app development possible with HTML/CSS/Javascript

    General discussion

  • Hi, I am new to Windows 8.1 app programming. I was browsing through the different books available, and I found there are two approaches, one is through C# and YAML (I guess kind of like what Apple offers through Objective C, Cocoa and Interface Builder), and another though HTML/CSS/Javascript.

    Is there any advantage that one approach offers over the other? For example, are there stuff which can be done though C# and YAML that is not possible though HTML/Javascript alone, maybe some APIs are not exposed or something? Or is it that whatever can done through C# can be done though HTML/Javascript as well?

    Thursday, July 17, 2014 8:00 PM

All replies

  • There are a few narrow differences, but for the most part anything that can be done via one UI can be done via the other. In almost all cases the right choice is the one that you are most familiar with.

    Regardless of if your UI is HTML or Xaml you can write and call into Windows Runtime Components written in .Net or C++ for lower level support.

    --Rob

    Thursday, July 17, 2014 8:31 PM
    Moderator
  • So the Javascript (I guess it is a custom JS for Windows 8.1 development, not exactly same as the Javascript we use for web development) exposes APIs to access pretty much everything, like access to file system, startup and shutdown, activity of user on the desktop, etc?
    Thursday, July 17, 2014 8:36 PM
  • No, it's standard HTML5 and JavaScript.

    The WinJS library includes controls to match the Windows Store design language. While this is designed for Windows Store apps it is cross-platform and open source and can be used in browsers and other devices.

    JavaScript apps can also use the same Windows Runtime classes that .Net and C++ apps can use for platform specific access. Windows Store apps run in a sandbox and do not have full access to the system. They can access app-specific parts of the file system but require user consent for elsewhere. They cannot directly interact with system startup, shutdown, desktop activity, etc. This is the same regardless of language.

    I strongly recommend going through the Get started section of the Windows Dev Center to learn about what Windows Store apps are, what they can do, and how to build them

    --Rob

    Thursday, July 17, 2014 9:22 PM
    Moderator
  • Thanks. Will do. But if apps don't have access to everything, how would one write an app like BetterTouchTool for Windows? In case you don't know, it's an app for Mac which customizes keyboard shortcuts as well as touchpad shortcuts for the user, so they can do virtually everything, from opening new tab in a browser to closing the active window, from creating a new file to logging out, everything, from the trackpad alone. If the Windows 8.1 apps don't have full access to everything, how does one write such an app?
    Thursday, July 17, 2014 9:43 PM
  • That would be written as a desktop app rather than as a Windows Store app.

    --Rob

    Thursday, July 17, 2014 9:59 PM
    Moderator
  • I thought they are the same, I mean, desktop apps that one sells on the App Store are called Windows Store Apps. Can you explain the difference?
    Monday, July 21, 2014 9:12 PM
  • Windows Store Apps are built using the WinRT and run in a sandboxed environment. Desktop Apps are the same applications that Windows has run since Win95 an use the Win32-APIs. On Windows RT tablets you are limited to Store Apps only.

    In general Apps built on top of WinRT are prohibited from interfering with the operation of other Apps or the System itself.

    Windows Store Apps do run on Desktop Windows PCs as well but they are still limited to the feature set exposed through the WinRT APIs.

    Tuesday, July 22, 2014 10:46 AM
  • So what would I need to know to make most fully functioning desktop apps like the one I mentioned? C# and .Net will suffice?
    Tuesday, July 22, 2014 9:57 PM
  • This forum is specifically about Windows Store apps.

    For help with desktop apps please ask in the desktop app forums or in the forums for the specific technology you want to use. For a system control application like you describe you'll probably need to write it in C++ rather than in managed code. The touchpad shortcuts may need to be a driver.

    --Rob

    Tuesday, July 22, 2014 10:08 PM
    Moderator
  • Thanks.
    Wednesday, July 23, 2014 4:28 PM