Differences

This shows you the differences between two versions of the page.

Link to this comparison view

it:ad:patterns:vendors_suck_strategy [2019/03/24 12:02] (current)
Line 1: Line 1:
 +# IT:​AD:​Patterns:​Vendors Suck Strategy #
  
 +
 +
 +<callout type="​Navigation"​ class="​small">​
 +* [[../​|(UP)]]
 +* See also:
 +    * [[IT/​AD/​Patterns/​Egg Yolk Strategy/]]
 +    * [[IT/​AD/​Patterns/​Dependency Wrapping Strategy/]]
 +
 +
 +</​callout>​
 +
 +
 +<panel title="​Summary">​
 +
 +Vendors - every single last one of them - suck. 
 +
 +They'​re a necessity of course, as they add value to your apps by making available the results of millions of pre-written lines of solution, but at the same time they end up sucking the blood of change/​growth/​future out of your apps.
 +
 +
 +</​panel>​
 +
 +
 +## Why are they so bad ##
 +
 +This is because of many factors.
 +
 +Some dependencies die on the vine. You referenced EntLib3 all throughout your app, and have no idea how to port it to EntLib5 easily...so you don't touch the app, and the app gets stale.
 +
 +Some dependencies simply get outperformed. You wrote it for IE6...Bet you feel stupid now...
 +
 +Some dependencies are deadly: that ActiveX sounded good in 2003...now it's tying you to IE6...which is tying you to XP...which is really starting to cost you...
 +
 +Some are no longer the right choice economically. How are you going to cheaply port all that inline Oracle sql?
 +
 +Some dependencies become a security risk. Bet you just love that Flash based app about now...or that Java plugin...
 +
 +etc.
 +
 +
 +### What can you do about it? ###
 +
 +Reference 3rd party assemblies from as few places in your app as possible.
 +
 +That's exactly the function that [[IT/​AD/​Patterns/​DDD/​Components/​App.Infrastructure/​]] addresses within applications built according to the [[IT/​AD/​Patterns/​DDD/​]] strategy.
 +
 +Another strategy that is used is the [[IT/​AD/​Patterns/​EggYolk Strategy/​]].