David Hayden

Orchard CMS, ASP.NET, ASP.NET Core, Vue.js, and more...

Upgrading Orchard Core CMS Developer Website to RC1

Orchard Core CMS RC1 was released! I have spent several weeks upgrading a number of websites for clients. In addition to these websites, I also upgraded the Orchard Core CMS Developer website to RC1.

There probably aren't a lot of websites running in production on Orchard Core beta, but if you're an Orchard Core Developer wanting a quick overview on how to upgrade an Orchard Core CMS Website from beta to RC1, feel free to check out the blog post which summarizes the process. It touches upon the upgrade to .NET Core 3.0 and ASP.NET Core 3.0 as well as possible changes to setup recipes and custom modules. The changes to Orchard Core recipes was probably the most time consuming of all the changes, because I leverage them a lot for automation and disaster recovery.

Upgrading Orchard Core CMS Developer Website


Orchard Core CMS Developer Website

I developed an Orchard Core CMS Developer Website dedicated to Orchard Core. The content is still sparse, but now that it is launched, I can start spending more time on the content. The website initially started out as a place to showcase various Orchard Core modules, themes, and widgets I have developed in a portfolio. However, one thing led to another and I figured I would make it a complete stand-alone website. I plan to start posting Orchard Core tips and tutorials in the blog and adding many more features that are a bit too early to mention. Orchard Core CMS is still in beta so I've had to work around several bugs, which has made this a labor of love and a challenge to launch in its beta form.

I have so many more modules and themes I have built that are not mentioned in the portfolio, but to start I thought I would mention some of the earliest Orchard Core CMS themes and modules I had built when first learning Orchard Core CMS in early 2018: Orchard Core CMS Freelance Developer Theme, Orchard Core CMS Live Chat Module, and Orchard Core CMS Google Analytics Module. I also mention these modules first, because I also use them on the website. Many, many more to come!

Orchard Core CMS Developer Website


Create Orchard Core CMS Website

Attended a local developer group meeting and was asked how to create an Orchard Core CMS Website. Turns out this is really easy whether you're an Orchard Core Developer or not. The Orchard Core Code Generation Templates that work with the .NET Core CLI make it really easy to create a website, Orchard Core Module, Orchard Core Theme, and even a modular .NET Core MVC Website. Here is a quick Orchard Core CMS Tutorial that shows you how to create an Orchard Core CMS Website.

Create Orchard Core CMS Website


Orchard Core Blog and Custom Recipes

I promised in an earlier Orchard Core CMS Tutorial that I would mention a feature in Orchard Core that allows developers to expose custom recipes in their Orchard Core CMS Themes and Modules and run them from the admin dashboard. Although a bit bare bones at the time of this tutorial, custom recipes are a very handy way for Orchard Core CMS Developers to add additional functionality and features to their custom themes and modules on the fly. I currently use custom recipes in my themes to add features like blogs, portfolios, product catalogs for e-commerce stores, FAQ's, etc. on demand. I also use custom recipes in my custom Orchard Core CMS Modules to help with special situations or monotonous tasks. Learn more about running custom recipes and setup recipes in Orchard Core CMS from the admin dashboard.

Running Custom Recipes in Orchard Core CMS from Admin Dashboard


Portfolio Widget - Orchard Core Theme Development

Developed a cool portfolio widget for one of my Orchard Core CMS Themes, and it got me thinking just how much I enjoy developing widgets, modules, themes, websites, modular .NET Core Apps, etc. with Orchard Core CMS. I am completely sold on Orchard Core and am thrilled to be an Orchard Core Developer. The liquid template language and the Templates Module are a real joy to use for creating shapes and views. I still enjoy Razor, but man, liquid is fun, and even cooler, I am able to and have developed custom liquid template language filters in Orchard Core to create new features and functionality! I'll be bundling the new portfolio widget as a custom recipe in my theme, which yeah... is a little tedious right now, but has some incredible advantages in terms of extensibility, separation of concerns, etc. So, I love creating those custom recipes, too, because they provide that extra BAM I love to give to my themes!

Orchard Core Development - Portfolio Widget


Custom Admin Menus in Orchard Core CMS

I'm upgrading a number of my custom Orchard Core Themes based on new features that have been added to Orchard Core recently, and I jumped on the opportunity to add new admin menus in my setup recipes and custom recipes as part of my custom Orchard Core CMS themes. Although I've been doing this in Orchard CMS for over a decade, I get really excited developing for Orchard Core since it is so new and the future of Orchard CMS. If you're a professional Orchard Core Developer like myself, I highly recommend you kick the tires on integrating admin menus into your setup recipes and custom recipes in your themes!

