Property metadata offer an easy way to integrate your custom entites with modules like Views or Rules, it also helps you use the handy entity_metadata_wrapper() function if you are manipulating entites from code.
Find out how to define permissions and access callbacks to create/view/edit/delete your custom entites and entity types.
Entity API defines all the menu items needed for the CRUD operations of your custom entites. In this post I'll take a look at how this is implemented and what permissions are defined by Entity API for each menu item.
This series of posts is not intended to be a step-by-step introduction to creating custom Drupal entites from code. If you are after that, there are some great resources to get you started: