• About the Orchard Project

    Orchard is a free, open source, community-focused Content Management System built on the ASP.NET MVC platform.

    Learn more...

Recent Posts and Articles

  • Weekly Podcast 06/16/2015

    Meeting notes:

    • 00:00 - Status. Suggestion: we shouldn't delete columns in migrations (for backwards compatibility between deployments), just remove them from the Create() method.
    • 22:57 - Discussion on how security vulnerabilities should be announced/communicated. There is a new security vulnerability that is not disclosed yet, Sébastien is working on the patch.
    • 28:05 - Demo by Siyamand Ayubi: collaboration and ticketing system for Orchard. Content types can be extended with a content part that enables users to create tickets related to a content item with several other settings. Tickets can be interacted with in several ways, for example by assigning them to groups or users. The module has strong integration with built-in Orchard features (e.g. Tokens, Workflows, Emails, Projections). You can check out the intro website for the module and clone the source code.
    • 48:57 - Demo by Sipke: improvements and additions to the IDeliverable.SlideShows module. Many new settings/customization features were added, like extensible slideshow animation providers. This module is now available for licensing.
    • 1:06:15 - Announcement by Lombiq: DotNest is now integrated into the Azure marketplace through a so-called Resource Provider. This allows you to create Orchard sites on DotNest using your Azure subscription.
  • Many ways to relate Orchard things, part 3: lists

    The list feature, once deprecated, is back, entirely re-done, and now a great way to build parent-child relationships between content items. It’s so good we’ve even considered rebuilding the blogging feature entirely with it. The feature is actually admin UI around a single little thing that’s been in Orchard from the start: the Container property of the Common part.

  • Weekly Podcast 06/09/2015

    Meeting notes:

    • 00:00 - Recap of the last meeting, Agenda.
    • 03:02 - Status.
    • 18:42 - Discussing the recommended way to compile LESS and TS files. Layouts uses Gulp (instead of Web Essentials).
    • 35:04 - Demo by Daniel: sticky toolbox positioning in the Layout editor.
    • 44:27 - Harvest preparations on the way! Location: Alicante. It will be probably on the last week of September (28-29-30).
  • DotNest Orchard sites now available in the Azure Marketplace

    It wasn't exactly easy to do, but now DotNest is even more integrated into Microsoft Azure: you can created DotNest Orchard sites as an Azure App Service, from the Azure Marketplace!

  • How to build a secure, high performing CMS with Orchard

    First Sports had critiqued a number of CMS's and made the decision to use Orchard due to its wide adoption and its extensibility. Having adopted a CMS the question was then what infrastructure would be most appropriate and most secure for hosting thousands of websites and millions of payment transactions for each of our sports clients

  • Many ways to relate Orchard things, part 2: content item picker field

    In the first post in this series, we’ve looked at the most difficult way to create relationships in Orchard. In this post, we’ll look at the easiest: content item picker field.

  • Many ways to relate Orchard things, part 1: database relations

    A long time ago, I wrote a documentation topic on how to implement 1-n and n-n relationships in Orchard using database relations. It was much needed at the time, as this was still a difficult topic. Between spotty mapping mechanisms for relationships, and specific Orchard conventions, it wasn’t something you could expect just anybody to figure out on their own. It is still the way to go under some conditions, but those conditions are arguably very uncommon, and there are now much better solutions for more common cases.

  • Customize Orchard CMS emails without creating your own module

    There are some instances where what you want to do is so minor that you don't want to build a whole module for it. You might just want to add a new parameter to an object in a core module and do something with that value during its normal processing. The example I recently had was adding an option for a "reply-to" field be added to emails coming from custom forms.

Software IP management and project development governance provided by Outercurve Foundation