The gallery consists of a backend system, for storing packages and exposing a feed, and front-end website, for browsing items in the gallery and submitting new items.
The Gallery Backend
The backend is an MVC app that provides package storage, an OData feed for reading a list of packages from the gallery, and a secured publishing endpoint for submitting packages and metadata updates. The gallery website is just one client of the backend system – other clients include the Orchard admin panel and the NuPack and Orchard command-shell utilities. Over time, we hope to integrate the gallery feed more deeply into other tools.
The gallery backend will support:
- Uploading a package file, or alternatively submitting a URL to a package located on an external site (like CodePlex.com)
- Updating package metadata (such as title, version, author, etc) to be exposed by the backend feed
- Exposing an OData-format feed so that client applications can enumerate and query gallery items
While Orchard and NuPck are standardizing on a common package format (NuPack), it remains a goal for this gallery implementation to support alternative package formats, so that other apps might leverage this gallery implementation for their needs.
The Gallery Website
The website will be built using the Orchard framework, and will provide search, browsing, and community ratings/comments. It will also provide a means for uploading and sharing packages.
We are not attempting to produce a single gallery website for all applications. Rather our aproach is to deliver a reference implementation that can be used as the basis for running different instances of gallery sites. For example, the Orchard and NuPack galleries will likely be separate sites, tailored to their respective audiences. However, these galleries will share the same underlying code, feed schema, and submission system.