App Extensibility: Build an Ecosystem of Apps

Sign in to queue

Description

App Extensibility enables you to enhance your app by leveraging the great work of other developers. In this session, we will walk through some unique ways of adding inter-app communication, including App Extensions and App Services. On the browser, websites communicate back and forth in order to build great experiences – we believe that apps don’t have to be any different. The Universal Windows Platform has great tools to help you get the most out of all the other apps your customers may use. Join us in this session to not just learn how to make your app better, but also to learn how to be a part of an ecosystem.

Day:

2

Session Type:

Breakout

Code:

B808

Room:

Marriott Salon 6

Embed

Download

Download this episode

The Discussion

  • User profile image
    TheBitBender

    its great you finally address the problem of inter-process-communication. i just cant really appreciate the "awesomeness" of all of that as i know all this was already possible since 1997 with COM in a MUCH easier and elegant object-oriented manner. even plain old vb6 applications could do exactly that in just 2 lines of code with every com-enabled component like word,excel,powerpoint,hundreds of COM-libraries and other com-applications ....even the much older "object linking and embedding" was a ton more powerfull than what we have here today.from a technological perspective we really have turned back the clock to around 1996 with those mechanisms we have now for Apps. its better than nothing, but really not much better...sadly.

  • User profile image
    sevenacids

    While this is great news, I think that extensions should be different from apps when it comes to managing them from the Settings UI. If there are only a few extensions it's not a problem, but if things really get componentized thanks to extensions, the list will explode and become cluttered, and it will be hard to recognize what's an app and what's an extension. There should be a separate list for extensions, maybe even ordered by categories (like "media extensions", "social extensions", etc.)

    Another question is: Will there be a mechanism for deferred loading of extensions? It would be great if, for example (to go with the demo), the binaries of the extension that enables grayscale won't be loaded into memory until its functionality is required (by clicking the button). That would keep the memory footprint low at startup time. Right now it looks like as soon as you enable an extension, its getting loaded into memory even if it is not going to be used.

     

  • User profile image
    Niner463754

    Love the extensibility changes!! Not sure where to ask this or whether to ask at B817 but given the changes in triggers and background tasks just wondering how those changes will (if at all) apply to AppServices? In particular around the Single Process model and extended execution changes.

    1.. Unless I'm mistaken, currently to communicate between the Appservice process and host. The host needs to itself use an AppServiceConnection as they are separate processes. The Single process model we'll be able to use for trigger based background tasks would remove this restriction. Is this coming to AppServices as well?

    2.. Do all task instances (AppServiceConnections) for an AppService run within the same process?

    3.. AppServiceConnections currently have the same resource restrictions as trigger based backgroundtasks. ie 25 sec CPU time etc. Any changes as discussed in B817 coming to AppServiceConnection?

    Also no discussion in this talk on headless AppServices? Does that mean we won't be seeing this anytime soon?

    cheers,

  • User profile image
    Lukas

    I would love to see some more information on App Extensions! The msdn docs for AppExtension only show some methods for getting a PropertySet from the extension, and for accessing the shared public folder. But the main purpose of an extension is to provide functionality, right? So can we request a service interface from the extension and call methods on it? Does the extension run in-process?

  • User profile image
    dkbennett

    @sevenacids: It depends on how you implement the extension. If you are loading content (script) from the public folder, then that depends on when you decide to "load" the content. In our example we loaded content when the extension was discovered. A better way would be to load the extension when it is used the first time, though that creates a performance tradeoff as it may cause a load delay. If you use App Services then the service background task is created as it is needed, so you only need to maintain the connection information / AppExtension object. We recommend using App Services for a lot of reasons described in the session.

     

  • User profile image
    Iuri Farenzena

    Will this Extensibility API be available on Windows 10 IoT Core?

Add Your 2 Cents