Progressive Solution Installation Package using Nuget (part-2)

English We continue our discussion to create installation package for our complex project. To remind you, a complex project is a software development project that delivers many component in the BOM (SharePoint WSP, scripts, batch files, etc.) See part-1 here. Defining Package Format As the title suggest, our package format is Nuget. Nuget is the package manager for the Microsoft development platform - so we expect that every developer is familiar with the tool. Read more about Nuget Overview here. It is also implementation of Open Packaging Convention (OPC) standard. OPC is a container-file technology that store a combination of XML and non-XML files that together form a single entity such as an Open XML Paper Specifications (OpenXPS) document. Read more about OPC specification and advantages here. Having Nuget instead of MSI, will reduce the needs for developer to learn how to build MSI package. It is also open format, which allow easy investigation of the content, validation and cross check. Nuget also provide versioning, and other metadata embedding into the package. And so it is perfect tools to our requirement. Packaging1 Packaging Strategy Our requirement suggests that we will need 2 different package type:

  1. The component package The component package is nugget package that bring our individual component into our delivery/installation. Component package can contains SharePoint solution, or Batch file, or SSRS files etc. Basically this is the smallest atomic delivery that build our complex solution.
  2. The installation package The installation package is nugget package that orchestrate all component package together into a complete delivery. It also specify the release notes for the specific installation package.

To achieve this strategy, we are utilizing Nuget Package dependencies definition. In Nuget Package, we can specify one or more dependencies. This dependencies metadata tells the consumer that our package will not work before the dependencies has been installed or processed.

Riwut Libinuko
Sr. Cloud Solution Architect

My research interests include distributed robotics, mobile computing and programmable matter.

comments powered by Disqus