Blog

Brewing fresh Orchard Core CMS Tutorials

Orchard Core Module for Robots.txt

Recently I developed 3 themes for Orchard Core CMS: Coming Soon, Freelancer, and Editorial. I used the Liquid Template Language to build the themes as opposed to the Razor Template Language which I have used for years and still use to develop custom themes and modules for Orchard CMS 1.x and custom ASP.NET MVC apps. Note that as of this blog post Orchard Core is only in beta 2, which means there can be breaking changes before RC for theme and module development. It's a little too early to talk details...

Orchard Core CMS Theme for Journalists - Editorial

Editorial is an Orchard Core CMS Theme for journalists and writers based on the responsive Editorial HTML Template from HTML5 Up...

Freelancer Orchard Core CMS Theme

Freelancer is a one-page Bootstrap 4 Orchard Core CMS Theme for freelance developers based upon the Freelancer HTML Template from Start Boostrap. It includes a portfolio, about, and contact us sections...

Coming Soon Orchard Core CMS Theme

Coming Soon is a Start Bootstrap Template like the 2 themes that are currently provided with Orchard Core CMS, Blog and Agency...

C# 7 Underscore as Digit Separator in Numeric Literals

C# 7 has been released by Microsoft and can be found in Visual Studio 2017. Two C# 7 features I have already mentioned include C# 7 Tuples and C# 7 Local Functions, both of which I am very excited about as I use these features quite a bit in Python. Another new feature in C# 7, but less useful to me personally, is the ability to use an underscore as a digit separator in numeric literals in C# 7. This is visually appealing and makes it easier to read the value, whether this be in decimal, hexadecimal, or binary notation...

C# Local Functions - Visual Studio 2017

C# Local Functions are a great new feature in C# 7. Local functions are nested functions. They are methods declared in another method and run in the context of that method. They are methods that are used only by one other method and help to keep each method small and focused...

Tuples in C# 7 and Visual Studio 2017

Tuples in C# 7 and Visual Studio 2017 received a much needed facelift. I, personally, find them just as enjoyable as tuples in Python given the brevity of the new syntax, optional naming of the tuple elements (which makes a world of difference in self-documenting code), and the ability to deconstruct tuples...

Orchard CMS Integration with Slack Messaging

I taught an advanced development class on Orchard CMS this morning, and thought I would mention a live coding example I did today. My favorite parts of Orchard CMS are the behind-the-scenes features that you don't hear too much about, like scheduling tasks, events, workflow, etc. These are incredibly powerful CMS features and most Orchard CMS Developers I talk to rarely utilize them to their fullest. In particular, I love integrating Orchard CMS with external services, especially using Workflow, because it is incredibly empowering to drag-and-drop various components onto a blank canvas to create something very rich and meaningful to your business...

Honeypot Form Field for Dynamic Forms in Orchard CMS to Prevent SPAM

If you are having issues with bots spamming your forms in Orchard CMS but don't want to use CAPTCHA, an 'old school' method I used years ago was a honeypot form field. This is a non-visible form field that users won't see and fill in. However, simple bots will detect the field and fill it in along with all the other fields on the form. Given this behavior, one can usually detect spam by checking the presence of data in that honeypot form field. If it contains data, more than likely the form was filled by a bot and you can treat it as spam...

Develop ASP.NET Core Web Application

Last time I showed how to develop a .NET Core 1.0 Console Application using Visual Studio Code on macOS. Now I want to quickly show you how to get started developing an ASP.NET Core Web Application. This can be used as the basis for learning .NET Core, ASP.NET Core, Entity Framework Core, etc. I am running this on macOS, but the dotnet CLI is cross platform and works the same way on Windows, Linux, etc...