Blog

Hosting ASP.NET Core Razor Pages and Web APIs in a Single Project

This blog post explains one way that you can host ASP.NET Core Web APIs and Razor Pages in a single project. Performance is best if the client has a fast network connection to the server. The fastest connection is probably from a host to itself. This is not the most scalable configuration for production (soContinue reading “Hosting ASP.NET Core Razor Pages and Web APIs in a Single Project”

ASP.NET Core Web API Prototype, Part IV: Code and Concerns

This is the fourth and final blog post in a series that explains an approach to implementing ASP.NET Core Web API servers and .NET clients and provides an example implementation of a service that maps URL paths to information about corresponding entries in the Contentstack SaaS headless CMS. This entry describes some of the outstandingContinue reading “ASP.NET Core Web API Prototype, Part IV: Code and Concerns”

ASP.NET Core Web API Prototype, Part III: Prototype Implementation

This series of blog post explains an approach to implementing ASP.NET Core Web API servers and .NET clients and provides an example implementation of a service that maps URL paths to information about corresponding entries in the Contentstack SaaS headless CMS. This entry describes the prototype implementation. ASP.NET Core Web API Prototype, Part I: .NETContinue reading “ASP.NET Core Web API Prototype, Part III: Prototype Implementation”

ASP.NET Core Web API Prototype, Part II: Requirements for Mapping URL Paths to Contentstack Entries

This series of blog post explains an approach to implementing ASP.NET Core Web API servers and .NET clients and provides an example implementation of a service that maps URL paths to information about corresponding entries in the Contentstack SaaS headless CMS. This entry requirements and considerations for the example Web API. ASP.NET Core Web APIContinue reading “ASP.NET Core Web API Prototype, Part II: Requirements for Mapping URL Paths to Contentstack Entries”

ASP.NET Core Web API Prototype, Part I: .NET Web API Server/Client Overview

This series of blog post explains an approach to implementing ASP.NET Core Web API servers and .NET clients and provides an example implementation of a service that maps URL paths to information about corresponding entries in the Contentstack SaaS headless CMS. ASP.NET Web APIs use JSON to expose data and functionality as HTTPS services. ThisContinue reading “ASP.NET Core Web API Prototype, Part I: .NET Web API Server/Client Overview”

Layers, Types, and Considerations for Content Delivery Caching with Headless Content Management

This blog post contains information about layers and types of caches in content delivery tiers of headless content management systems. For the purposes of this blog post, features such as edge caches and CDNs are considered as a single layer. While the internals of content management tiers of headless content management systems doubtless leverage databaseContinue reading “Layers, Types, and Considerations for Content Delivery Caching with Headless Content Management”

Content Modeling with the Contentstack SaaS Headless CMS

A solid, long-term information architecture, specifically in the form of stacks, content types, and collections of entries, optimizes implementation and maintenance. This blog post contains information about content modeling with the Contentstack SaaS headless content management system. If you have additional suggestions about related topics, please comment on this blog post. I am trying toContinue reading “Content Modeling with the Contentstack SaaS Headless CMS”

Making the Transition to SaaS Headless CMS and Service Architectures

While the concepts are simple, my experience with other systems and architectures presented obstacles to comprehending and adopting SaaS headless content management philosophies and techniques. This blog post intends to provide guidance for architects, developers, and organizations migrating to headless content management systems from other web experience management platforms, though some suggestions are more broadContinue reading “Making the Transition to SaaS Headless CMS and Service Architectures”

CMS and Web Industry Trends, May 2021

In no particular order, this blog post written in May of 2021 presents some perspectives on technical trends in the web application industry, especially the paradigm shifts towards SaaS-hosted service-oriented applications and serverless infrastructure. I don’t expect any of this to be new information to most readers, but maybe it deserved a summary. HTTPS ServicesContinue reading “CMS and Web Industry Trends, May 2021”

Headless CMS ASP.NET Razor Pages Partial View Component Architecture

This blog post provides an example of using a modular field in the Contentstack SaaS headless CMS to let the CMS user select an ASP.NET Core Razor Pages partial view to render each block. This blog post depends on information and code provided in the following previous blog posts. .NET Core Headless CMS Entry ModelsContinue reading “Headless CMS ASP.NET Razor Pages Partial View Component Architecture”

Use .NET Attributes to Specify Entry Model Classes for CMS Content Types

This blog post explains how you can use .NET attributes to indicate entry model class(es) to represent entries based on different content types in the Contentstack SaaS headless CMS, although this technique should work with any headless CMS. .NET Core Headless CMS Entry Models and Entry Model Classes – Deliverystack.net When you need to retrieveContinue reading “Use .NET Attributes to Specify Entry Model Classes for CMS Content Types”

Block Models and JsonConverters without the Contentstack .NET SDK

This blog post explains how you can use block models with a generic base class to model Contentstack modular fields and to simplify JsonConverters serialization configuration without using the Contentstack SDK. This blog post depends on a refactored version of the base class for block models described in the following blog post. Basically, for eachContinue reading “Block Models and JsonConverters without the Contentstack .NET SDK”

Specify ASP.NET Razor Core Pages Layouts and Partial Views with Headless CMS

This blog post describes a solution that lets the CMS user select a layout to override the default layout and a partial view to render an entry from Contentstack. This solution extends an existing solution for using ASP.NET Razor Pages with the Contentstack SaaS headless CMS. Expose Headless CMS Entry JSON in Entry Models, ASP.NETContinue reading “Specify ASP.NET Razor Core Pages Layouts and Partial Views with Headless CMS”

Expose Headless CMS Entry JSON in Entry Models, ASP.NET Core Razor Pages Edition

This blog post is basically a reminder that you may want to store the raw JSON of entries even if you use entry models. The JSON can have advantages in during development by allowing programmers to access data in new content types and fields before creating corresponding entry model classes and properties but can alsoContinue reading “Expose Headless CMS Entry JSON in Entry Models, ASP.NET Core Razor Pages Edition”

ASP.NET Core Razor Pages and SaaS Headless Content Management Systems

This blog post attempts to present information about using ASP.NET Core Razor Pages with SaaS headless content management systems using Contentstack as an example. The information in this post is intentionally limited and oversimplified. ASP.NET Core Razor Pages are based on ASP.NET MVC (model-view-controller), but with a simplified implementation based on common patterns. Both ASP.NETContinue reading “ASP.NET Core Razor Pages and SaaS Headless Content Management Systems”

.NET Headless Content Management Considerations

I intend to use this blog post to track technical concerns to consider before implementing a .NET solution that leverages a headless content management system. Some of these considerations apply to content delivery solutions on any platform and some may apply to service-oriented solutions beyond content management. Linked posts tend to focus on .NET andContinue reading “.NET Headless Content Management Considerations”

Write Information about JavaScript Objects to the Browser Console

The approach described in this blog post writes information about JavaScript objects (including their properties, methods, and values) to the console, recursing through objects exposed as properties, making it easier to see what is available without referring to the documentation, and writing identifiers to the console that a developer can easily copy and paste intoContinue reading “Write Information about JavaScript Objects to the Browser Console”

Whether to Use Vendor SDKs to Access Vendor Services

This blog post presents perspectives on whether to use vendor SDKs or access their HTTP/JSON service endpoints directly, specifically in the context of the Contentstack SaaS headless content management system but with considerations relevant to any headless CMS or service-oriented application. If you have perspectives on whether and when to use the vendor’s SDK toContinue reading “Whether to Use Vendor SDKs to Access Vendor Services”

Three Major Phases for Data Access in Headless Content Management Solutions

This blog post provides some information about the three major phases for data access in content delivery solution lifecycles for headless content management solutions. If you have additional perspective on this topic, please comment on this blog post. For background information, see this previous blog post: SaaS Headless CMS Components, Responsibilities, and Phases for DataContinue reading “Three Major Phases for Data Access in Headless Content Management Solutions”

SaaS Headless CMS Components, Responsibilities, and Phases for Data Access

This blog post explains the following diagram that describes responsibilities for components in a SaaS headless content management implementation and the three main phases at which customer solutions can retrieve data from the CMS. To make it easier to understand, this diagram intentionally omits systems often integrated with solutions that involve content management systems, suchContinue reading “SaaS Headless CMS Components, Responsibilities, and Phases for Data Access”

Prototype Content Delivery .NET Typed Clients for the Contentstack SaaS Headless CMS

This blog post describes a prototype for a .NET typed client that accesses HTTPS content delivery services that return JSON from the Contentstack SaaS headless content management system. This post also contains some important notes about appsettings.json and exceptions in Blazor, which I understand uses JavaScript and some JavaScript components to run C# as WebAssemblyContinue reading “Prototype Content Delivery .NET Typed Clients for the Contentstack SaaS Headless CMS”

Manage Custom Media Metadata in the Contentstack SaaS Headless CMS

This blog post provides some perspectives about managing custom metadata for media assets stored in the Contentstack SaaS headless CMS. I do not have anything implemented as I do not have any related requirements; these are just some ideas that I wanted to write down while I was thinking about the topic. If anyone isContinue reading “Manage Custom Media Metadata in the Contentstack SaaS Headless CMS”

Call Contentstack HTTPS JSON APIs from ASP.NET Blazor Clients

This blog post provides pointers for calling HTTP APIs that return JSON from ASP.NET Blazor client applications, specifically using the Contentstack SaaS headless content management system. If I understand correctly, with Blazor, developers can write C# code that runs as WebAssembly in the browser. Update 20.April.2021: For a more comprehensive explanation and more robust code,Continue reading “Call Contentstack HTTPS JSON APIs from ASP.NET Blazor Clients”

Cool Tools for [Contentstack] [SaaS] [Headless] [CMS] [.NET] Developers

This blog post lists tools that can improve productivity for developers, especially those working with .NET and headless content management systems. Microsoft Windows 10: Even though I do not need to reinstall Windows every few months anymore, I might move to Linux completely if Microsoft Office and Visual Studio could run without Windows. I tryContinue reading “Cool Tools for [Contentstack] [SaaS] [Headless] [CMS] [.NET] Developers”

All About Validation with the Contentstack SaaS Headless CMS

This blog post contains information about validating data with the Contentstack SaaS headless content management system. Throughout the system, roles and access rights validate which users can perform what operations. Contentstack provides some basic field validation options. Content Validations: Types of Validation Checks (contentstack.com) In each global field and content type, each field can beContinue reading “All About Validation with the Contentstack SaaS Headless CMS”

Setting Field Values Programmatically in SaaS Headless Content Management Systems

This blog post suggests a technique for setting field values programmatically in entries as they move through workflows in SaaS headless content management systems, specifically considering my experiences with the Contentstack SaaS headless CMS. Full disclosure: I wrote it some time ago, moved on, forgot about it, never reviewed it, and published it to clearContinue reading “Setting Field Values Programmatically in SaaS Headless Content Management Systems”

Use Windows Terminal for Visual Studio Run and Debug

This blog post explains how get Visual Studio to use Windows Terminal to run and debug your projects rather than using the Windows console. Right-click project and select properties. Click the Debug tab. Create a new profile. Set Launch set to Executable. Set Executable to the full path to the Windows Terminal executable (maybe C:\Users\<username>\AppData\Local\Microsoft\WindowsApps\wt.exe).Continue reading “Use Windows Terminal for Visual Studio Run and Debug”

Contentstack SaaS Headless CMS UI Extension Hosting

This short blog post explains some differences between Contentstack hosting and external hosting of custom user interface extensions to its headless content management system. As described in the following blog post, you can extend Contentstack with three types of user interfaces: custom field types (at the field level), custom widgets (at the entry level), andContinue reading “Contentstack SaaS Headless CMS UI Extension Hosting”

Use a Widget to View Entry JSON in the Contentstack SaaS Headless CMS

This blog post explains how you can use a widget to view the JSON representation of an entry in the Contentstack SaaS headless CMS user interface. Update 23.Apr.2021: Contentstack Developer Custom Widget – Deliverystack.net You can create a widget based on the JSON custom field to view the JSON representation of entries in the ContentstackContinue reading “Use a Widget to View Entry JSON in the Contentstack SaaS Headless CMS”

Contentstack SaaS Headless CMS .NET SDK Exception Management

This blog post explains how you can access information about errors that occur when using the .NET SDK for the Contentstack SaaS headless content management system. For background information about accessing error data from the underlying .NET HttpWebRequest class, see this previous blog post: Access Error Data from HTTP Response When HttpWebRequest Throws an ExceptionContinue reading “Contentstack SaaS Headless CMS .NET SDK Exception Management”

Code Dump: .NET Contentstack Media Importer

This blog post describes a prototype .NET command line solution for importing media into the Contentstack SaaS headless content management system. While this tool functions, it could use testing and refactoring. More importantly, it demonstrates relevant APIs and techniques for working with folder paths in Contentstack. You can use these techniques to create asset folderContinue reading “Code Dump: .NET Contentstack Media Importer”

Access Error Data from HTTP Response When HttpWebRequest Throws an Exception

This blog post explains how to access the response body that may contain error messages when an HTTP request returns an error. You can use this technique to diagnose HTTP service API calls that return errors and raise exceptions. The following raise an WebException or an AggregateException if the HTTP request returns an error. stringContinue reading “Access Error Data from HTTP Response When HttpWebRequest Throws an Exception”

Troubleshooting Webhooks

This blog post contains information about troubleshooting webhooks, which I have been exploring specifically with the Contentstack SaaS headless CMS. Webhooks are just HTTP requests, so troubleshooting them is not unlike troubleshooting any HTTP request. Webhook – Wikipedia About Webhooks (contentstack.com) For me, problems that appear significant often have trivial solutions, often involving simple user errors.Continue reading “Troubleshooting Webhooks”

Synchronize Content between Headless Content Management Systems

This blog post describes techniques that you can use to syndicate content from one headless content management system to others from the same CMS vendor, typically from production to test, development, and other systems. Organizations often deploy separate instances of a content management system for development, test, production, and potentially other purposes. Changes to contentContinue reading “Synchronize Content between Headless Content Management Systems”

Part II: Prototype Contentstack Update Webhook Handler .NET Azure Function to Set Field Values for Validation

This blog post presents code for a prototype .NET Azure function that handles entry update webhooks from the Contentstack SaaS headless CMS to set the value of a field in the entry that presents messages to the CMS user. Specifically, this example ensures that two date fields exist and contain values, and that the valueContinue reading “Part II: Prototype Contentstack Update Webhook Handler .NET Azure Function to Set Field Values for Validation”

Part I: Use Update Webhook Handlers to Update Entries in Contentstack

This blog post describes a technique that uses an entry update webhook handler to update field values in the Contentstack SaaS headless CMS. You can use this technique to validate existing data in entries, to set default values for empty fields, and otherwise to manipulate field values programmatically. This is my simplified understanding of whatContinue reading “Part I: Use Update Webhook Handlers to Update Entries in Contentstack”

Prototype .NET Class to Invoke [Contentstack] [SaaS] [Headless] [Content Management] HTTPS JSON Service APIs

This blog post presents a prototype for a .NET class that invokes HTTPS service APIs in the Contentstack SaaS headless CMS that accept and return JSON. This is just a short post to publish the sample code that I intend to reference from one or more additional blog posts. Contentstack provides a .NET SDK thatContinue reading “Prototype .NET Class to Invoke [Contentstack] [SaaS] [Headless] [Content Management] HTTPS JSON Service APIs”

Generate sitemap.xml and robots.txt from Content Management Metadata

This blog post suggests that solutions use metadata from the content management system to generate sitemap.xml and robots.txt. You can use sitemap XML and the robots exclusion standard to influence SEO for your website and to affect the functionality of search engines including google. Each website can have a URL that exposes XML containing metadataContinue reading “Generate sitemap.xml and robots.txt from Content Management Metadata”

Access Contentstack Entry Workflow Information

This blog post explains how to include workflow information when you retrieve entries from the Contentstack SaaS headless content management system. Default JSON representations of Contentstack entries, including those sent to webhooks, do not include workflow details. To access workflow details, set the include_workflow query string parameter to true when you retrieve the entry. TheContinue reading “Access Contentstack Entry Workflow Information”

Advantages of Event Systems with Headless Content Management Systems

This blog post lists some potential advantages in leveraging event systems with headless content management systems and potentially any system that uses microservice architecture. Event systems pass messages between applications. Headless CMS uses webhooks to pass messages to applications. To integrate an event system with headless CMS, implement an HTTPS listener that generates events fromContinue reading “Advantages of Event Systems with Headless Content Management Systems”

Relationships between Records in Content Management Systems

This blog post contains information about relationships between records in content management systems. Content management systems provide mixed support for hierarchical and relational record structures. CMS developers define content types, where each record can have values for the fields defined in its content type. Records can have relationships with other records. Together, content types andContinue reading “Relationships between Records in Content Management Systems”

SaaS Headless CMS Architectural Considerations, Part II

This blog post lists some considerations for architecting SaaS headless content delivery solutions. This blog post serves as Part II of a previous blog post, Considerations for Headless CMS Architectures – Deliverystack.net. CMS Vendor: While all SaaS headless CMS may have similar architectures, each vendor has distinct features and implementation differences, for example regarding userContinue reading “SaaS Headless CMS Architectural Considerations, Part II”

Differences between Decoupled CMS and SaaS Headless CMS

This blog post describes differences between decoupled and SaaS headless content management systems. Different people working for different vendors use terms differently, but for the purposes of this blog post, decoupled refers to content delivery using HTTPS service APIs to access CMS facilities rather than using platform native APIs, direct database connections, and other tightlyContinue reading “Differences between Decoupled CMS and SaaS Headless CMS”

Managing Content Types with the Contentstack SaaS Headless CMS

This blog post contains information about managing content type definitions with the Contentstack SaaS headless CMS, meaning migrating content type definitions between stacks. These and similar considerations apply to any headless CMS. A content types specifies the fields that appear in entries of that type. Contentstack stores content type definitions in its repository. You canContinue reading “Managing Content Types with the Contentstack SaaS Headless CMS”

Headless CMS with Event System Diagram

This blog post presents a diagram of a possible headless CMS architecture with search that uses a brokerage architecture and an event system for webhooks and API calls. For background information, see: Centralizing [Headless] [CMS] Data Access – Deliverystack.net Web Service Brokerage Architecture [for Headless CMS] – Deliverystack.net Integrating Event Systems with Headless CMS –Continue reading “Headless CMS with Event System Diagram”

Customizing and Extending SaaS Headless CMS User Interfaces

This blog post contains information about customizing and extending SaaS headless CMS, though some of this information may apply to any SaaS solution. By customizing, I mean anything that a CMS user with appropriate access can achieve by setting values through a browser-based user interface or HTTPS service endpoint. By extending, I mean anything thatContinue reading “Customizing and Extending SaaS Headless CMS User Interfaces”

Multiple [Headless] [CMS] Repositories

This blog post contains ideas for content delivery applications to leverage multiple headless CMS repositories with specific information about stacks (repositories) in the Contentstack SaaS headless CMS, though much of this information may apply to any CMS or other repository. Along with content type definitions, content entries, and media assets, stacks contain system data suchContinue reading “Multiple [Headless] [CMS] Repositories”

Web Service Brokerage Architecture [for Headless CMS]

This blog post suggests that organizations, especially headless CMS customers, employ service brokerage architectures for service-oriented applications to control the endpoints used by their applications. This post focuses primarily on HTTPS endpoints that serve JSON for content delivery in headless CMS implementations, but many of these considerations apply to other systems as well as webhooksContinue reading “Web Service Brokerage Architecture [for Headless CMS]”

ASP.NET Core vs. NodeJS

This blog post intends to describe similarities and differences between ASP.NET Core (.NET 5+) and NodeJS for server-side web application functionality. I do not specifically intend to discuss technologies such as TypeScript and Deno, which likely address some of these concerns. I also didn’t mention some elements where I consider the technologies to be basicallyContinue reading “ASP.NET Core vs. NodeJS”

Process Headless CMS Webhooks with Serverless Azure Functions

This blog post demonstrates a way to implement (serverless) Azure functions that use ASP.NET Core and .NET 5 to process webhooks generated by headless Content Management Systems, including how to run functions locally and use ngrok to invoke those local functions from cloud environments such as SaaS headless CMS. Azure functions provide ASP.NET processing inContinue reading “Process Headless CMS Webhooks with Serverless Azure Functions”

My Headless CMS Philosophy

This blog post contains some of my perspectives regarding implementation of headless content management systems. All implementations must use SaaS, Content Delivery Networks, or serverless computing (SaaS is the Only Real Cloud – Deliverystack.net). All applications must build only on programming interfaces that expose data and services over HTTPS. Think of the CMS as aContinue reading “My Headless CMS Philosophy”

What and How to Index for Search with Headless CMS

This blog post provides some perspectives on what data from headless content management and potentially other systems to index for search operations and options for implementing those indexing operations, where indexing makes search engines aware of data. All headless CMS systems provide APIs that allow developers to select zero or more records that match specificContinue reading “What and How to Index for Search with Headless CMS”

Centralizing [Headless] [CMS] Data Access

This blog post presents potential advantages of centralizing access to data in Content Management System (CMS). While often used to manage the content of websites, content management systems can manage any type of data for any delivery channel such as print, mobile apps, kiosks, and otherwise. Content management systems can provide access to data inContinue reading “Centralizing [Headless] [CMS] Data Access”

Serverless Computing Really Means Less Server [Customer Responsibility]

This blog post provides perspective on the term serverless as it relates to computing, especially in the context of web solutions and headless content management systems. For background, concerns, and related information, especially regarding serverless computing with .NET, see the blog post Implications and Considerations for Serverless ASP.NET – Deliverystack.net, much of which applies toContinue reading “Serverless Computing Really Means Less Server [Customer Responsibility]”

EDI as a Reference for Integration Services

This blog post suggests consideration or even use of Electronic Data Interchange standards when implementing integration services between applications. Electronic Data Interchange (EDI) “can be defined as the transfer of structured data, by agreed message standards, from one computer system to another without human intervention” (Electronic data interchange – Wikipedia). EDI standards such as X12Continue reading “EDI as a Reference for Integration Services”

Data-Driven Navigation with Headless Content Management Systems

This blog post provides perspective on implementing data-driven web navigation with headless content management systems. Hierarchical Data-Driven Navigation Web navigation refers to elements that allow visitors to navigate the site including tab strips, eyebrows, toebrows, accordion menus, breadcrumbs, both visual and XML site maps, and so forth. Data-driven navigation refers to presentation components that useContinue reading “Data-Driven Navigation with Headless Content Management Systems”

Getting Data from Headless Content Management Systems

This blog post describes techniques that you can use to retrieve data from a headless Content Management System (CMS). Content delivery for headless Content Management Systems consists of HTTPS service endpoints for which the CMS vendor provides CDN or other caching services around three types of data. Content types define the fields that make upContinue reading “Getting Data from Headless Content Management Systems”

SHCDAS: SaaS Headless CMS Integrations and Extensions

This blog post is part of the SaaS Headless Content Delivery Architectures Series (SHCDAS). SaaS headless Content Management Solutions (CMS) expose the following primary extension points: Content Delivery HTTPS services including CDN and data synchronization Media Delivery HTTPS services including image manipulation and CDN Content Management services for the CMS UI and custom applications Extensible user interfaceContinue reading “SHCDAS: SaaS Headless CMS Integrations and Extensions”

SHCDAS: Headless Content Delivery

This blog post is part of the SaaS Headless Content Delivery Architectures Series (SHCDAS). Headless CMS vendors do not provide content delivery toolsets. Headless CMS products focus on services shared to all delivery channels, whether custom build processes, Software Development Kits (SDKs) for specific platform technologies, or otherwise. Headless CMS vendors provide integrations with mainstream static siteContinue reading “SHCDAS: Headless Content Delivery”

SHCDAS: CMS Deployment and Page Request Cycles

This blog post is part of the SaaS Headless Content Delivery Architectures Series (SHCDAS). A web server can respond to an HTTPS request with a static resource, such as the contents of a file or database record, or the web server can invoke an application service platform to generate content dynamically. Application service platforms include anything that canContinue reading “SHCDAS: CMS Deployment and Page Request Cycles”

SHCDAS: Static and Dynamic Content Delivery

This blog post is part of the SaaS Headless Content Delivery Architectures Series (SHCDAS). A web server can respond to an HTTPS request with a static resource, such as the contents of a file or database record, or the web server can invoke an application service platform to generate content dynamically. Application service platforms include anything thatContinue reading “SHCDAS: Static and Dynamic Content Delivery”

SHCDAS: Headless CMS, Advantages and Disadvantages

This blog post is part of the SaaS Headless Content Delivery Architectures Series (SHCDAS). The term headless differentiates CMS vendors that include toolsets for content delivery, sometimes called traditional CMS vendors, from those that do not, which are considered headless. Traditional CMS vendors provide toolsets to generate static files, replicate database changes, and so forth, as wellContinue reading “SHCDAS: Headless CMS, Advantages and Disadvantages”

SHCDAS: Content Management and Content Delivery

This blog post is part of the SaaS Headless Content Delivery Architectures Series (SHCDAS). Content Management systems separate content from presentation and logic to allow non-technical CMS users to control content available to content delivery systems such as web sites and to to allow re-use of content between multiple pages on any number of web sitesContinue reading “SHCDAS: Content Management and Content Delivery”

SHCDAS: Web Browsers, Web Servers, and Application Servers

This blog post is part of the SaaS Headless Content Delivery Architectures Series. To oversimplify a bit, consider the Internet as only clients that use web browsers to access servers that host websites. Websites consist of HTML pages that contain external content, CSS styles, JavaScript including data in JSON format, images and other media, andContinue reading “SHCDAS: Web Browsers, Web Servers, and Application Servers”

SHCDAS: SaaS Headless Content Delivery Architectures Blog Post Series Index

The move to headless content management systems (CMS) is part of a necessary paradigm shift towards web applications composed from multiple SaaS providers using MACH architectures (Microservice-implemented, API-first, cloud-native, headless). SaaS and headless provide support agile development environments by allowing composition of applications from services using appropriate technologies and hosting platforms at each layer ofContinue reading “SHCDAS: SaaS Headless Content Delivery Architectures Blog Post Series Index”

Implications and Considerations for Serverless ASP.NET

This blog post describes implications and considerations for running ASP.NET in a “serverless” environment. First, I believe that the term serverless is misleading. Without a server, nothing gets served. Without web server software such as the Apache HTTP Server or Internet Information Services (IIS) sitting on some type of hardware device traditionally called a server,Continue reading “Implications and Considerations for Serverless ASP.NET”

Jamstack and Alternative Architectures for Headless CMS with ASP.NET Core

Last week (18.Jan.2021) I conducted a webinar hosted by my friends at Konabos Consulting about Jamstack and alternative architectures for headless CMS with ASP.NET. I talked about the headless CMS metaphor and terminology and getting webhooks through firewalls before conducting a short technical demonstration of a proof of concept using the Contentstack SaaS headless CMSContinue reading “Jamstack and Alternative Architectures for Headless CMS with ASP.NET Core”

The Headless [CMS] Metaphor

This blog post provides my perspective on the headless CMS (Content Management System) metaphor, although some of this content may apply to any headless system. Different CMS vendors use different terminology and definitions. This is my general summary assuming a website as the default delivery channel. Body: The CMS back-end, where content management users maintainContinue reading “The Headless [CMS] Metaphor”

Resources about Windows Subsystem for Linux (WSL)

This blog post contains a list of links to resources about Windows Subsystem for Linux (WSL). WSL allows running Linux, specifically Bash interactive shells and shell scripts, under Windows. Whenever possible, I use Bash shells and keyboard shortcuts in favor of the Windows user interface. Because they are not specific to headless content management orContinue reading “Resources about Windows Subsystem for Linux (WSL)”

[Hard] Questions for [Headless] [CMS] Vendors

I intend to use this blog post to catalog questions for headless CMS (Content Management System) vendors that I do not consider to be excessively specific to an individual project. Many of these questions may apply to related implementation scenarios. These issues are in no intended order, are not intended to benefit any specific vendor,Continue reading “[Hard] Questions for [Headless] [CMS] Vendors”

Example .NET Core Controller Action for [Headless CMS] Repository

What follows is a draft of a simple controller action that could support any headless CMS using the repository pattern described in this blog. Most of my ASP.NET project is just template from Visual Studio. Update: This is NOT about generic classes; I should not have used the word generic in the original title ofContinue reading “Example .NET Core Controller Action for [Headless CMS] Repository”

Calling All .NET Core Architects and C# Developers…Refactor Unhappy Code for Free!

I am not an architect or a developer, but I wrote more C# code to abstract CMS repositories than I can describe in sufficient detail on this blog, including a pretty comprehensive provider for Contentstack and with the roots of provider implementations for Contentful and Kentico. I have more notes than I can blog atContinue reading “Calling All .NET Core Architects and C# Developers…Refactor Unhappy Code for Free!”

Group Field (and Contenstack Global Field) Models

This blog post explains how you can model Group FIelds in Entry Model classes as Group Model Classes that are just like Block Model Classes for Modular Blocks, but without all the JsonConverters. You can use the same technique to model Contentstack Global Fields, which are basically reusable Field Groups. https://deliverystack.net/2020/07/20/net-core-headless-cms-entry-models-and-entry-model-classes/ I do not meanContinue reading “Group Field (and Contenstack Global Field) Models”

Generic Base Class with JsonConverter for Contentstack Block Model Classes

This is one of those cases where I left a bunch of leather and nails on my desk before bed and woke up to find crumbs on the keyboard and a working prototype (cobbled together, no doubt) that I can barely read, let alone understand, but seems to work. My fingers thank C# generics andContinue reading “Generic Base Class with JsonConverter for Contentstack Block Model Classes”

Entry Model structs for Markup Fields

I use the following two prototype structs in Entry Model Classes (https://deliverystack.net/2020/07/20/net-core-headless-cms-entry-models-and-entry-model-classes/) to represent Field Values from Entries where those values may contain markup or markdown. These classes use HtmlString properties to expose values without the need for method calls such as @Html.Raw() to prevent ASP.NET MVC from encoding HTML that should not be encoded.Continue reading “Entry Model structs for Markup Fields”

Mapping Field Types to .NET Types in Headless CMS

This blog post is my attempt to maintain a list of the Field Types available in various headless CMS and the .NET types that I would try to use to model those fields in Entry Model classes (https://deliverystack.net/2020/07/20/net-core-headless-cms-entry-models-and-entry-model-classes/). This is relevant when defining Entry Model classes (https://deliverystack.net/2020/07/20/net-core-headless-cms-entry-models-and-entry-model-classes/) based on a content model (https://deliverystack.net/2020/07/22/cms-content-modeling-considerations-and-resources/) You canContinue reading “Mapping Field Types to .NET Types in Headless CMS”

Loading…

Something went wrong. Please refresh the page and/or try again.


Follow

Email.