Skip to content

Sponsor: Do you build complex software systems? See how NServiceBus makes it easier to design, build, and manage software systems that use message queues to achieve loose coupling. Get started for free.

Learn more about Software Architecture & Design.
Join thousands of developers getting weekly updates to increase your understanding of software architecture and design concepts.


Follow @CodeOpinion

.NET

Self Descriptive HTTP API in ASP.NET Core: Object as Resource

In my opening post I went over some of the issues I encountered when initially developing an HTTP API.  In this post I’m going to cover some of those pain points and what I think the solution was. Objects The first pain point revolves around the idea of your HTTP API returning objects.  Meaning you serialize an object to JSON and return to the client. This seems pretty typical.   Almost every example you find in regards to Web API describes this behavior. Here’s an example of what this looks like: View the code on Gist. We’re doing nothing more than… Read More »Self Descriptive HTTP API in ASP.NET Core: Object as Resource

Paging Azure Cosmos DB Query Results from .NET

I received a comment on my Azure Cosmos DB Transactions from .NET post from Onur: The thing I don’t like about Azure Cosmos DB is that it doesn’t support aggregations nor paging. This was actually some pretty good timing of this comment as I just ran into a situation of a side project that required to page through  a result set. Skip & Take It does not appear that Azure Cosmos DB supports (yet) SKIP and TAKE, which you would expect to use in order to do paging.  Because of this, you can’t implement all the same functionality you might expect. But there… Read More »Paging Azure Cosmos DB Query Results from .NET

Azure Cosmos DB Transactions from .NET

I received a comment to my Optimistic Concurrency in Azure Cosmos DB  a couple weeks ago from Jerry Goyal: Can we somehow handle the concurrency among multiple documents (transactions)? Since ETags are defined on each document, you must build your concurrency around them.  However, this made me start to wonder how to update multiple documents at the same time using their respective ETags.  Meaning you would want both documents to update together only if both of their ETags were current.  If one was valid and the other was out of date, none of the documents would update. Transactions It’s pretty obvious… Read More »Azure Cosmos DB Transactions from .NET