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

Stop doing Agile, Start Thinking Agility

It’s interesting that when our understanding matures, things people said to you years earlier have more meaning and depth.  The title of this blog was something David Anderson said during his Agile and Beyond 2012 keynote.  Of all the interesting things I heard at that conference, that phrase has stuck with me ever since. Stop doing Agile, Start Thinking Agility The reason I have been thinking about this as of late is because of a user group talk I plan on attending in a couple days.  The topic is about Agile and more particularly, Scrum. What I find really interesting as of over… Read More »Stop doing Agile, Start Thinking Agility

Linking to Nancy Routes

I’ve previously blogged about Nancy.Linker, the URI Builder for NancyFX.  However, I wanted to take it a step further and give an actual example of how I handle linking to Nancy routes through my application. Organize by Feature I organize my application by features.   Features are generally commands or queries.  They are either returning data (queries) or actions that represent behaviors (commands). This means that I generally only have one route per feature.  Since I organize by feature, this means that I put the Nancy module with the single route and then all subsequent code (commands or queries, handlers, models) in that… Read More »Linking to Nancy Routes

Hangfire Best Practice: Invoke by ID

In my previous post, I created a few extension methods for Hangfire and MediatR in order to enqueue an IRequest. However, it was not following Hangfire Best Practice. The purpose was to have the IRequest serialized entirely when calling Enqueue(), which would be stored in Hangfires storage. Then when the request would be invoked, Hangfire would deserialize the IRequest and call Mediators Send(). My functioning example worked as expected. However, Hangfire recommends making your job arguments small and simple. Best Practice Method invocation (i.e. a job) is serialized during the background job creation process. Arguments are converted into JSON strings using the TypeConverter… Read More »Hangfire Best Practice: Invoke by ID