Azure Page Blobs vs. Liskov Substitution Principle

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 More

Azure open day presentations

Azure 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 More

Mixins in .NET

Mixins 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 More

Cloudoscope – a cost profiler for the cloud

Cloudoscope – 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 More

Having fun with LINQ expressions

Having 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 More

Evolving Architectures – Part VI – Simplification

Evolving 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