• 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

  • 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.

  • Speeding Up Pages With Lots Of Media Content Items

    For a few versions now, Orchard has been treating media (images, videos, etc.) as content items. There is a special kind of field, MediaLibraryPickerField, that enables you to add images, or collections of images, to any content type

  • Weekly Podcast 09/16/2014

    Meeting notes:

    • Status: Alias lookup performance issue fixed, fixed a possible NRE during setup, fixed a possible OoME when using Shape Tracing, the command line tool now supports empty strings as parameters, ReliableSqlConnection removed (since auto-retry happens by default), Sipke and Nick are working continuously on their respective feature branches, TinyMCE updated to 4.1.5.
    • Sébastien is working on the issue with DateTime-type CommonPart properties saved with different precision in infoset and records.
    • Demo by Nick - Localization updates: huge clean-up and refactoring in the AdminController of Orchard.Localization (handling the localization of content items) and improved/added other features of this module.
    • Demo by Sipke - Layouts - Element Blueprints: it adds the ability to create reusable content of any kind on different parts of your website.
    • Abhishek, the most active contributor to the documentations has now write access to the documentation repository!
    • Shaun is working on extension methods for the ContentDefinionManager to ease the creation of content fields.
  • Weekly Podcast 09/09/2014

    Meeting notes:

    • Status: not much happened during the week, due to an Azure hackathon in Microsoft. Owin branch is updated, Nick is working on the Localization branch, TinyMCE updated to 4.1.4 and all available plugins were added in a separate feature.
    • Nick updated the Inline Editing module with some UI changes and TinyMCE support.
    • A bit of live troubleshooting on Sébastien's machine to solve an issue where running 1.x fails with an YSOD after updating from the Owin branch with the help of Nick. Temporary ASP.NET files should be cleaned (x86 and x64 too).
    • After a long time, we did bug triage on the regular meeting too!
  • Strongly-typed HTML Helpers in Orchard Shapes

    Orchard uses dynamic objects called shapes as view models. It happens commonly that you’ll want to use strongly-typed HTML helpers such as Html.TextBoxFor from within a shape’s template. What if now, my model has some properties that are what I’m really interested in, and that are of a known strong type?

  • Weekly Podcast 09/02/2014

    Meeting notes:

    • Title of the meeting: "Sébastien rimmed widget layers".
    • Status: feature branches are still under development and feedback/testing/bugfixing is welcome!
    • Performance improvements: sessions management (background tasks work with smaller batches of content); the background task updating the indices now works as a job (JobsQueue) and processes all the items in one go (but divided into multiple transactions of 50 items); Navigation, Projection and Layer queries optimized for performance.
    • Jay-Z and Kanye joined the meeting (in spirit) too.
    • Discussion about using a translation API (e.g. Bing) for localizing content, but they are still unreliable for keeping the context for more than a few sentences.
    • Discussion about a new Gallery: it should be a "directory" pointing to the repositories and it should create the NuGet packages for the modules/themes based on specific tags in their repositories. It should also have a feature for displaying user-driven compatibility information for modules/themes with specific Orchard versions (and maybe with other modules/themes too).
    • Discussion about Orchard's future and ASP.NET vNext: Orchard will support the Desktop-CLR, not the Cloud-optimized one, since some of Orchard's dependencies (Lucene, AutoFac, NHibernate) need it and the Cloud-CLR is only a subset of the Desktop-CLR, so e.g. System.Drawing would not be available. The ASP.NET vNext version of Orchard would be Orchard 2.0, but we can have 1.9 or even 1.10, etc. before that too.
    • N. Taylor Mullen will join us next week to talk about the effects of ASP.NET vNext on Orchard and the new Razor engine. Check out his presentation from this year's Orchard Harvest.
    • Document DB for Orchard 2.0? The problem is that it only works on Azure, so you couldn't set up a development environment locally.
    • Would you like to see the Orchard documentation in your native language? Actually Antoine already solved this problem (see the French translation): just fork the Documentation project. It contains an ASP.NET Web Pages application, which you can just deploy to after you translated the documentation (which are stored in the form of MarkDown files in the Documentation folder).
    • "See you on Thursday for a happy triage meeting!"
Software IP management and project development governance provided by Outercurve Foundation