Azure Page Blobs vs. Liskov Substitution Principle
“Liskov Substitution Principle” or LSP is one of the basic principles for proper object orientation. LSP definition is: “Let q(x) be a property provable about objects x of type T. Then q(y) should be true for objects y of type S where S is a subtype of T.” In plain english that means that if CloudPageBlob inherits from CloudBlob and...
Read MoreAzure open day presentations
Yesterday Alon Fliess and myself gave an open day @ Microsoft Israel on Azure cloud. Alon opened with an introduction to Azure Cloud and the bits and pieces that make it. The next presentation went into details on Azure storage. I had two presentations as well. In the first, I talked about Architectural aspects of moving to Azure (how does cloud in genreal/azure affect the Fallacies of...
Read MoreMixins in .NET
Mixins are a good way to weave functionality into a class. Wikipedia defines Mixin as follows “In object-oriented programming languages, a mixin is a class that provides a certain functionality to be inherited by a subclass, while not meant for instantiation (the generation of objects of that class). Inheriting from a mixin is not a form of specialization but is rather a means of collecting...
Read MoreCloudoscope – a cost profiler for the cloud
I am very happy to announce that I am joining CodeValue. CodeValue, as our site says, is the home for software experts. Indeed, the company is built of a group of consultants and we provide mentoring and consulting in the areas of architecture, software development and technology. While I am going to be doing some consulting, the main reason for me to join (and my main role – as VP product...
Read MoreHaving fun with LINQ expressions
I don’t know how many of you need to analyze LINQ queries – but since this took me a few hours to get right I thought I’d save you some of the trouble in case you do. I am working on this pet project of mine (I’ll blog about that soon in a separate post) where I have the need to take LINQ queries and among other things verify that that the sources are from a specific...
Read MoreEvolving Architectures – Part VI – Simplification
[Edited: added explanation of the difference between upfront design with iterative implementation and Simplification] The previous installment in the series talked about leaps as a technique to change the architecture. Leaps are more of a revolution than an evolution and even though they are sometimes needed evolving an architecture is the more interesting topic. This and the next post deal...
Read More


Profiles & RSS