Contoso University Vertical Slice App Updated to ASP.NET Core 3.0

To keep a running example of "how we do web apps", I've updated my Contoso University example app to ASP.NET Core 3.0. This sample app is just a re-jiggering of Microsoft's Contoso University Razor Pages sample app . It shows how we (Headspring) typically use: CQRS w/ MediatR Razor Pages models w/ AutoMapper Validation w/ Fluent Validation Conventional HTML w/ HtmlTags Database migrations w/ RoundhousE Integration testing w/ xUnit [Read More]

Document-Level Optimistic Concurrency in MongoDB

I've had a number of projects now that have used MongoDB, and each time, I've needed to dig deep into the transaction support. But in addition to transaction support, I needed to understand the concurrency and locking models of Mongo. Unlike many other NoSQL databases, Mongo has locks at the global, database, or collection level, but not at the document level (or row-level, like SQL). If two processes read a [Read More]

Building Messaging Endpoints in Azure: Functions

Posts in this series: Evaluating the Landscape A Generic Host Azure WebJobs Azure Container Instances Azure Functions In our last post, we looked at deploying message endpoints in containers, eventually out to Azure Container Instances. While fairly straightforward, this approach is fairly close to Infrastructure-as-a-Service. I can scale, but I can't auto-scale, and even if I used Kubernetes, I can't scale based on exceeding my lead time SLA (time from [Read More]

Building Messaging Endpoints in Azure: Container Instances

Posts in this series: Evaluating the Landscape A Generic Host Azure WebJobs Azure Container Instances Azure Functions In the last post, we looked at Azure WebJobs as a means of deploying messaging endpoints. And while that may work for smaller loads and simpler systems, as the number of message endpoints grows, dealing with a "sidecar" in a WebJob starts to become untenable. Once we graduate from WebJobs, what's next? What [Read More]

Building Messaging Endpoints in Azure: WebJobs

Posts in this series: Evaluating the Landscape A Generic Host Azure WebJobs Azure Container Instances Azure Functions In the last post, I looked at creating a generic host endpoint that many of the deployed versions in Azure can share. By using a hosted service, we can then host NServiceBus in just about anything that can work with the .NET Core generic host. The differences then come to hosting and scaling [Read More]