The Entity API already does a great job allowing us to deal with entities from code with ease. Dealing with Entity types and bundles is not the same. Here is where ECK comes in to fill the gap. Also ECK introduces a new idea: property behaviors. Property behaviors allows us to develop functionality for an entity's property in a centralized and reusable way.

ECK fully supports Features, so even though entity types, properties, and bundles can all easily be created from code, they could as easily (if not easier) also be created from the UI and be exported to code by using the Features module.