Developer forum

Forum » Dynamicweb 10 » Create an App for the AppStore - How to

Create an App for the AppStore - How to

Pedro Meias
Reply

Hi,

We are trying to create an appstore-app. The goal for this is for it to install some dll's, item types and templates.

I have created a nugged package with the following structure

\---contentFiles
    \---any
        \---any
            \---Files
                +---Files
                |       QuickOrderUploadTemplate.xlsx
                |       
                +---System
                |   +---AddIns
                |   |   +---Installed
                |   |   |   +---Dna.SwiftRizzo.FileManagement.1.0.0
                |   |   |   |       Dna.SwiftRizzo.FileManagement.dll
                |   |   |   |       
                |   |   |   +---Dna.SwiftRizzo.QuickOrder.WebAPI.1.0.0
                |   |   |   |       Dna.SwiftRizzo.QuickOrder.WebAPI.dll
                |   |   |   |       
                |   |   |   +---Dynamicweb.DataIntegration.Providers.ExcelProvider.1.0.0
                |   |   |   |       Dynamicweb.DataIntegration.Providers.ExcelProvider.dll
                |   |   |   |       
                |   |   |   +---EPPlus.5.6.3.0
                |   |   |   |       EPPlus.dll
                |   |   |   |       
                |   |   |   +---LumenWorks.Framework.IO.Core.1.0.1
                |   |   |   |       LumenWorks.Framework.IO.Core.dll
                |   |   |   |       
                |   |   |   \---Microsoft.IO.RecyclableMemoryStream.1.4.1
                |   |   |           Microsoft.IO.RecyclableMemoryStream.dll
                |   |   |           
                |   |   \---Local
                |   |           Dna.SwiftRizzo.FileManagement.dll
                |   |           Dna.SwiftRizzo.QuickOrder.WebAPI.dll
                |   |           Dynamicweb.DataIntegration.Providers.ExcelProvider.dll
                |   |           EPPlus.dll
                |   |           LumenWorks.Framework.IO.Core.dll
                |   |           Microsoft.IO.RecyclableMemoryStream.dll
                |   |           
                |   +---Items
                |   |       ItemType_SwiftRizzo_QuickOrderApp.xml
                |   |       
                |   \---Repositories
                |       \---SwiftProducts
                |               Products.query
                |               
                \---Templates
                    \---Designs
                        \---Swift
                            +---Assets
                            |   \---js
                            |       \---rizzo
                            |               sr-quickOrder-min.js
                            |               sr-quickOrder.js
                            |               
                            \---Paragraph
                                    SwiftRizzo_QuickOrderApp.cshtml

 

My .nuspec goes like this

 

<?xml version="1.0"?>
<package>
  <metadata>
    <id>Dna.SwiftRizzo.QuickOrder.App</id>
    <version>1.0.0</version>
    <authors>Dynamicweb North America</authors>
    <owners>Dynamicweb North America</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>SwiftRizzo QuickOrder App for Dynamicweb 10</description>
    <tags>dynamicweb dynamicweb-app-store swiftrizzo-quickorder</tags>
  </metadata>

  <files>
    <!-- Include everything under Files (DLLs, templates, etc.) -->
    <file src="contentFiles\any\any\Files\**\*" target="contentFiles\any\any\Files" />
  </files>
</package>

 

Next step would be for this to show on the App store. I read here (https://doc.dynamicweb.dev/documentation/extending/guides/newappstoreapp.html#publishing-the-app) that it looks at public nugget feed.

Can we configure other nugget feeds? If yes, how to?

 

Thank you


Replies

 
Nicolai Pedersen Dynamicweb Employee
Nicolai Pedersen
Reply

Hi Pedro

You can only use the public feed as of now. Otherwise you can upload using local upload.

Another thing is that you should not include installed dlls in a folder like this - as that can cause all kinds of issues if other apps that install the same dlls.

The app it self is a nuget package and you should use package references in your project - dw will install what is missing. E.g. you have epplus in this package - Dynamicweb already loads that package, so it is redundant.

It seems like we are building something similar to this for Swift 2 - so I would love to get a copy of your code.

Thanks, Nicolai

 
Pedro Meias
Reply

Hi Nicolai

Thank you for your feedback.

By local upload you mean deploying the files manually?

Our goal would to be have QuickOrder as an optional installation. It just needs to deploy files.


Understood your feedback about the dll's. Changed them as dependencies in .nuspec. It looks like this

<?xml version="1.0"?>
<package>
  <metadata>
    <id>Dna.SwiftRizzo.QuickOrder.App</id>
    <version>1.0.0</version>
    <authors>Dynamicweb North America</authors>
    <owners>Dynamicweb North America</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>SwiftRizzo QuickOrder App for Dynamicweb 10</description>
    <tags>dynamicweb dynamicweb-app-store swiftrizzo-quickorder</tags>

    <dependencies>
      <dependency id="Dynamicweb.DataIntegration.Providers.ExcelProvider" version="1.0.0" />
      <dependency id="EPPlus" version="5.6.3" />
      <dependency id="LumenWorks.Framework.IO.Core" version="1.0.1" />
      <dependency id="Microsoft.IO.RecyclableMemoryStream" version="1.4.1" />
    </dependencies>
  </metadata>

  <files>
    <file src="contentFiles\any\any\Files\**\*" target="contentFiles\any\any\Files" />
  </files>
</package>

About the code for QuickOrderApp, can you please coordinatite with Nuno Aguiar to get access to that?

Thank you for your help.

 
Nicolai Pedersen Dynamicweb Employee
Nicolai Pedersen
Reply

Hi Pedro

By local I mean the dlls you had in the local folder under addins. So changing to use nuget dependencies was all I meant.

I will talk to Nuno. This feature seems to be for Swift 1 and we should migrate it and incorporate it in Swift 2 and DW10 natively.

Thanks, Nicolai

 

You must be logged in to post in the forum