• 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 09/23/2014

    Meeting notes:

    • Status: feature branches under development, a few bugfixes since last week.
    • Sébastien fixed an issue where the infoset and the records were storing UTC dates differently, since SQL CE doesn't support millisecond-precision. This caused problems in a few places, e.g. Publish Later.
    • Demo by Shaun about the plans for the new community website: design and look&feel updated (Orchard-y colour scheme), updated (and much more) content.
    • Announcement by Zoltán - Lombiq open-sourced Lombiq.Hosting.Azure.Indexing: this module allows you to store indices in Azure Blob Storage so when running your site on multiple server nodes, indices are shared between them. It's running in production for months on all Lombiq websites and DotNest.
    • Lombiq is a member of the Azure Web Sites Customer Advisory Board (WAWS-CAB), so if Orchard has any problem running on Azure, we're now in a much better position for getting help.
    • Demo by Sébastien - Orchard.MessageBus: a new module added to the source on the "messagebus" feature branch based on Lombiq.Hosting.DistributedEvents: This allows server nodes to signal each other to invalidate cache entries, eliminating multiple types of problems in multi-mode environments, e.g. content type definition changes.
    • Orchard 1.8.2 will be released soon!
    • Bug triage!
  • Querying Orchard Fields With HQL

    Before projections, the official word on fields was that they weren’t for querying (they are stored in an XML blob on the content item record). Projections enabled field querying for the first time, through special tables that index field contents.

  • Ways To Render Lists Of Things

    In this post, we are going to check out some of the ways available to us to render lists in Orchard and do a nice deep-dive. We are going to see not only how we can customize the individual shape items, but also how we can take over the entire rendering of the list.

  • Getting Orchard Content Items Out Of HQL

    Once you’ve built the HQL query, you’ll want to get results, often in the form of fully-built content items. In lots of cases, you’ll want to paginate the results, for which you’ll need a total count, and detailed results for only the current page. This post will show you how to do all these things.

  • A Closer Look At Content Types, Drivers, Shapes And Placement

    If you have some experience with Orchard, but still feel a bit shakey when it comes to shapes, then this post is for you. We will see how a request comes in, how a content item is rendered, where drivers and placement fit into the picture, and how a resulting shape is turned into HTML to be sent down the wire.

  • Joining Orchard Part Records In HQL

    Querying over records is nice, but if those records are part records, you need to be really careful and check that they correspond to a real content item, that his content hasn’t been archived, and that its publication state is what you need it to be. In order to do that, you’ll have to join with ContentItemRecord and ContentItemVersionRecord. But how do you express joins in HQL in a way that works with Orchard records?

  • Querying Orchard in HQL

    Orchard has two APIs on IContentManager to query content items: Query, and HqlQuery. Query is the older API, but it’s also the simplest. It’s great when you want to perform a simple query such as “get all content items with part TitlePart where the title begins with A”. HqlQuery is a little more advanced, closer to nHibernate APIs, and allows for more complex queries.

  • Referencing Server-generated Fields In Script

    I had to fix a bug today in somebody else’s code that was caused by some Javascript referencing an element by id. The problem was that this id was assumed by the script to be “#Parameter1”. If the template containing this code was alone on the page, there is a chance this might actually work, but in general it won’t: the html element resulting from the helper will most of the time have a prefix, giving a final client-side id looking like SomePrefix_Parameter1, so it was very brittle to hard-code that id in script.

Software IP management and project development governance provided by Outercurve Foundation