Orchard 1.8 will have a nice performance enhancement allowing developers to use Infoset to store Content Part data. I talked a bit about the switch to this document db type of storage in Orchard CMS in the post, Orchard CMS Shift to Document Storage and Module Development. I've been taking advantage of Infoset in my new Orchard Projects. In doing so I wanted to share another cool Orchard Module that utilizes Infoset in Orchard 1.8 - Smart App Banners Module. Smart App Banners are a way iOS Developers promote their apps in the iOS App Store on their websites. This Orchard CMS Module helps iOS developers display their Smart App Banners on their Orchard Websites.
Infoset in Orchard CMS
Take a peek at my previous blog post on Infoset to see an example of Retrieve and Store used in the Content Part to save data in the Orchard CMS Database. This new method of storing Content Part data is supposed to increase the performance of Orchard 1.8 by minimizing the number of table joins in Orchard. It will also reduce the chances of SELECT N + 1 queries.
From my perspective as an Orchard Developer, I also love the decrease in boilerplate code when creating Orchard Modules, Content Parts, etc. In many cases this will eliminate the need to create custom tables in the Orchard Database using Schema.CreateTable. It may also eliminate the need for a ContentPartRecord and/or custom Handler for the ContentPart in simple senarios. In fact, with the Smart App Banner Module I just created utilizing Infoset in Orchard 1.8, I indeed had all of these code savings.
Smart App Banner Orchard Module
I built the Smart App Banners Orchard Module as an early Christmas present for a current client that develops iOS apps in the App Store. I always thought it was cool seeing Smart App Banners on my iPhone and iPad and wanted to develop an Orchard Module to display them on Orchard Websites.
The module contains a Smart App Banner Content Part that one can attach to Content Types in Orchard CMS. You can attach it to something as simple as a Page or perhaps your own custom App Type. Adding the Content Part to the Page Content Type is as simple as attaching the Content Part to the Content Type.
Once you have added the Smart App Banner Content Part to the Page Content Type you will see the various settings for app-id, affiliate-data, and app-argument that will be used to display the Smart App Banner on the Orchard Website. At a minimum, you will need to populate the App Id of your iPhone or iPad App to display the Smart App Banner. The Affiliate Data and App Argument are optional per the Apple Guidelines.
This happens to be the App Id for the NFL App in the App Store, which will display the following Smart App Banner on the website when viewed with an iPad.
Given that the iPhone and iPad are the two most popular mobile devices used to browse the web, it only makes sense that iOS Developers using Orchard CMS for their websites have a Smart App Banners Orchard Module. It was also a fun, personal project for me to once again use Infoset in Orchard 1.8 to store and retrieve Content Part Data.
I look forward to the release of Orchard 1.8!