home
products
contribute
download
documentation
forum
Home
Forums
New posts
Search forums
What's new
New posts
All posts
Latest activity
Members
Registered members
Current visitors
Donate
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Search titles only
By:
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Forums
MediaPortal 2
General
Extension Management powered by NuGet engine
Contact us
RSS
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="chefkoch" data-source="post: 1015714" data-attributes="member: 10438"><p>Okay, I just made a few things within 20 minutes. Keep in mind that I did <strong>not</strong> write <strong>one single line of code</strong> to achieve the following. To make actually use of this and integrate it into MP2 some developments would be required, which is the reason I started this thread. I don't have enough development knowledge to write such a "complex" / important component. (some dev-related ideas are listed at the end of the post)</p><p> </p><p><strong>So what have I done?</strong></p><p>I took 2 different "extensions"</p><ul> <li data-xf-list-type="ul"><a href="https://forum.team-mediaportal.com/threads/plugin-cec-remote-for-mp2.120652/" target="_blank">CECRemote</a> plugin, which has been released recently by <a href="https://forum.team-mediaportal.com/members/manfred.50850/" target="_blank">-Manfred-</a></li> <li data-xf-list-type="ul">and the <a href="https://forum.team-mediaportal.com/threads/mceremotereceiver-plugin-mce-remote-support-in-mp2.118085/" target="_blank">MP2-ClientLauncher</a>, which is not a plugin, but more a tool to start MP2 by clicking the green button on the MCE remote</li> </ul><p>For both plugins I created a nuspec file containing some metadata:</p><p>[ATTACH]133761[/ATTACH][ATTACH]133762[/ATTACH]</p><p> </p><p>And placed the related file next to the package exactly like the should be located in the installation directory. Keeping in mind that the installation dir and also the plugins directory are customizable, the structure in the package is more a definition of placeholders and the package installation code should of course extract the files to the correct folders in case these are modified.</p><p>[ATTACH]133757[/ATTACH][ATTACH]133758[/ATTACH] [ATTACH]133759[/ATTACH]</p><p> </p><p> </p><p>When opening the nuspec file now with the nuget package explorer, the metadata is read as well as the files from the file system next to the nuspec file. So there is no manually, complicated definition of files and their target folders required. Just place the files correctly and prepare the filesystem. But of course you also can explicitly define the files within the nuget specification. See <a href="http://docs.nuget.org/docs/reference/nuspec-reference#Specifying_Files_to_Include_in_the_Package" target="_blank">nuget documentation</a> for more details about explicitly including, excluding and defining the target folder/filename.</p><p>[ATTACH]133760[/ATTACH][ATTACH]133763[/ATTACH]</p><p> </p><p>Pressing "Publish" builds the package (packaging) and uploads it to the online repository: The nuget feed.</p><p>[ATTACH]133765[/ATTACH]</p><p> </p><p> </p><p>Nuget feed ?? Which nuget feed?</p><p>Yeah, sorry before publishing it I create a feed at myget.org which took me a few seconds:</p><p><a href="https://www.myget.org/feed/Packages/mp-plugins" target="_blank">https://www.myget.org/feed/Packages/mp-plugins</a></p><p><a href="https://www.myget.org/feed/mp-plugins/package/CECRemote" target="_blank">https://www.myget.org/feed/mp-plugins/package/CECRemote</a></p><p><a href="https://www.myget.org/feed/mp-plugins/package/MP2-ClientLauncher" target="_blank">https://www.myget.org/feed/mp-plugins/package/MP2-ClientLauncher</a></p><p><a href="https://www.myget.org/F/mp-plugins/api/v2" target="_blank">https://www.myget.org/F/mp-plugins/api/v2</a></p><p><a href="https://www.myget.org/F/mp-plugins/" target="_blank">https://www.myget.org/F/mp-plugins/</a></p><p>[ATTACH]133768[/ATTACH]</p><p> </p><p>I've attached the content of the nuget packages, the nuspec and the packages itself to this post. If you are interested into the package structure/content you can rename it to *.zip and extract it. <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite2" alt=";)" title="Wink ;)" loading="lazy" data-shortname=";)" /></p><p> </p><p><strong>In case <span style="color: #ff6600">you are interested</span> in this topic, task and technology feel free to <span style="color: #ff6600">get in contact with us</span> <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite1" alt=":)" title="Smile :)" loading="lazy" data-shortname=":)" /></strong></p><p> </p><p> </p><p> </p><p>The first task would be make use of the NuGet.Core (<a href="http://www.nuget.org/packages/Nuget.Core" target="_blank">http://www.nuget.org/packages/Nuget.Core</a> | <strong><a href="http://channel9.msdn.com/coding4fun/blog/Think-NuGet-is-only-for-Visual-Studio-or-IDE-Think-again" target="_blank">http://channel9.msdn.com/coding4fun/blog/Think-NuGet-is-only-for-Visual-Studio-or-IDE-Think-again</a></strong>, <span style="color: #ff0000"><strong>highly recommended</strong></span>) and be able to read the nuget feed, the already installed plugins and being able to to extract the content where it belongs to.</p><p> </p><p>Having a rock stable core which is able to fulfill these tasks already would be great, even if it is launched manually, asks for uac and needs to be controlled by mouse.</p><p>If this core is designed properly, it should be able to reuse it within the following components without the need to throw any core code away or change it again. (means even starting with a simple non-fashion windows application is no waste of resources):</p><ul> <li data-xf-list-type="ul">have a windows service to be able to unpack the packages and extract the files into the MP2 installation directory. The windows service would be required to be able to install / update plugins without approving the <a href="http://en.wikipedia.org/wiki/User_Account_Control" target="_blank">UAC </a>request.</li> <li data-xf-list-type="ul">a GUI plugin for MP2-Client to<ul> <li data-xf-list-type="ul">consume the nuget feed, display the content nicely to the user and allow installing, updating and uninstalling through the remote</li> <li data-xf-list-type="ul">communicate with the windows service running on the client's machine to forward these tasks to be actually executed</li> <li data-xf-list-type="ul">communicate with the windows service running on the server's machins (or the server itself) to do the same with</li> </ul></li> </ul><p>maybe other things.....</p><p>and maybe these</p><ul> <li data-xf-list-type="ul">For decreasing the redundant information about the plugin metadata, version, dependencies etc, it might be useful to combine the nuget specification (*.nuspec) and MediaPortal 2's plugin descriptor (plugin.xml). This would improve the usability for developers, but depending on the changes it might required changes to MediaPortal 2 plugin management and/or the NuGetPackage Explorer.<br /> Maybe this also it not required, since duplicating these few infos is not a big deal, but it also needs to be possible to detect the plugins that are actually already installed (plugin.xml) and matched to the available nuget packages (nuget feed > nuspec metadata)</li> <li data-xf-list-type="ul">Creating a own gallery based on the NuGetGallery ( <a href="http://www.nuget.org/packages" target="_blank">http://www.nuget.org/packages</a> | <a href="https://github.com/NuGet/NuGetGallery" target="_blank">https://github.com/NuGet/NuGetGallery</a> ) similar to the ReSharperGallery ( <a href="https://resharper-plugins.jetbrains.com/packages" target="_blank">https://resharper-plugins.jetbrains.com/packages</a> | <a href="https://github.com/JetBrains/ReSharperGallery" target="_blank">https://github.com/JetBrains/ReSharperGallery</a> ). If additional features might be required, like rating commenting, screenshots, maybe also extending this forked "MediaPortalGallery" would be possible by adding components from OrchardGallery ( <a href="http://gallery.orchardproject.net/" target="_blank">http://gallery.orchardproject.net/</a> )</li> </ul></blockquote><p></p>
[QUOTE="chefkoch, post: 1015714, member: 10438"] Okay, I just made a few things within 20 minutes. Keep in mind that I did [B]not[/B] write [B]one single line of code[/B] to achieve the following. To make actually use of this and integrate it into MP2 some developments would be required, which is the reason I started this thread. I don't have enough development knowledge to write such a "complex" / important component. (some dev-related ideas are listed at the end of the post) [B]So what have I done?[/B] I took 2 different "extensions" [LIST] [*][URL='https://forum.team-mediaportal.com/threads/plugin-cec-remote-for-mp2.120652/']CECRemote[/URL] plugin, which has been released recently by [URL='https://forum.team-mediaportal.com/members/manfred.50850/']-Manfred-[/URL] [*]and the [URL='https://forum.team-mediaportal.com/threads/mceremotereceiver-plugin-mce-remote-support-in-mp2.118085/']MP2-ClientLauncher[/URL], which is not a plugin, but more a tool to start MP2 by clicking the green button on the MCE remote [/LIST] For both plugins I created a nuspec file containing some metadata: [ATTACH]133761[/ATTACH][ATTACH]133762[/ATTACH] And placed the related file next to the package exactly like the should be located in the installation directory. Keeping in mind that the installation dir and also the plugins directory are customizable, the structure in the package is more a definition of placeholders and the package installation code should of course extract the files to the correct folders in case these are modified. [ATTACH]133757[/ATTACH][ATTACH]133758[/ATTACH] [ATTACH]133759[/ATTACH] When opening the nuspec file now with the nuget package explorer, the metadata is read as well as the files from the file system next to the nuspec file. So there is no manually, complicated definition of files and their target folders required. Just place the files correctly and prepare the filesystem. But of course you also can explicitly define the files within the nuget specification. See [URL='http://docs.nuget.org/docs/reference/nuspec-reference#Specifying_Files_to_Include_in_the_Package']nuget documentation[/URL] for more details about explicitly including, excluding and defining the target folder/filename. [ATTACH]133760[/ATTACH][ATTACH]133763[/ATTACH] Pressing "Publish" builds the package (packaging) and uploads it to the online repository: The nuget feed. [ATTACH]133765[/ATTACH] Nuget feed ?? Which nuget feed? Yeah, sorry before publishing it I create a feed at myget.org which took me a few seconds: [url]https://www.myget.org/feed/Packages/mp-plugins[/url] [url]https://www.myget.org/feed/mp-plugins/package/CECRemote[/url] [url]https://www.myget.org/feed/mp-plugins/package/MP2-ClientLauncher[/url] [url]https://www.myget.org/F/mp-plugins/api/v2[/url] [url]https://www.myget.org/F/mp-plugins/[/url] [ATTACH]133768[/ATTACH] I've attached the content of the nuget packages, the nuspec and the packages itself to this post. If you are interested into the package structure/content you can rename it to *.zip and extract it. ;) [B]In case [COLOR=#ff6600]you are interested[/COLOR] in this topic, task and technology feel free to [COLOR=#ff6600]get in contact with us[/COLOR] :)[/B] The first task would be make use of the NuGet.Core ([url]http://www.nuget.org/packages/Nuget.Core[/url] | [B][url]http://channel9.msdn.com/coding4fun/blog/Think-NuGet-is-only-for-Visual-Studio-or-IDE-Think-again[/url][/B], [COLOR=#ff0000][B]highly recommended[/B][/COLOR]) and be able to read the nuget feed, the already installed plugins and being able to to extract the content where it belongs to. Having a rock stable core which is able to fulfill these tasks already would be great, even if it is launched manually, asks for uac and needs to be controlled by mouse. If this core is designed properly, it should be able to reuse it within the following components without the need to throw any core code away or change it again. (means even starting with a simple non-fashion windows application is no waste of resources): [LIST] [*]have a windows service to be able to unpack the packages and extract the files into the MP2 installation directory. The windows service would be required to be able to install / update plugins without approving the [URL='http://en.wikipedia.org/wiki/User_Account_Control']UAC [/URL]request. [*]a GUI plugin for MP2-Client to [LIST] [*]consume the nuget feed, display the content nicely to the user and allow installing, updating and uninstalling through the remote [*]communicate with the windows service running on the client's machine to forward these tasks to be actually executed [*]communicate with the windows service running on the server's machins (or the server itself) to do the same with [/LIST] [/LIST] maybe other things..... and maybe these [LIST] [*]For decreasing the redundant information about the plugin metadata, version, dependencies etc, it might be useful to combine the nuget specification (*.nuspec) and MediaPortal 2's plugin descriptor (plugin.xml). This would improve the usability for developers, but depending on the changes it might required changes to MediaPortal 2 plugin management and/or the NuGetPackage Explorer. Maybe this also it not required, since duplicating these few infos is not a big deal, but it also needs to be possible to detect the plugins that are actually already installed (plugin.xml) and matched to the available nuget packages (nuget feed > nuspec metadata) [*]Creating a own gallery based on the NuGetGallery ( [url]http://www.nuget.org/packages[/url] | [url]https://github.com/NuGet/NuGetGallery[/url] ) similar to the ReSharperGallery ( [url]https://resharper-plugins.jetbrains.com/packages[/url] | [url]https://github.com/JetBrains/ReSharperGallery[/url] ). If additional features might be required, like rating commenting, screenshots, maybe also extending this forked "MediaPortalGallery" would be possible by adding components from OrchardGallery ( [url]http://gallery.orchardproject.net/[/url] ) [/LIST] [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
MediaPortal 2
General
Extension Management powered by NuGet engine
Contact us
RSS
Top
Bottom