All articles

  1. Development & automation

    From Design Patterns to Domain-Driven Design and Modern Architecture

    Domain-driven design, ports and adapters, the onion and the clean architecture share one rule: the business rules refer to nothing else. The pricing example gains a domain model and a tested boundary, and needs 22 types where one class did.

    ·20 min read

    Keep reading →
  2. Development & automation

    Do We Still Need Gang of Four Patterns in Modern C# and .NET?

    All 23 patterns set against C# 14 and .NET 10: eleven have a shorter form in the example, built from a language or platform feature, and twelve do not. The problems remain in every case, and each modern form has a failure of its own.

    ·25 min read

    Keep reading →
  3. Governance & security

    Automatic external forwarding in Exchange Online: three controls, and one value that tells you nothing

    Whether mail can leave a Microsoft 365 organisation by automatic forwarding is decided by three separate controls, and the default value of the first one means On in some tenants and Off in others. How to read each control with PowerShell, how to find the mailboxes that forward today, and how to block forwarding with named exceptions.

    ·7 min read

    Keep reading →
  4. Azure & Cloud

    Azure Functions timer triggers that run late, twice or not at all, and how to prove a run

    A timer-triggered function has no caller to notice when it does not run. This article sets out what Microsoft documents about schedules, time zones, missed occurrences and retries, and shows how to prove each run, and each absence, in Application Insights.

    ·8 min read

    Keep reading →
  5. Governance & security

    Giving an application access to specific SharePoint sites with Sites.Selected

    An application needs one SharePoint site and the request on the table is Sites.Read.All or Sites.FullControl.All for the whole tenant. This article sets out what Sites.Selected grants on its own, who can create the per-site grant, the Microsoft Graph and PnP PowerShell calls that create, list and remove it, and where the documentation stops.

    ·8 min read

    Keep reading →
  6. Development & automation

    Reading a SharePoint list with more than 5,000 items without hitting the list view threshold

    A script or view that worked for years fails once a list passes 5,000 items, even when the filter matches a handful of rows. This article establishes what the list view threshold measures, where it can and cannot be changed, and how to page through a large list with PnP PowerShell, REST and Microsoft Graph.

    ·9 min read

    Keep reading →

Categories

Send us a message

or write to hello@ph7x.com