Admin Menus in Orchard Core CMS Themes with Setup Recipes and Custom Recipes


Login and Registration in Orchard Core CMS

Login and registration pages in Orchard Core CMS can now be optionally displayed using the active site theme! In the past, these pages were always rendered using the active admin theme. If you are an Orchard Core CMS Theme Developer like myself, you will want to enable these login and user registration settings during theme development to verify the pages look good with your theme.

New Login Setting in Orchard Core CMS


Taxonomies in Orchard Core CMS

Taxonomies Module was recently added to Orchard Core! Taxonomies allow you to categorize various content items in your Orchard Core CMS Website. I wrote a quick Orchard Core Tutorial that shows how to enable the Taxonomies feature, add a new Taxonomy Term Content Type, create a new Taxonomy, and attach the new Taxonomy Field to a Content Type. The tutorial categorizes movies by genres in a movie library.

Taxonomies in Orchard Core CMS


Recipe Migrations in Orchard Core CMS

I developed a custom Orchard Core CMS Module that creates a Bootstrap 4 Card Widget to test the new Recipe Migrations Feature. The new IRecipeMigrator Interface in Orchard Core can be used in place of IContentDefinitionManager in DataMigration Classes to execute recipe migration files. Having developed numerous setup recipes for custom Orchard Core CMS Themes (Coming Soon, Freelancer, Editorial, and more) as well as recipes that can be run from the Orchard Core Dashboard to add features on the fly, I much prefer using the new Recipe Migrations feature over IContentDefinitionManager when possible and appropriate.

Custom Orchard Core CMS Module Bootstrap 4 Card Widget


Color Picker for Orchard Core CMS

For learning purposes I developed a custom Color Picker TextField Editor for Orchard Core CMS over the weekend.

Color Picker For Orchard Core CMS


Using GraphQL via GraphiQL in Orchard Core CMS

GraphQL and GraphiQL were recently added to Orchard Core. A great way to get started with GraphQL in Orchard Core is to create a website using The Agency Theme and query the various BagParts and their repected Content Types, Parts, and Fields using the GraphQL Explorer (i.e. GraphiQL). In this Orchard Core CMS Tutorial I use GraphQL and GraphiQL to query the portfolio and its projects.

GraphiQL Intellisense in Orchard Core CMS


Custom Orchard Core Widget Gets an Upgrade!

In the previous Orchard Core CMS Tutorial I created an Alert Widget that displays a Boostrap Alert Component on the Orchard Core CMS Website. During a presentation I enhanced the widget live when an attendee kindly pointed out that Bootstrap Alerts can be dismissible. Oops! I thought this would make a great follow-up blog post, so I wrote a tutorial that shows how to modify the Orchard Core Widget to include a Dismissible Checkbox option and improved Liquid Templates! With these enhancements, our custom Orchard Core CMS Widget now optionally displays dismissible Bootstrap Alerts.

Develop Custom Orchard Core CMS Widget that displays dismissible Bootstrap Alerts


Develop a Custom Widget in Orchard Core CMS

If you're interested in Orchard Core CMS Development, you will enjoy this tutorial on developing a custom widget for Orchard Core CMS. From scratch, I show how to develop an Alert Widget using the Orchard Core admin and liquid templates. I create the Alert Widget Content Type, add a Text Field and HtmlBody Part, demonstrate how to set field settings for the Predefined List Editor (aka Options Editor), and develop the custom templates using Liquid with the support of the Template Module in Orchard Core CMS. If you're new to Orchard Core CMS, you should learn a few tips and tricks on Orchard Core Development.

Develop Custom Widget for Orchard Core CMS


Orchard Core CMS Theme Development

Let's continue working with The Blog Theme in Orchard Core CMS and add a new zone to the layout template for displaying shapes. We're not going to modify the original theme, however. Instead let's use the Templates Module in Orchard Core CMS to create a new Layout template that overrides the theme layout. If you're interested in becoming an Orchard Core CMS Developer, view the tutorial: Adding a New Zone to The Blog Theme Layout in Orchard Core CMS

Add Zone to The Blog Theme Layout in Orchard Core CMS


Templates in Orchard Core CMS

A new Orchard Core CMS tutorial showing how to override templates in The Blog Theme using the Templates Module. Let's enhance The Blog Theme by allowing authors to select a background image for articles using a Media Field and display the selected background image in a new liquid template that overrides The Blog Theme template. Developers interested in being Orchard CMS Theme Developers or extending the current themes in Orchard Core CMS will find this tutorial useful.

