Blog

All posts

PLATFORM 25 Sept 2026
21 min read

I wanted an app from one sentence. What I got was a specification.

Microsoft's app-builder is generally available - but in Europe only through the command line. I built a test-equipment app with it: 48 steps, five minutes thirty-six. The instructive part came before that: the check would not let me build while the requirement still had gaps. That gate is programmed in, not merely described in the process.

PLATFORM 22 Sept 2026
11 min read

The release waves are ending. Where will the news be from November?

The Release Planner is switched off on 15 November. I pulled all 1,768 items of the new roadmap and counted: Power Apps and Dataverse do not appear at all. And the channel that does carry the changes requires an admin role.

PLATFORM 18 Sept 2026
25 min read

Does Power Fx replace the C# plug-in? A measurement across 1,000 rows

Dataverse Functions replace custom APIs, automated low-code plug-ins replace plug-ins. I built both, put the C# equivalent next to each, and measured: does a rule know the old field value? What does it cost? And what simply does not work? One finding contradicts the official documentation, another rules out the most common custom API scenario.

AI 16 Sept 2026
19 min read

tgrep doesn't save tokens. Three lines in AGENTS.md do.

"Saves tokens" is printed on every second tool these days. Microsoft's tgrep is a good example: grep with a pre-built index, up to 52× faster than ripgrep. We installed it and measured — on our own repo, on vscode and on the Linux kernel, plus 24 agent runs on the same task. Two results, both unexpected: the index saves not a single token. And for our own repos we end up not taking it. What actually saves costs nothing and fits in three lines — with the full measurement log, a look inside our stack, and two operational traps we walked into ourselves.

AI 13 Sept 2026
16 min read

Your Flow Is the Tool: Why Agent Tooling Belongs in the Power Platform, Not in Your Repo

The reflex says: deterministic steps go into my repo as a local skill. But the logic has been sitting in your environment all along — secured, tested, in production. The direction flips: the flow no longer calls the AI, the agent calls the flow. With the path that actually works today, a run that returns a deterministic result instead of a well-guessed answer — and a straight answer on which "Power Automate MCP server" exists and which one comes from a third party.

AI 06 Sept 2026
7 min read

Grounding Copilot agents properly

An agent on a feedback table always answers convincingly — even when half the basis is missing. Where grounding actually happens: not in the system prompt, but in the columns, in the allowed vocabulary and in the permissions. Checked against a real Dataverse table with prompt columns.

AI 05 Sept 2026
17 min read

UI components in chat: when the agent sends a table you can actually use

Agents answer with text — and every reaction to it starts with switching applications. MCP Apps change that: a tool delivers the data, a ui:// resource delivers the interface, and you click right inside the conversation. With a working example server, real payloads, the Power Apps route — and the honest status: available in VS Code and Microsoft 365 Copilot, preview in Power Apps, only announced for Copilot Studio.

APPS 27 Aug 2026
11 min read

Canvas apps offline with Dataverse: the new online mode and the FetchXML editor in the offline profile

A technician in a dead zone, but the app has to keep working — and the moment there's signal again, it should read live from Dataverse. What canvas offline actually does since it went GA in 2025, how the new online mode (Preview) works, and why the FetchXML editor in the offline profile is the difference-maker on large tables. With a concrete field-service scenario, the hard limits, and the uncomfortable boundaries.

PLATFORM 27 Aug 2026
9 min read

Entra Agent ID: Every Agent Now Has an Identity — but Not a Permission

Since May 2026, every new Copilot Studio agent automatically gets its own Entra identity — no opt-out. The obvious conclusion: "So now I can control per agent who reaches Jira or SharePoint." Only half true. The identity brings visibility and governance surface, but it is not a new permission system. What actually authorizes — and why Conditional Access only bites in Teams today.

AI 27 Aug 2026
12 min read

Prompt Columns in Dataverse: AI Right Inside the Table — No Code

Since late July 2026, the Prompt data type in Dataverse is GA: a column that runs an AI instruction and stores the result persistently — no flow, no custom code. Sounds like a formula with AI. It is something else: asynchronous, credit-driven, and with no backfill. What actually happens, when it runs (and when it does not) — plus a build-along example: automatically categorize customer feedback and score sentiment.

AI 23 Aug 2026
11 min read

A memory that stays: OpenViking as a personal RAG — from any device

Every AI chat starts from zero, and your context dies with the session. What if your memory were its own layer — curated, searchable, and reachable from every client: Claude Code in the terminal, claude.ai in the browser, the Claude app on the go? That's OpenViking: a personal RAG on a small VM of your own. This article shows the infrastructure, the tool itself, and why an individual memory pays off — high-level, with infra diagrams and three real device demos.

AI 22 Aug 2026
10 min read

Share skills and agents across your team — with your own Claude Code marketplace

Everyone on the team builds their own Claude Code skills and subagents — and nobody has the others'. Copy-pasting via Slack isn't distribution. The clean way is a plugin marketplace: two small JSON files in a git repo, and via a checked-in .claude/settings.json, skills, agents, slash commands, hooks and MCP servers are automatically known and active for everyone. Hands-on with real JSON and official sources.

PLATFORM 16 Aug 2026
10 min read

Works in WinSCP, only a 405 in the flow: the two SFTP connectors in Power Automate

The SFTP server answers cleanly in WinSCP with the same credentials — in the cloud flow all you get is a 405 or "Bad Gateway". Why there are two almost identically named SFTP connectors (one of them deprecated), what a 405 really means for SFTP, why SSH.NET supports fewer algorithms than WinSCP — plus a systematic debugging checklist. With official Learn sources.

