Thanks for sharing the further information.
I like to share that earlier you shared that you need save the individual slide to presentation. So, I shared the solution that worked in that particular scenario.
With some more information shared from you what I have perceived is that you actually wish to show the available slides graphically in some user interface (UI). The user will select the list of slides in UI and on back end the presentation will be generated with selected slides in UI. I hope that I am getting your requirement right up till here.
I like to share that Aspose.Slides manages presentations programatically and there is no front end associated with it. The only way available to depict slides in UI is by generating thumbnails and maintaining some link of thumbnails with slides on back end for references and further implementation of your logic. The implementation plan shared by you in second part of your query is exactly doable and is in fact the only possible solution in your’s mentioned application type.
In the scenario mentioned, you may also not need to even keep the slides as separate entities in databases and saving them as byte array there as it would cost your performance. The better would be to use the presentations stored on your disk and you devise some mechanism on back end that the particular thumbnail selected in UI from user is actually belonging to which presentation and what slide index. With this information available, you would simply clone that slide to your target presentation for the user. Now, coming to your concern about the master slides associated with slides when they are clone. Actually, whenever the slide is cloned using a default clone method, it gets cloned in target presentation with its master and layout slides. This is logical as you need to see exactly the same slide what you have in source presentation. Aspose.Slides also offers you to change the master applied on the slide and apply any template master on cloned slides. If you change the master of any cloned slide in target presentation there is also a provision to delete unused master slides as well inside target presentation to avoid growing presentation size.
I have already shared the documentation link
for managing different options available in Slide cloning in my previous post and you can explore them on your end. I also like to add that slide cloning does not take that much time it is efficient process. I also like to share that on normal server, creating a 20 slide presentation wont take that much time. The CPU touching 100% depends upon the server type used on your end and I may not be able to quantify this for you unless you test this in your environment. Also the web server or other server settings may also take part in it. As per my personal experience on my laptop, cloning of 20 slides complete about in minuet or so. But this also depends upon the contents of slides. If there is heavy multimedia content on slide in the form of video, audio and big images. They certainly play their role.
I am sorry, I may not help you OpenXML SDK inquiry. Please share, if I may help you further in this regard.