[News] Future of MP Extensions - Design Concept (1 Viewer)

Status
Not open for further replies.

Dadeo

Docs Group Manager
  • Premium Supporter
  • November 26, 2006
    5,340
    3,321
    Himalayas, India
    Home Country
    Canada Canada
    Perhaps you meant BIG project? :p
     

    chefkoch

    Retired Team Member
  • Premium Supporter
  • October 5, 2004
    3,129
    1,634
    Dresden / Munich / Maastricht
    Home Country
    Germany Germany
    Could @Moderating or @Administrative please create a redirect from the new MPEM forum to this thread?
    I would be able to do it by moving it once to the MPEM forum without leaving a redirect and back to this forum with leaving a redirect, but this is only a workaround.

    Just when I thought I was done with the base design for the Plugin Updater Service you drop this bombshell, ROFL.
    Do you have a public repository where it is possible to follow the development?
    Do you have any documents of components and it's architecture you plan to use or develop?

    Maybe I missed a few posts within infos in this thread, but having a maintained sticky at https://forum.team-mediaportal.com/forums/general.656/ with links and FAQ might help a lot to find information.

    I know the docs (Design Concept) in wiki, but this is mostly from a user point of view and defines a few requirements, but is not very technical.

    BTW: JetBrains published a new blog posting about their usage of NuGet including their gallery. :)

    A few other resources:
    Sinc I am sure @sa_ddam213 might be happy about support, everybody who would like to help out to investigate these changes and maybe making them available for a MediaPortal gallery as well is more than welcome.
     
    Last edited:

    sa_ddam213

    Retired Team Member
  • Premium Supporter
  • March 3, 2009
    312
    281
    Canterbury
    Home Country
    New Zealand New Zealand
    Do you have a public repository where it is possible to follow the development?

    A MPEM repo has been setup and I am currently moving the prototype MPEM UI into the repo, since the MPEM UI will be doing the majority of the work I want to get this in first so more devs can get involved more easily. I am hoping to have the UI committed this week end, I just have a bit to tidy up as the prototype was put together pretty quickly and needs to be cleaned up, also it has to be shifted to .NET4.5 if we want any hope of getting the installer functions working with Win8.


    The UpdaterService is something we are going to need to discuss a bit more. I only really started on the service because I had a installer service running that I used for my personal plugin development to automate installation of by dev builds onto my MP test environment, but ist become clear that my initial attempts are simply to hacky and crude to ever be use in any sort of production environment, so hopefully the is someone available with stronger WCF/Web skills to get this started, The installation side of this is not really a problem as bypassing UAC is reactively simple and only requires a small bit of kung-fu.


    Do you have any documents of components and it's architecture you plan to use or develop?

    As it stands my opinion is we need to be sure we can create a framework inside MPEM UI to create packages for the extensions and make sure good enough for plugin/skin developers to use to ensure they will move to MPEM, the last thing we want is to end up with half the community using MPEM and the others using their own installer systems, we will just end up with a fragmented extension installer process like there currently is.

    I feel I am in a fairly good position to mock up the installer package creator as my current plugin has a very complex install process(service, plugin, external app that could be installed on a MP machine or elsewhere) which is why I could not use the current MPE1 system myself.

    Based on the discussions so far this is an outline of what we are looking to achieve

    MPE Manager:

    1. Ability to browse and download/install MP extensions from the MediaPortal online repository, and be able to do this not only from the HTPC but from other PC on the local network.
    2. Managed currently installed extension including changing settings, downloading/installing updates, uninstallation.
    3. Create extension installer packages, this should consist of a easy to use wizard, with the ability you save/download pre-defined installer templates, also the ability to create more advanced installers, not necessarily though the wizard but we need a framework that can be used for extension developers to work with.
    4. Packages should have the ability to be run/install without MPEM (may not be possible, but personally this is a must for me)
    MPE Updater Service:

    1. Check MediaPortal online repository for updates for currently installed plugins with the ability to notify both MP and MPE Manager on new updates.
    2. Ability to install/update extensions without needing to close MP and bypass windows UAC. I'm not sure if the current plugin framework has the ability to stop/unload a plugin assembly and reload/start but we will need these functions.
    3. Ability to update MediaPortal/TvServer and MPEM itself

    IMO we need to make sure we get the extension installer creator done first as if its not easily adopted by the community then we are right back to were we started, and we are going to need a lot of input form the plugin developers during the design process. And as far as I see the UpdateService does not need to be coupled with whatever package system we use(NuGet, Custom,MPE1) it really only needs a set of instructions and a bunch of files to install. so there is nothing to stop the UpdaterService from being developed in parallel to the MPE Manager, but as the WPF creator wizard will consume a lot of dev time perhaps someone else can get involved in this part.

    Like I said this is just my interpretation of where we are heading with MPEM and would love to get everyone's input/ideas flowing :)
     
    Last edited:

    offbyone

    Development Group
  • Team MediaPortal
  • April 26, 2008
    3,989
    3,712
    Stuttgart
    Home Country
    Germany Germany
    Ability to install/update extensions without needing to close MP and bypass windows UAC. I'm not sure if the current plugin framework has the ability to stop/unload a plugin assembly and reload/start but we will need these functions.

    This is not possible. MediaPortal runs as single AppDomain in which it loads all plugins. You cannot unload single DLLs, only an entire AppDomain in .Net. Even currently you cannot replace DLLS while MP is running as they are blocked. This would need shadow loading them.
     

    sa_ddam213

    Retired Team Member
  • Premium Supporter
  • March 3, 2009
    312
    281
    Canterbury
    Home Country
    New Zealand New Zealand
    Ability to install/update extensions without needing to close MP and bypass windows UAC. I'm not sure if the current plugin framework has the ability to stop/unload a plugin assembly and reload/start but we will need these functions.

    This is not possible. MediaPortal runs as single AppDomain in which it loads all plugins. You cannot unload single DLLs, only an entire AppDomain in .Net. Even currently you cannot replace DLLS while MP is running as they are blocked. This would need shadow loading them.

    Hi offbyone,

    Thanks for clarifying that, we can easily restart MP instead(close, install, start) :)
     
    Last edited:

    chefkoch

    Retired Team Member
  • Premium Supporter
  • October 5, 2004
    3,129
    1,634
    Dresden / Munich / Maastricht
    Home Country
    Germany Germany
    Thanks for clarifying that, we can easily restart MP instead(close, install, start) :)
    From technical point of view stopping and restarting MP should not part the core, right?
    There might be interfaces for it, but the actual implementation will be within a MP1Handler or MP1Implementation assembly or something like this.

    The reason why I am asking is that there might be different things required to stop the application which plugins are being modified. These applications might be MP1, MP1-TvServer or MP2-Client or MP2-Server.
     

    sa_ddam213

    Retired Team Member
  • Premium Supporter
  • March 3, 2009
    312
    281
    Canterbury
    Home Country
    New Zealand New Zealand
    Thanks for clarifying that, we can easily restart MP instead(close, install, start) :)
    From technical point of view stopping and restarting MP should not part the core, right?
    There might be interfaces for it, but the actual implementation will be within a MP1Handler or MP1Implementation assembly or something like this.

    The reason why I am asking is that there might be different things required to stop the application which plugins are being modified. These applications might be MP1, MP1-TvServer or MP2-Client or MP2-Server.
    What's wrong with KillProcess??, ROFL :p

    We are definitely going to have to implement an update notification system(Update Now, Postpone, etc..) within the MP UI's.
    and perhaps some update scheduling especially for TVServer as it could be recording, playing live TV.

    I'm just currently cleaning up the UI code I have now and adding some dummy data so everyone can navigate though the working parts of the UI and give input/feedback (hoping to have it in the repo tonight :)), then we should get into some deeper discussion about implementation of things like above.
     

    infinite.loop

    Retired Team Member
  • Premium Supporter
  • December 26, 2004
    16,163
    4,133
    127.0.0.1
    Home Country
    Austria Austria
    I have closed this thread here now which was meant as a comments thread for the news article.

    Further discussions in the new MPEM area. :)
     
    Last edited:
    Status
    Not open for further replies.

    Users who are viewing this thread

    Top Bottom