Peter Ritchie


IT Platform and Architecture Expert

Environment Variables with C# Conditional Compilation Symbols

Have you ever thought, it would be nice to have a symbol like PETERRIT that is unique to your domain account that you could use for code that YOU maybe working on but don't want to break the build?


RESTful Versioning

Versioning is not new. Versioning seems to be one of those things that people find hard to do or difficult to fully understand, especially with services and APIs. RESTful versioning seems to be in the realm of Tabs v Spaces, but I want to detail my related observations (mostly of other's writings, but with some added color).


Service-Oriented is Declarative, not Imperative

In this post, I'd like to address a challenge that I've witnessed in the understanding of service-oriented and implementations of it.
The issue I've seen in the design approach of services and service-oriented systems. Programmers and engineers can easily view each service as a function. Services are perceived as being composed together within a set of functions commanding specific state changes to achieve one of a smaller set of final states.
This is really describing the totality of how a system does what it does. At some point, the how must exist but in order to have a system that isn't one-off and can evolve by responding to change, we need the how to be encapsulated from one another.
Composition of a system in this way is an imperative model. Ideal service-orientation works within a declarative model.