Deployment of custom solutions
There are two options for deploying custom solutions to a Sitecore instance: a Sitecore Package, and a Sitecore Update Package.
Both package types allow you to bundle Sitecore items and files that need to go onto disk. You can also specify a post step class, which must implement IPostStep. This class can be used to perform some custom actions that cannot be performed by packages, such as creating security roles, or updates to the web.config.
When creating packages, consider if the items and files should be split into separate packages. The main reason for separating items is that when items are installed, they are written to the database and made available to all servers using that database. However, when a package with files is installed, those files will only be available on the server the package was installed on. This means the package cannot be installed on only one server, but must be installed on all servers.
This may create a situation where some servers are running with new functionality, while other servers are broken until the files are installed. The recommended process is to create packages that install the files on all of the servers, and then install a package with items that enable the new functionality. This is less of a concern if your production environment only has a few servers. Large numbers of servers will require more time to install the packages.
The following list describes the pros and cons of choosing a regular package vs. an update package:
Sitecore Packages
-
Pros
-
The most popular way of distributing solutions.
-
Can be installed from the Sitecore Desktop (Start -> Development Tools -> Installation wizard ).
-
A package designer is included in the website.
-
-
Cons
-
Packages can only be built with via a Sitecore site.
-
Packages are not useful if you want to update specific item fields. The package contains a complete copy of an item from the source environment, and will overwrite the fields of the destination item.
-
There is limited integration with Visual Studio. To source control items, serialize the items to the “Data\serialization” folder, and then check the folder into your source control.
-
Sitecore Update Packages
-
Pros
-
Packages can be created without having a Sitecore site present.
-
Individual fields on an item can be updated.
-
Better developer experience for creating packages.
-
-
Cons
-
There is no package designer included with the website.
-
The package installation screen is available only from a hidden URL. For example, /sitecore/admin/UpdateInstallationWizard.aspx.
-
There are no public Sitecore tools to create packages.
-
Team Development for Sitecore from Hedgehog is the only way to create the packages, which has license requirements.
-