Liquid Templates in Orchard Core CMS


New Content Picker Field in Orchard Core CMS

The Content Picker was just added to Orchard Core CMS. I've been waiting for it, and am excited about its release! If you're a seasoned Orchard CMS Developer, you may be surprised that you can't access the selected content items directly from the field. I wrote a tutorial to show you how to do it using Liquid Templates and Views. Hope it helps!

Using the Content Picker in Liquid Templates in Orchard Core CMS

Content Picker in Orchard Core CMS


Role Layer Rule Orchard Core CMS

I developed a Role Layer Rule for Orchard Core CMS. It allows an Orchard Core CMS Administrator to create a layer and specify a rule where the widgets in that layer are only visible to users in a specified role. Like other layer rules, the functionality is exposed as a GlobalMethod in Orchard Core CMS that returns true or false depending on if the current user is a member of the specified role.

Freelance Orchard Core CMS Developer - Role Layer Rule


Bootstrap 4 Carousel Widget for Orchard Core CMS

I developed a Bootstrap 4 Carousel Widget for Orchard Core CMS. It allows users to add a carousel to their Bootstrap 4 websites with no knowledge of HTML, yet at the same time, allow Orchard Core developers to modify and extend the module for easy customization.

Orchard Core CMS Developer - Custom Module


Dynamic Theme Selection in Orchard Core CMS

I developed another Orchard Core CMS Module. This one allows the administrator to switch the current theme during his or her session to any active theme without impacting the theme viewed by other visitors.

Dynamically change current theme in Orchard Core CMS


Live Chat Orchard Core CMS Module

I developed a custom Orchard Core CMS Module that allows you to add live chat functionality to your website.

Custom Orchard Core CMS Module for Live Chat


Orchard Core Workflows

Developed a custom activity for Orchard Core Workflows while spending time at the Student Union at the University of Central Florida (UCF) in Orlando. The Regex Validator validates a form field or other data using a regular expression.

Custom Orchard Core Workflow Activity - Orchard Core Developer


Orchard Core - Liquid Template Language Filter

A relaxing Sunday afternoon at Starbucks experimenting with developing filters for use with the Liquid Template Language feature in Orchard Core. Created a Caesar Cipher filter that will encipher a string of plain text using the fun substitution cipher. This was inspired by a day of "hacking" I taught this past summer using Python.

Orchard Core Module adding Liquid Template Language Filter

Really enjoying liquid in Orchard Core. Thinking I should take this knowledge and become a Shopify Developer. Already signed up as a partner :)


Orchard Core Module - Robots.txt

Developed an Orchard Core CMS Module on Saturday while sipping green tea at Starbucks. It's a robots.txt module that allows an Orchard Website Administrator to populate and modify the contents of the robots.txt file from the dashboard. This is a feature I developed many years ago for Orchard CMS 1.x when first learning it, so I thought it would be fun to develop it again for Orchard Core.

Orchard Core Module - Robots.txt

Although developing modules in Orchard Core is conceptually the same as developing modules in Orchard CMS 1.x, it's not exactly the same. The robots.txt module is a great starter module for Orchard Core that introduced me to the differences in creating such a module. This is the first of many to help sharpen the saw!


Orchard Core Theme for Journalists - Editorial

Developed an Orchard Core Theme called Editorial. Like Coming Soon and Freelancer, Editorial uses the Liquid Template Language and has a robust Setup Recipe that will create a number of useful Content Types and Widgets to generate an extensive website with menus, widgets, and sample pages.

Orchard Core Theme for Journalists and Writers - Editorial


Orchard Core CMS

Orchard Core CMS was released as beta 2. I am developing custom themes and modules for Orchard Core CMS as well as building modular, multi-tenant, web applications.

Developing with Liquid Template Language and YesSQL, and experimenting with JetBrains Rider for all my Orchard Core and ASP.NET Core Development.

Orchard Core CMS Theme - Coming Soon
Coming Soon

Bootstrap 4 landing page announcing an upcoming website.

Coming Soon

Orchard Core CMS Theme - Freelancer

Bootstrap 4 one-page, portfolio website for freelance developers.



Tutoring Python, Java, and PHP/MySQL

Tutoring students at the local college in Python, Java, and PHP/MySQL during the 2017-18 school year. In addition to helping them tackle the classroom material, I am also introducing them to git and Docker. The course material is a bit outdated so I am exposing the students to technology and skills that they can proudly add to their resume.

For a bit more practice we are also tackling programming challenges on 2 popular websites: HackerRank and Codewars.