Skip to main content

Posts

How to build a Scalable, Secure, and Performant Umbraco Website on Azure

Umbraco is a highly flexible, open-source content management system (CMS) that allows developers to easily build powerful websites. Hosting Umbraco websites on Microsoft Azure provides numerous benefits, such as scalability, security, and seamless integration with other Azure services.  In this guide, we’ll explore one of the recommended architectures for hosting an Umbraco website on Azure, including key services, configurations, and best practices to ensure performance, reliability, and ease of management. Architecture Diagram and Breakdown of Primary Azure Components Microsoft Azure is a robust cloud platform with a broad set of services that align well with the needs of a modern web application. Azure can offer hosting, storage, monitoring, security, and automatic scaling for an Umbraco website, among other features. With the right architecture, Azure enables Umbraco websites to serve traffic seamlessly, adapt to changing loads, and provide a secure environment for content manage
Recent posts

How to sort items by a custom date in an Umbraco v13+ Examine Index

Briefly Examine and Lucene Examine  is a powerful tool that simplifies data indexing and searching. It was developed by Shannon Deminick and operates on top of  the Lucene.Net Search Engine Library , which is a high-performance search library designed for .NET applications.   Examine is highly extensible, allowing users to configure multiple indexes, each with its own settings. By default, Examine provides a Lucene-based index implementation along with a Fluent API for easy data searching.   Additionally, Umbraco offers a layer known as UmbracoExamine , which provides Umbraco-specific APIs for indexing and searching content and media. The Umbraco backoffice utilizes the same search engine to return results for content, media, and various Umbraco settings, including Document Types, Data Types, and Dictionary Items. Umbraco stores all values in Examine as Strings By default, Umbraco stores all search index values as strings. This creates a significant issue when you need to sort your dat

SQL to Find Umbraco v8 Nodes using a Certain Umbraco Document Type

A few years ago, I created this blog post to show how to find Umbraco v7 Nodes using a certain Umbraco Document Type.   I needed the same thing for Umbraco v8 projects, and below are some scripts that should help with this question. Find content pages that use a specific document type:  SELECT * FROM umbracoContent C INNER JOIN cmsContentType CT ON C . contentTypeId = CT . nodeId INNER JOIN umbracoNode N ON C . nodeId = N . id WHERE CT . alias = ' YourDocumentTypeAlias ' Find the latest published version of a content page by content page node id:    SELECT pt . alias , pd .* FROM umbracoPropertyData as pd INNER JOIN cmsPropertyType as pt ON pd . propertyTypeiD = pt . id INNER JOIN umbracoContentVersion as cv ON pd . versionId = cv . id WHERE cv . NodeId = 1055 and cv . [current] = 1

Practical Guide to SOLID Software Design Principles

SOLID software design principles are guidelines that help developers create more maintainable, understandable, and flexible code. These principles apply to any object-oriented design, and they aim to reduce the complexity of software development, making it easier to manage and scale.  The acronym SOLID stands for: Single Responsibility Principle (SRP): A class should have only one reason to change, meaning it should have only one job or responsibility.         Example: Instead of one class handling multiple responsibilities (calculating, printing, saving), each class has a single responsibility.        public class Invoice  {          public void CalculateTotal() { /* ... */ }     }       public class InvoicePrinter  {         public void Print(Invoice invoice) { /* ... */ }     }       public class InvoiceSaver  {         public void SaveToFile(Invoice invoice) { /* ... */ }     } Open/Closed Principle (OCP): Software entities should be open for extension