APPS 11 Aug 2026
10 min read

The old grid is deprecated — what the Power Apps grid control does better

Since March 2026 the classic Editable Grid and the Power Apps Read-Only Grid in model-driven apps are deprecated. The successor is the Power Apps grid control — one control for viewing and editing, with infinite scroll, nested grids, grouping and PCF extensibility. What the difference is (including the naming trap), why the new grid isn't editable by default, how to set it up — and the honest limits. With official Learn sources.

PLATFORM 28 Jul 2026
15 min read

"Who gets to push this to prod?" — Git-first with Dataverse environments in a team

Git-first in a team isn't "everyone commits". It needs an order for setup, a branch strategy and clear roles for the prod release. How to set up Managed Environment, the Azure DevOps repo and the Git connection in the right order, why Git belongs only on dev environments, which branch strategy Microsoft recommends — and who makes the pull requests and who ultimately approves PROD (with real approvals via pipelines).

PLATFORM 25 Jul 2026
9 min read

Git Integration in Power Platform: Your solution as readable code in the repo

Microsoft binds Dataverse environments directly to a Git repo — solutions land as readable YAML under version control, with history, diff and rollback. What the Git integration (GA since April 2025) really does, how it fits into pipelines — and the uncomfortable limits the release-wave marketing glosses over: Azure DevOps only, unmanaged only, Managed Environments only, developer environments only.

PLATFORM 23 Jul 2026
7 min read

Merging solution patches in Dataverse: Merge, Clone and the honest ALM path

Got several patches on a solution and want to consolidate them cleanly into a new version? We show what a patch technically is, how Dataverse merges layers, how you roll patches up via Clone — and why Microsoft itself tends to advise against exactly this in teams.

SECURITY 21 Jul 2026
6 min read

Client Secret, Certificate, or Federated Login? The Beginner's Guide to Connections in the Microsoft Cloud

Interactive or service user, Secret or Certificate — and what exactly is a Federated Login? We sort out the login mechanisms in Azure and Microsoft Entra ID, with a decision matrix and sequence diagrams, understandable for beginners.

AI 20 Jul 2026
8 min read

Power Automate without portal clicking: build, test and fix flows autonomously with Claude

Microsoft has released an official plugin that lets Claude Code or GitHub Copilot create, edit, run and diagnose Power Automate cloud flows — straight from the terminal, no click-through portal. We put it through its paces on a real trial environment: setup, environment routing, and how an AI agent builds a flow with a Condition and repairs a broken flow.

MONITOR 19 Jul 2026
7 min read

Azure App Registration Monitor: Client Secrets in view before Prod breaks

Client Secrets on Entra App Registrations expire silently — without a tenant-wide overview you only notice when Prod breaks. AARM reads out all secrets in your tenant via Microsoft Graph, scores the remaining lifetime and notifies you in time — as a desktop app (Local/Cloud) or headless via CLI.

PLATFORM 17 Jul 2026
11 min read

The solution deployed cleanly — and the flow is still off. Connection References from Dev to Prod

Why a solution imports cleanly and the flow still won't run. What connections and connection references really are, how they're bound from Dev through UAT to Prod, which naming convention holds — and why you never hang them on your personal account in a team.

PLATFORM 15 Jul 2026
9 min read

Which Trial for Which Mailbox? Getting Your Bearings in Dynamics 365

The decisive question isn't *which* trial – it's *which mailbox* you sign in with. A field guide through product trials, MDX, the Developer Program and the Power Apps Developer Plan – using Sales Professional as the example.

MONITOR 12 Jul 2026
7 min read

aarm: Find Expiring Entra App Secrets — from the CLI, with No Azure Infrastructure

Client secrets on Entra App Registrations expire silently — no warning, no tenant-wide view. aarm is a lean CLI that lists every secret in your tenant, scores the risk and emits JSON for automation. No desktop app, no Azure infrastructure required.

APPS 09 Jul 2026
12 min read

Dataverse Custom API Toolkit: Build Dataverse Custom APIs Right in VS Code

Hand-editing Custom API metadata in the Maker Portal is error-prone — one typo in the uniqueName, one forgotten response property, and the call only breaks at runtime. The Dataverse Custom API Toolkit is a VS Code extension on top of the dataverse-custom-api CLI: browse Custom APIs in a tree, edit parameters in a form, diff against Dataverse, and sync with a dry run — versioned as JSON in your workspace.

APPS 08 Jul 2026
11 min read

LookupImportPlus for XrmToolBox: import Dataverse lookups without guessing

LookupImportPlus as an XrmToolBox plugin: auditable Excel import into Dataverse. How to build a configuration step by step and understand the resolution methods GUID → business key → search field — resolve deterministically or escalate, never guess.

APPS 05 Jul 2026
12 min read

LookupImportPlus: No more guessing on Dataverse lookup imports

Dataverse's standard Excel import guesses on duplicate names — silently linking the wrong record. LookupImportPlus resolves lookups deterministically (GUID, business key, or search field) or escalates to you. With a real import run walking every matching method, screen by screen.

APPS 14 Jun 2026
8 min read

What is a Power App, really?

"We'll just build that as a Power App." The sentence comes easily — and the build form usually gets picked on looks rather than on where data, logic and permissions should live. What actually separates canvas from model-driven, the first limit you will hit (and where it sits in the product), and a decision path that still holds two years later.