MPEM Development Info & Testversion (5 Viewers)

sa_ddam213

Retired Team Member
  • Premium Supporter
  • March 3, 2009
    312
    281
    Canterbury
    Home Country
    New Zealand New Zealand
    • Thread starter
    • Moderator
    • #32
    So basically the only news is I NEED HELP/FEEDBACK to progress.
    ask us .... (y)

    Sure :)

    The first big question is the installer package type, Is everyone happy using MSI installers based on Wix
    Benefits:
    1. Open source
    2. You wont need MP to install, (there are a few plugins that need this)
    3. Very flexible
    4. Xml based so its easy to integrate into MPEM for a wizard, the syntax is quite easy so even basic coders can make modifications outside of the wizard
    5. Plays nicely with windows
    6. Integrates with VisualStudio so installers can be managed for MP and MP2 applications, or plugins if the developer wants. literally you can just hit F5 and your source will compile and spit out an MSI installer package :)

    Here is an example of an installer script(which if you use NSIS is a sight for sore eyes)

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    	<Product Id="*" UpgradeCode="PUT-GUID-HERE" Version="1.0.0.0" Language="1033" Name="My Application Name" Manufacturer="My Manufacturer Name">
    		<Package InstallerVersion="300" Compressed="yes"/>
    		<Media Id="1" Cabinet="myapplication.cab" EmbedCab="yes" />
     
    		<!-- Step 1: Define the directory structure -->
    		<Directory Id="TARGETDIR" Name="SourceDir">
    			<Directory Id="ProgramFilesFolder">
    				<Directory Id="APPLICATIONROOTDIRECTORY" Name="My Application Name"/>
    			</Directory>
    		</Directory>
     
    		<!-- Step 2: Add files to your installer package -->
    		<DirectoryRef Id="APPLICATIONROOTDIRECTORY">
    			<Component Id="myapplication.exe" Guid="PUT-GUID-HERE">
    				<File Id="myapplication.exe" Source="MySourceFiles\MyApplication.exe" KeyPath="yes" Checksum="yes"/>
    			</Component>
    			<Component Id="documentation.html" Guid="PUT-GUID-HERE">
    				<File Id="documentation.html" Source="MySourceFiles\documentation.html" KeyPath="yes"/>
    			</Component>
    		</DirectoryRef>
     
    		<!-- Step 3: Tell WiX to install the files -->
    		<Feature Id="MainApplication" Title="Main Application" Level="1">
    			<ComponentRef Id="myapplication.exe" />
    			<ComponentRef Id="documentation.html" />
    		</Feature>
    	</Product>
    </Wix>

    @Developers I really need this answered/debated before I can do much more on the MPEM creator wizard.

    Can everyone please use the "Agree" and "Disagree" buttons below so I can at least get an idea :)
     
    Last edited:

    Dadeo

    Docs Group Manager
  • Premium Supporter
  • November 26, 2006
    5,340
    3,321
    Himalayas, India
    Home Country
    Canada Canada
    Hi sa_ddam213 - in general I agree - because:
    1. I often end up checking the update.xml for MPEI because I am so used to XML for skinning that I can find things more easily - sometimes I can't remember where stuff is in MPEMaker as there are several levels in some cases.
    2. Your script example looks very understandable to me
    3. IIRC MP2 already uses Wix for the msi installer so a common installer for extensions may have an advantage - you can see some background in the Team forum thread:
    However, I am not that familiar with Wix - I've looked at the docs, but I don't see any issues that would concern me. Are you aware of any changes/limitations that using Wix/MSI might impose?
     
    Last edited:

    kiwijunglist

    Super Moderator
  • Team MediaPortal
  • June 10, 2008
    6,746
    1,751
    New Zealand
    Home Country
    New Zealand New Zealand
    Does MPEM know what country you are from.
    Could we have a TV Logos channel that was by default always initially filtered by country.
    We could then use it to supply tv channel logos
     
    Last edited:

    sa_ddam213

    Retired Team Member
  • Premium Supporter
  • March 3, 2009
    312
    281
    Canterbury
    Home Country
    New Zealand New Zealand
    • Thread starter
    • Moderator
    • #37
    Hi sa_ddam213 - in general I agree - because:
    1. I often end up checking the update.xml for MPEI because I am so used to XML for skinning that I can find things more easily - sometimes I can't remember where stuff is in MPEMaker as there are several levels in some cases.
    2. Your script example looks very understandable to me
    3. IIRC MP2 already uses Wix for the msi installer so a common installer for extensions may have an advantage - you can see some background in the Team forum thread:
    However, I am not that familiar with Wix - I've looked at the docs, but I don't see any issues that would concern me. Are you aware of any changes/limitations that using Wix/MSI might impose?

    As far as limitations, I have not seen any majors, we have been using Wix at work for a few years now, if there is anything missing you can just create a plugin for Wix with the stuff you need, same way a NSIS really.

    The real good thing is the Upgrade/ Version checking it does as well as dependencies etc.

    I am used to working with it so that make MY life easier, but like I said I don't want to start coding based only on my opinions :)
     

    offbyone

    Development Group
  • Team MediaPortal
  • April 26, 2008
    3,989
    3,712
    Stuttgart
    Home Country
    Germany Germany
    I want to give my warnings about this approach (having done a few wix installers in the past).
    WIX is basically a XML wrapper around Windows Installer and therefore comes with the limitations and problems of it.

    • The Visual Studio extensions will not install on the Express edition that many extension devs use.
    • Skinner usually don't use Visual Studio and won't install it to create their package.
    • There is no graphical designer that will create the wix xml files.
    • Windows Installer is build into Windows, but is on the user`s PC in many different versions depending on OS an ServicePack Level. You have to be careful what feature you are using.
    • Creating a nice UI for the actual Installer that will be unique for every installer that is for MPEM will be a lot more work than doing a custom WPF app.
    • The feature set of Windows Installer is rich, but extensibility is not one of its strengths. I am unsure how you are planing to implement things like package dependencies (checking, auto download dependent ones). Best guess will be a swarm of custom actions, which every plugin will have to integrate again.
    • Creating packages must be done careful - it is easy to create MSI that will not uninstall due to some task failing at uninstall - since Windows Installer is a database we have no control over - a failed installer will stay in the users "AddRemovePrograms" and we have no chance to ever remove it plus this user wont be able to install that extension again if it uses the same ID.

    I can probably think of some more points, but you get my general concern I guess. Not saying it is not possible to use MSI via WIX, just want to save you from what might be too much stress to implement. Using XML for package definition is not a real advantage of WIX - even current MPEI uses it ;)
     

    sa_ddam213

    Retired Team Member
  • Premium Supporter
  • March 3, 2009
    312
    281
    Canterbury
    Home Country
    New Zealand New Zealand
    • Thread starter
    • Moderator
    • #39
    I want to give my warnings about this approach (having done a few wix installers in the past).
    WIX is basically a XML wrapper around Windows Installer and therefore comes with the limitations and problems of it.

    • The Visual Studio extensions will not install on the Express edition that many extension devs use.
    • Skinner usually don't use Visual Studio and won't install it to create their package.
    • There is no graphical designer that will create the wix xml files.
    • Windows Installer is build into Windows, but is on the user`s PC in many different versions depending on OS an ServicePack Level. You have to be careful what feature you are using.
    • Creating a nice UI for the actual Installer that will be unique for every installer that is for MPEM will be a lot more work than doing a custom WPF app.
    • The feature set of Windows Installer is rich, but extensibility is not one of its strengths. I am unsure how you are planing to implement things like package dependencies (checking, auto download dependent ones). Best guess will be a swarm of custom actions, which every plugin will have to integrate again.
    • Creating packages must be done careful - it is easy to create MSI that will not uninstall due to some task failing at uninstall - since Windows Installer is a database we have no control over - a failed installer will stay in the users "AddRemovePrograms" and we have no chance to ever remove it plus this user wont be able to install that extension again if it uses the same ID.

    I can probably think of some more points, but you get my general concern I guess. Not saying it is not possible to use MSI via WIX, just want to save you from what might be too much stress to implement. Using XML for package definition is not a real advantage of WIX - even current MPEI uses it ;)

    The idea is for MPEM to take care of the first few points. My idea is to have pre-defined installer templates, only devs that want over the top custom installers will need to see the code. I'm sure we can make enough templates to suit the majority plugins, and they will be customizable to a limit in the Wizard, So you can set the dialogs you need (Welcome, Directory, Component, InstallFiles, finish) like most do with NSIS, set background images stuff like that.

    As the MPEM InstallerService will be doing the install part, the actual package is not really important, the Wix part was mainly so the installers can be used on PC's other than your MediaPortal box, otherwise you would be using MPEM to install, which basically unpacks and sends to the service. And NSIS and Wix are probably the best option I can think of to cover this.


    I would love to get some idea flowing, I'm sure we can think of a good solution so we can get this thing going :)
     
    Last edited:

    FreakyJ

    Retired Team Member
  • Premium Supporter
  • July 25, 2010
    4,024
    1,420
    Home Country
    Germany Germany
    I would really go with the nuget appproach outlined by chefkoch. It looks really good and promising ;)
     

    Users who are viewing this thread

    Top Bottom