asp.netsitefinitysitefinity-feathersitefinity-13

Sitefinity Custom Widget - deploying external assembly


We are building a custom widget for Sitefinity. Looking at the options available we have chosen to go with the external MVC assembly approach to reduce dependencies. However, it appears that we still need to reference the custom widget assembly from the Sitefinity project in Visual Studio which would involve copying the assembly over, adding the reference and then redeploying Sitefinity.

What we would like to do is deploy the custom widget to Sitefinity without having to deploy the entire Sitefinity application, e.g. just upload the DLL through the Sitefinity user interface. Is this possible? If not, can we reference and deploy once and then just copy over new versions (and possibly have to restart Sitefinity).


Solution

  • You don't necessarily need to reference the external assembly from the sitefinity project - as you said - you can just drop the dll in the bin folder and it should work.

    But this external project - most probably, it will still need to reference one or more Sitefinity assemblies, so you will still need to add dependencies to it, e.g. via nuget.

    Edit: Most probably you won't need to reference all sitefinity dlls, but you can install only the modules you need. This link lists the available nuget packages: https://www.progress.com/documentation/sitefinity-cms/work-with-decoupled-modules#installing-the-all-modules-package-vs-the-light-package

    I would start with Progress.Sitefinity instead of Progress.Sitefinity.All.

    Then you build that class library and copy the output dll (e.g. MyCompanyCustom.dll) to the Sitefinity project. No need to copy the rest of the Sitefinity dlls, because they are already in the sitefinity project.

    Just make sure that the Sitefinity assemblies that this external project references are the same version as the main site.