Utah .NET User Group Meeting

Tonight at 6:00 PM at Neumont University (room 300) in Sandy, Utah--the same place where the Utah Code Camp is held. I'll be giving a presentation on my EventStore project and going into a little bit of detail regarding the advantages of event sourcing--specifically idempotent messaging and rebuilding view models. If you're in the area, you're welcome to attend. If not, you can watch the recording of the European Virtual ALT. »

Author image Jonathan Oliver

Crime Scene Event Sourcing

To use event sourcing or not is an interesting question and one that should not be taken lightly. The two main camps in the debate contend on several key points among which include business necessity, architectural gold plating, educational overhead, and tool support. For a moment, let's consider the argument to use or not use event sourcing in a different light. Let's take a "real-world" example and see how the presence of event sourcing could fundamentally change the investigation of a crime scene. »

Author image Jonathan Oliver

EventStore v3.0 Release

It's been a little while in coming, but nonetheless, I'm pleased to release the latest version of the CQRS EventStore As always, you can find the source code on GitHub as well as the official pre-built binaries. You can also find the EventStore package on the NuGet Gallery. NuGet is the recommended way to install. New in the release (since the v3.0 beta release) Fixes in the SQL implementation that could cause concurrency exceptions when running multiple instances of the EventStore against a single backend storage. »

Author image Jonathan Oliver

EventStore EVAN Presentation

Just in case you missed the announcement, I will be presenting today at 7:00 PM UTC on the EventStore project for the Europe Virtual ALT.NET conference. The event will be recorded and available for later viewing if you can't make it. »

Author image Jonathan Oliver

CQRS EventStore v3.0

The official release for EventStore 3.0 is just around the corner. Following SemVer semantics, this is now version 3.0 instead of 2.1 or whatever. his post is to highlight the differences between 2.0 and 3.0. First and foremost, the packages are available for download here in both .NET 3.5 and .NET 4.0 flavors: https://github.com/joliver/EventStore/downloads (contains all binaries and plugins for various persistence and serialization methods) On NuGet, the following packages have been pushed. »

Author image Jonathan Oliver

My New Best Friend: git merge --no-ff

I've been using Git now for several years. Over a year ago I bumped into a great article about A Successful Git Branching Model. It's a great article in its own right and deserves your attention if you're using Git. If you're not using Git, you'd better be using some form of distributed version control. If you're not…well…I digress. One of the things about Git that I never worried about too much was leveraging branches for various work items. »

Author image Jonathan Oliver

Browser-side View Model Templates

Years ago I considered Javascript to be more or less of a joke as a language. At the time browser implementations made creating a consistent implementation both dangerous and time consuming. Time passed and several very significant things happened: FireFox 1.0 and the modern browser. Google Maps jQuery Web-scale loads Because of these developments, much of my recent work has been able to leverage Javascript more fully thus making the browser an integral part of a fully distributed system. »

Author image Jonathan Oliver

Transcending the POST, Validate, Redirect Pattern

Jimmy Bogard's recent blog post entitled Cleaning up POSTs in ASP.NET MVC was a great read. But I wanted to share another method that I have used with great success in recent months. One of the primary issues that Jimmy is trying to solve in his blog post is that of DRYing up duplicate code by creating application-level infrastructure code that can easily be used and varied within certain boundaries. »

Author image Jonathan Oliver

NServiceBus and Guaranteed Delivery

As a committer on NServiceBus, I'm typically running the code from the master branch head in production. Crazy, huh? I commit made against the master branch not too long ago affected my application code in its ability to properly handle a message. But it didn't cause me any long-term grief. Why? The answer is simple. Guaranteed delivery. The messages couldn't be processed so they were forwarded to an error queue. One in the error queue, we were made aware of the problem and were able to fix it in short order. »

Author image Jonathan Oliver