diff --git a/core/includes/entity.inc b/core/includes/entity.inc
index 07f0fce..9dba04b 100644
--- a/core/includes/entity.inc
+++ b/core/includes/entity.inc
@@ -52,8 +52,8 @@ function entity_info_cache_clear() {
 function entity_render_cache_clear() {
   $entity_manager = Drupal::entityManager();
   foreach ($entity_manager->getDefinitions() as $entity_type => $info) {
-    if ($entity_manager->hasController($entity_type, 'render')) {
-      $entity_manager->getRenderController($entity_type)->resetCache();
+    if ($entity_manager->hasController($entity_type, 'view_builder')) {
+      $entity_manager->getViewBuilder($entity_type)->resetCache();
     }
   }
 }
@@ -435,7 +435,7 @@ function entity_page_label(EntityInterface $entity, $langcode = NULL) {
  * @return \Drupal\Core\Entity\EntityAccessControllerInterface
  *   An entity access controller instance.
  *
- * @deprecated Use \Drupal\Core\Entity\EntityManager::getRenderController().
+ * @deprecated Use \Drupal\Core\Entity\EntityManager::getAccessController().
  */
 function entity_access_controller($entity_type) {
   return \Drupal::entityManager()
@@ -552,22 +552,6 @@ function entity_list_controller($entity_type) {
 }
 
 /**
- * Returns an entity render controller for a given entity type.
- *
- * @param string $entity_type
- *   The type of the entity.
- *
- * @return \Drupal\Core\Entity\EntityRenderControllerInterface
- *   An entity render controller.
- *
- * @deprecated Use \Drupal\Core\Entity\EntityManager::getFormController().
- */
-function entity_render_controller($entity_type) {
-  return \Drupal::entityManager()
-    ->getRenderController($entity_type);
-}
-
-/**
  * Returns the render array for an entity.
  *
  * @param \Drupal\Core\Entity\EntityInterface $entity
@@ -585,7 +569,7 @@ function entity_render_controller($entity_type) {
  *   A render array for the entity.
  */
 function entity_view(EntityInterface $entity, $view_mode, $langcode = NULL, $reset = FALSE) {
-  $render_controller = \Drupal::entityManager()->getRenderController($entity->entityType());
+  $render_controller = \Drupal::entityManager()->getViewBuilder($entity->entityType());
   if ($reset) {
     $render_controller->resetCache(array($entity->id()));
   }
@@ -611,7 +595,7 @@ function entity_view(EntityInterface $entity, $view_mode, $langcode = NULL, $res
  *   entities array passed in $entities.
  */
 function entity_view_multiple(array $entities, $view_mode, $langcode = NULL, $reset = FALSE) {
-  $render_controller = \Drupal::entityManager()->getRenderController(reset($entities)->entityType());
+  $render_controller = \Drupal::entityManager()->getViewBuilder(reset($entities)->entityType());
   if ($reset) {
     $render_controller->resetCache(array_keys($entities));
   }
diff --git a/core/lib/Drupal/Core/Entity/Annotation/EntityType.php b/core/lib/Drupal/Core/Entity/Annotation/EntityType.php
index e0580e2..40c1447 100644
--- a/core/lib/Drupal/Core/Entity/Annotation/EntityType.php
+++ b/core/lib/Drupal/Core/Entity/Annotation/EntityType.php
@@ -57,7 +57,7 @@ class EntityType extends Plugin {
    * - list: The name of the class that provides listings of the entities. The
    *   class must implement \Drupal\Core\Entity\EntityListControllerInterface.
    * - render: The name of the class that is used to render the entities. The
-   *   class must implement \Drupal\Core\Entity\EntityRenderControllerInterface.
+   *   class must implement \Drupal\Core\Entity\EntityViewBuilderInterface.
    * - access: The name of the class that is used for access checks. The class
    *   must implement \Drupal\Core\Entity\EntityAccessControllerInterface.
    *   Defaults to \Drupal\Core\Entity\EntityAccessController.
diff --git a/core/lib/Drupal/Core/Entity/Controller/EntityViewController.php b/core/lib/Drupal/Core/Entity/Controller/EntityViewController.php
index ab0f099..f80eb51 100644
--- a/core/lib/Drupal/Core/Entity/Controller/EntityViewController.php
+++ b/core/lib/Drupal/Core/Entity/Controller/EntityViewController.php
@@ -62,7 +62,7 @@ public static function create(ContainerInterface $container) {
    */
   public function view(EntityInterface $_entity, $view_mode = 'full', $langcode = NULL) {
     return $this->entityManager
-      ->getRenderController($_entity->entityType())
+      ->getViewBuilder($_entity->entityType())
       ->view($_entity, $view_mode, $langcode);
   }
 
diff --git a/core/lib/Drupal/Core/Entity/Entity.php b/core/lib/Drupal/Core/Entity/Entity.php
index 23701f4..e842208 100644
--- a/core/lib/Drupal/Core/Entity/Entity.php
+++ b/core/lib/Drupal/Core/Entity/Entity.php
@@ -364,8 +364,8 @@ public function changed() {
     }
 
     foreach ($referenced_entity_ids as $entity_type => $entity_ids) {
-      if (\Drupal::entityManager()->hasController($entity_type, 'render')) {
-        \Drupal::entityManager()->getRenderController($entity_type)->resetCache(array_keys($entity_ids));
+      if (\Drupal::entityManager()->hasController($entity_type, 'view_builder')) {
+        \Drupal::entityManager()->getViewBuilder($entity_type)->resetCache(array_keys($entity_ids));
       }
     }
   }
diff --git a/core/lib/Drupal/Core/Entity/EntityManager.php b/core/lib/Drupal/Core/Entity/EntityManager.php
index bdf5f49..9417884 100644
--- a/core/lib/Drupal/Core/Entity/EntityManager.php
+++ b/core/lib/Drupal/Core/Entity/EntityManager.php
@@ -307,16 +307,16 @@ public function getFormController($entity_type, $operation) {
   }
 
   /**
-   * Creates a new render controller instance.
+   * Creates a new view builder instance.
    *
    * @param string $entity_type
-   *   The entity type for this render controller.
+   *   The entity type for this view builder.
    *
-   * @return \Drupal\Core\Entity\EntityRenderControllerInterface.
-   *   A render controller instance.
+   * @return \Drupal\Core\Entity\EntityViewBuilderInterface.
+   *   A view builder instance.
    */
-  public function getRenderController($entity_type) {
-    return $this->getController($entity_type, 'render');
+  public function getViewBuilder($entity_type) {
+    return $this->getController($entity_type, 'view_builder');
   }
 
   /**
diff --git a/core/lib/Drupal/Core/Entity/EntityRenderController.php b/core/lib/Drupal/Core/Entity/EntityViewBuilder.php
similarity index 95%
rename from core/lib/Drupal/Core/Entity/EntityRenderController.php
rename to core/lib/Drupal/Core/Entity/EntityViewBuilder.php
index 9d68684..b79ca59 100644
--- a/core/lib/Drupal/Core/Entity/EntityRenderController.php
+++ b/core/lib/Drupal/Core/Entity/EntityViewBuilder.php
@@ -2,7 +2,7 @@
 
 /**
  * @file
- * Contains \Drupal\Core\Entity\EntityRenderController.
+ * Contains \Drupal\Core\Entity\EntityViewBuilder.
  */
 
 namespace Drupal\Core\Entity;
@@ -13,7 +13,7 @@
 /**
  * Base class for entity view controllers.
  */
-class EntityRenderController implements EntityRenderControllerInterface {
+class EntityViewBuilder implements EntityViewBuilderInterface {
 
   /**
    * The type of entities for which this controller is instantiated.
@@ -56,7 +56,7 @@ public function __construct($entity_type) {
   }
 
   /**
-   * Implements \Drupal\Core\Entity\EntityRenderControllerInterface::buildContent().
+   * {@inheritdoc}
    */
   public function buildContent(array $entities, array $displays, $view_mode, $langcode = NULL) {
     field_attach_prepare_view($this->entityType, $entities, $displays, $langcode);
@@ -148,7 +148,7 @@ protected function getBuildDefaults(EntityInterface $entity, $view_mode, $langco
   protected function alterBuild(array &$build, EntityInterface $entity, EntityDisplay $display, $view_mode, $langcode = NULL) { }
 
   /**
-   * Implements \Drupal\Core\Entity\EntityRenderControllerInterface::view().
+   * {@inheritdoc}
    */
   public function view(EntityInterface $entity, $view_mode = 'full', $langcode = NULL) {
     $buildList = $this->viewMultiple(array($entity), $view_mode, $langcode);
@@ -156,7 +156,7 @@ public function view(EntityInterface $entity, $view_mode = 'full', $langcode = N
   }
 
   /**
-   * Implements \Drupal\Core\Entity\EntityRenderControllerInterface::viewMultiple().
+   * {@inheritdoc}
    */
   public function viewMultiple(array $entities = array(), $view_mode = 'full', $langcode = NULL) {
     if (!isset($langcode)) {
diff --git a/core/lib/Drupal/Core/Entity/EntityRenderControllerInterface.php b/core/lib/Drupal/Core/Entity/EntityViewBuilderInterface.php
similarity index 96%
rename from core/lib/Drupal/Core/Entity/EntityRenderControllerInterface.php
rename to core/lib/Drupal/Core/Entity/EntityViewBuilderInterface.php
index a112fc2..94fe045 100644
--- a/core/lib/Drupal/Core/Entity/EntityRenderControllerInterface.php
+++ b/core/lib/Drupal/Core/Entity/EntityViewBuilderInterface.php
@@ -2,7 +2,7 @@
 
 /**
  * @file
- * Contains \Drupal\Core\Entity\EntityRenderControllerInterface.
+ * Contains \Drupal\Core\Entity\EntityViewBuilderInterface.
  */
 
 namespace Drupal\Core\Entity;
@@ -10,7 +10,7 @@
 /**
  * Defines a common interface for entity view controller classes.
  */
-interface EntityRenderControllerInterface {
+interface EntityViewBuilderInterface {
 
   /**
    * Build the structured $content property on the entity.
diff --git a/core/modules/aggregator/lib/Drupal/aggregator/Controller/AggregatorController.php b/core/modules/aggregator/lib/Drupal/aggregator/Controller/AggregatorController.php
index bfbf5b0..7b57afb 100644
--- a/core/modules/aggregator/lib/Drupal/aggregator/Controller/AggregatorController.php
+++ b/core/modules/aggregator/lib/Drupal/aggregator/Controller/AggregatorController.php
@@ -85,7 +85,7 @@ public function feedAdd() {
    */
   public function viewFeed(FeedInterface $aggregator_feed) {
     $entity_manager = $this->entityManager();
-    $feed_source = $entity_manager->getRenderController('aggregator_feed')
+    $feed_source = $entity_manager->getViewBuilder('aggregator_feed')
       ->view($aggregator_feed, 'default');
     // Load aggregator feed item for the particular feed id.
     $items = $entity_manager->getStorageController('aggregator_item')->loadByFeed($aggregator_feed->id());
@@ -131,7 +131,7 @@ protected function buildPageList(array $items, $feed_source = '') {
     );
     $build['feed_source'] = is_array($feed_source) ? $feed_source : array('#markup' => $feed_source);
     if ($items) {
-      $build['items'] = $this->entityManager()->getRenderController('aggregator_item')
+      $build['items'] = $this->entityManager()->getViewBuilder('aggregator_item')
         ->viewMultiple($items, 'default');
       $build['pager'] = array('#theme' => 'pager');
     }
@@ -274,7 +274,7 @@ public function categories() {
       if ($aggregator_summary_items) {
         $items = $entity_manager->getStorageController('aggregator_item')->loadByCategory($category->cid);
         if ($items) {
-          $summary_items = $entity_manager->getRenderController('aggregator_item')->viewMultiple($items, 'summary');
+          $summary_items = $entity_manager->getViewBuilder('aggregator_item')->viewMultiple($items, 'summary');
         }
       }
       $category->url = $this->urlGenerator()->generateFromPath('aggregator/categories/' . $category->cid);
@@ -326,7 +326,7 @@ public function sources() {
         $items = $entity_manager->getStorageController('aggregator_item')
           ->loadByFeed($feed->id());
         if ($items) {
-          $summary_items = $entity_manager->getRenderController('aggregator_item')
+          $summary_items = $entity_manager->getViewBuilder('aggregator_item')
             ->viewMultiple($items, 'summary');
         }
       }
diff --git a/core/modules/aggregator/lib/Drupal/aggregator/Entity/Feed.php b/core/modules/aggregator/lib/Drupal/aggregator/Entity/Feed.php
index b293f82..13fa11c 100644
--- a/core/modules/aggregator/lib/Drupal/aggregator/Entity/Feed.php
+++ b/core/modules/aggregator/lib/Drupal/aggregator/Entity/Feed.php
@@ -23,7 +23,7 @@
  *   module = "aggregator",
  *   controllers = {
  *     "storage" = "Drupal\aggregator\FeedStorageController",
- *     "render" = "Drupal\aggregator\FeedRenderController",
+ *     "view_builder" = "Drupal\aggregator\FeedViewBuilder",
  *     "form" = {
  *       "default" = "Drupal\aggregator\FeedFormController",
  *       "delete" = "Drupal\aggregator\Form\FeedDeleteForm",
diff --git a/core/modules/aggregator/lib/Drupal/aggregator/Entity/Item.php b/core/modules/aggregator/lib/Drupal/aggregator/Entity/Item.php
index d87a34f..2b63c31 100644
--- a/core/modules/aggregator/lib/Drupal/aggregator/Entity/Item.php
+++ b/core/modules/aggregator/lib/Drupal/aggregator/Entity/Item.php
@@ -22,7 +22,7 @@
  *   module = "aggregator",
  *   controllers = {
  *     "storage" = "Drupal\aggregator\ItemStorageController",
- *     "render" = "Drupal\aggregator\ItemRenderController"
+ *     "view_builder" = "Drupal\aggregator\ItemViewBuilder"
  *   },
  *   base_table = "aggregator_item",
  *   fieldable = TRUE,
diff --git a/core/modules/aggregator/lib/Drupal/aggregator/FeedRenderController.php b/core/modules/aggregator/lib/Drupal/aggregator/FeedViewBuilder.php
similarity index 63%
rename from core/modules/aggregator/lib/Drupal/aggregator/FeedRenderController.php
rename to core/modules/aggregator/lib/Drupal/aggregator/FeedViewBuilder.php
index 47de47b..853122f 100644
--- a/core/modules/aggregator/lib/Drupal/aggregator/FeedRenderController.php
+++ b/core/modules/aggregator/lib/Drupal/aggregator/FeedViewBuilder.php
@@ -2,21 +2,21 @@
 
 /**
  * @file
- * Contains \Drupal\aggregator\FeedRenderController.
+ * Contains \Drupal\aggregator\FeedViewBuilder.
  */
 
 namespace Drupal\aggregator;
 
 use Drupal\Core\Entity\EntityInterface;
-use Drupal\Core\Entity\EntityRenderController;
+use Drupal\Core\Entity\EntityViewBuilder;
 
 /**
  * Render controller for aggregator feed items.
  */
-class FeedRenderController extends EntityRenderController {
+class FeedViewBuilder extends EntityViewBuilder {
 
   /**
-   * Overrides Drupal\Core\Entity\EntityRenderController::getBuildDefaults().
+   * {@inheritdoc}
    */
   protected function getBuildDefaults(EntityInterface $entity, $view_mode, $langcode) {
     $defaults = parent::getBuildDefaults($entity, $view_mode, $langcode);
diff --git a/core/modules/aggregator/lib/Drupal/aggregator/Form/AggregatorCategorizeFormBase.php b/core/modules/aggregator/lib/Drupal/aggregator/Form/AggregatorCategorizeFormBase.php
index 9fe81cd..96f0e5a 100644
--- a/core/modules/aggregator/lib/Drupal/aggregator/Form/AggregatorCategorizeFormBase.php
+++ b/core/modules/aggregator/lib/Drupal/aggregator/Form/AggregatorCategorizeFormBase.php
@@ -11,7 +11,7 @@
 use Drupal\aggregator\FeedInterface;
 use Drupal\aggregator\ItemStorageControllerInterface;
 use Drupal\Component\Utility\String;
-use Drupal\Core\Entity\EntityRenderControllerInterface;
+use Drupal\Core\Entity\EntityViewBuilderInterface;
 use Drupal\Core\Form\FormBase;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
@@ -21,9 +21,9 @@
 abstract class AggregatorCategorizeFormBase extends FormBase {
 
   /**
-   * The aggregator item render controller.
+   * The aggregator item view builder.
    *
-   * @var \Drupal\Core\Entity\EntityRenderControllerInterface
+   * @var \Drupal\Core\Entity\EntityViewBuilderInterface
    */
   protected $aggregatorItemRenderer;
 
@@ -58,26 +58,23 @@
   /**
    * Constructs a \Drupal\aggregator\Controller\AggregatorController object.
    *
-   * @param \Drupal\Core\Entity\EntityRenderControllerInterface $aggregator_item_renderer
-   *   The item render controller.
+   * @param \Drupal\Core\Entity\EntityViewBuilderInterface $aggregator_item_renderer
+   *   The item view builder.
    * @param \Drupal\aggregator\ItemStorageControllerInterface $aggregator_item_storage
    *   The aggregator item storage controller.
    * @param \Drupal\aggregator\CategoryStorageControllerInterface $category_storage
    *   The category storage controller.
    */
-  public function __construct(EntityRenderControllerInterface $aggregator_item_renderer, ItemStorageControllerInterface $aggregator_item_storage, CategoryStorageControllerInterface $category_storage) {
+  public function __construct(EntityViewBuilderInterface $aggregator_item_renderer, ItemStorageControllerInterface $aggregator_item_storage, CategoryStorageControllerInterface $category_storage) {
     $this->aggregatorItemRenderer = $aggregator_item_renderer;
     $this->config = $this->config('aggregator.settings');
     $this->aggregatorItemStorage = $aggregator_item_storage;
     $this->categoryStorage = $category_storage;
   }
 
-  /**
-   * {@inheritdoc}
-   */
   public static function create(ContainerInterface $container) {
     return new static(
-      $container->get('plugin.manager.entity')->getRenderController('aggregator_item'),
+      $container->get('plugin.manager.entity')->getViewBuilder('aggregator_item'),
       $container->get('plugin.manager.entity')->getStorageController('aggregator_item'),
       $container->get('aggregator.category.storage')
     );
diff --git a/core/modules/aggregator/lib/Drupal/aggregator/ItemRenderController.php b/core/modules/aggregator/lib/Drupal/aggregator/ItemViewBuilder.php
similarity index 68%
rename from core/modules/aggregator/lib/Drupal/aggregator/ItemRenderController.php
rename to core/modules/aggregator/lib/Drupal/aggregator/ItemViewBuilder.php
index af11005..7d3f919 100644
--- a/core/modules/aggregator/lib/Drupal/aggregator/ItemRenderController.php
+++ b/core/modules/aggregator/lib/Drupal/aggregator/ItemViewBuilder.php
@@ -2,21 +2,21 @@
 
 /**
  * @file
- * Contains \Drupal\aggregator\ItemRenderController.
+ * Contains \Drupal\aggregator\ItemViewBuilder.
  */
 
 namespace Drupal\aggregator;
 
 use Drupal\Core\Entity\EntityInterface;
-use Drupal\Core\Entity\EntityRenderController;
+use Drupal\Core\Entity\EntityViewBuilder;
 
 /**
  * Render controller for aggregator feed items.
  */
-class ItemRenderController extends EntityRenderController {
+class ItemViewBuilder extends EntityViewBuilder {
 
   /**
-   * Overrides Drupal\Core\Entity\EntityRenderController::getBuildDefaults().
+   * {@inheritdoc}
    */
   protected function getBuildDefaults(EntityInterface $entity, $view_mode, $langcode) {
     $defaults = parent::getBuildDefaults($entity, $view_mode, $langcode);
diff --git a/core/modules/aggregator/lib/Drupal/aggregator/Plugin/aggregator/processor/DefaultProcessor.php b/core/modules/aggregator/lib/Drupal/aggregator/Plugin/aggregator/processor/DefaultProcessor.php
index ec7d193..a511ebb 100644
--- a/core/modules/aggregator/lib/Drupal/aggregator/Plugin/aggregator/processor/DefaultProcessor.php
+++ b/core/modules/aggregator/lib/Drupal/aggregator/Plugin/aggregator/processor/DefaultProcessor.php
@@ -143,7 +143,7 @@ public function process(Feed $feed) {
       return;
     }
     foreach ($feed->items as $item) {
-      // @todo: The default entity render controller always returns an empty
+      // @todo: The default entity view builder always returns an empty
       //   array, which is ignored in aggregator_save_item() currently. Should
       //   probably be fixed.
       if (empty($item['title'])) {
diff --git a/core/modules/block/custom_block/lib/Drupal/custom_block/CustomBlockRenderController.php b/core/modules/block/custom_block/lib/Drupal/custom_block/CustomBlockViewBuilder.php
similarity index 71%
rename from core/modules/block/custom_block/lib/Drupal/custom_block/CustomBlockRenderController.php
rename to core/modules/block/custom_block/lib/Drupal/custom_block/CustomBlockViewBuilder.php
index 3457115..6be784e 100644
--- a/core/modules/block/custom_block/lib/Drupal/custom_block/CustomBlockRenderController.php
+++ b/core/modules/block/custom_block/lib/Drupal/custom_block/CustomBlockViewBuilder.php
@@ -2,22 +2,22 @@
 
 /**
  * @file
- * Contains \Drupal\custom_block\CustomBlockRenderController.
+ * Contains \Drupal\custom_block\CustomBlockViewBuilder.
  */
 
 namespace Drupal\custom_block;
 
 use Drupal\Core\Entity\EntityInterface;
-use Drupal\Core\Entity\EntityRenderController;
+use Drupal\Core\Entity\EntityViewBuilder;
 use Drupal\entity\Entity\EntityDisplay;
 
 /**
  * Render controller for custom blocks.
  */
-class CustomBlockRenderController extends EntityRenderController {
+class CustomBlockViewBuilder extends EntityViewBuilder {
 
   /**
-   * Overrides \Drupal\Core\Entity\EntityRenderController::alterBuild().
+   * {@inheritdoc}
    */
   protected function alterBuild(array &$build, EntityInterface $entity, EntityDisplay $display, $view_mode, $langcode = NULL) {
     parent::alterBuild($build, $entity, $display, $view_mode, $langcode);
diff --git a/core/modules/block/custom_block/lib/Drupal/custom_block/Entity/CustomBlock.php b/core/modules/block/custom_block/lib/Drupal/custom_block/Entity/CustomBlock.php
index 69fc804..01c453e 100644
--- a/core/modules/block/custom_block/lib/Drupal/custom_block/Entity/CustomBlock.php
+++ b/core/modules/block/custom_block/lib/Drupal/custom_block/Entity/CustomBlock.php
@@ -25,7 +25,7 @@
  *     "storage" = "Drupal\custom_block\CustomBlockStorageController",
  *     "access" = "Drupal\custom_block\CustomBlockAccessController",
  *     "list" = "Drupal\custom_block\CustomBlockListController",
- *     "render" = "Drupal\custom_block\CustomBlockRenderController",
+ *     "view_builder" = "Drupal\custom_block\CustomBlockViewBuilder",
  *     "form" = {
  *       "add" = "Drupal\custom_block\CustomBlockFormController",
  *       "edit" = "Drupal\custom_block\CustomBlockFormController",
diff --git a/core/modules/block/lib/Drupal/block/BlockPluginInterface.php b/core/modules/block/lib/Drupal/block/BlockPluginInterface.php
index b5433e6..f05af11 100644
--- a/core/modules/block/lib/Drupal/block/BlockPluginInterface.php
+++ b/core/modules/block/lib/Drupal/block/BlockPluginInterface.php
@@ -40,7 +40,7 @@ public function access();
    * @return array
    *   A renderable array representing the content of the block.
    *
-   * @see \Drupal\block\BlockRenderController
+   * @see \Drupal\block\BlockViewBuilder
    */
   public function build();
 
diff --git a/core/modules/block/lib/Drupal/block/BlockRenderController.php b/core/modules/block/lib/Drupal/block/BlockViewBuilder.php
similarity index 76%
rename from core/modules/block/lib/Drupal/block/BlockRenderController.php
rename to core/modules/block/lib/Drupal/block/BlockViewBuilder.php
index 68599a5..bfc136b 100644
--- a/core/modules/block/lib/Drupal/block/BlockRenderController.php
+++ b/core/modules/block/lib/Drupal/block/BlockViewBuilder.php
@@ -2,28 +2,28 @@
 
 /**
  * @file
- * Contains \Drupal\block\BlockRenderController.
+ * Contains \Drupal\block\BlockViewBuilder.
  */
 
 namespace Drupal\block;
 
-use Drupal\Core\Entity\EntityRenderControllerInterface;
+use Drupal\Core\Entity\EntityViewBuilderInterface;
 use Drupal\Core\Entity\EntityInterface;
 
 /**
- * Provides a Block render controller.
+ * Provides a Block view builder.
  */
-class BlockRenderController implements EntityRenderControllerInterface {
+class BlockViewBuilder implements EntityViewBuilderInterface {
 
   /**
-   * Implements \Drupal\Core\Entity\EntityRenderControllerInterface::buildContent().
+   * {@inheritdoc}
    */
   public function buildContent(array $entities, array $displays, $view_mode, $langcode = NULL) {
     return array();
   }
 
   /**
-   * Implements Drupal\Core\Entity\EntityRenderControllerInterface::view().
+   * {@inheritdoc}
    */
   public function view(EntityInterface $entity, $view_mode = 'full', $langcode = NULL) {
     $build = $this->viewMultiple(array($entity), $view_mode, $langcode);
@@ -31,7 +31,7 @@ public function view(EntityInterface $entity, $view_mode = 'full', $langcode = N
   }
 
   /**
-   * Implements Drupal\Core\Entity\EntityRenderControllerInterface::viewMultiple().
+   * {@inheritdoc}
    */
   public function viewMultiple(array $entities = array(), $view_mode = 'full', $langcode = NULL) {
     $build = array();
diff --git a/core/modules/block/lib/Drupal/block/Entity/Block.php b/core/modules/block/lib/Drupal/block/Entity/Block.php
index 67d10e4..75b7e74 100644
--- a/core/modules/block/lib/Drupal/block/Entity/Block.php
+++ b/core/modules/block/lib/Drupal/block/Entity/Block.php
@@ -24,7 +24,7 @@
  *   controllers = {
  *     "storage" = "Drupal\Core\Config\Entity\ConfigStorageController",
  *     "access" = "Drupal\block\BlockAccessController",
- *     "render" = "Drupal\block\BlockRenderController",
+ *     "view_builder" = "Drupal\block\BlockViewBuilder",
  *     "list" = "Drupal\block\BlockListController",
  *     "form" = {
  *       "default" = "Drupal\block\BlockFormController",
diff --git a/core/modules/book/lib/Drupal/book/BookExport.php b/core/modules/book/lib/Drupal/book/BookExport.php
index 62a5148..bf639a7 100644
--- a/core/modules/book/lib/Drupal/book/BookExport.php
+++ b/core/modules/book/lib/Drupal/book/BookExport.php
@@ -26,11 +26,11 @@ class BookExport {
   protected $nodeStorage;
 
   /**
-   * The node render controller.
+   * The node view builder.
    *
-   * @var \Drupal\Core\Entity\EntityRenderControllerInterface
+   * @var \Drupal\Core\Entity\EntityViewBuilderInterface
    */
-  protected $nodeRender;
+  protected $viewBuilder;
 
   /**
    * Constructs a BookExport object.
@@ -40,7 +40,7 @@ class BookExport {
    */
   public function __construct(EntityManager $entityManager) {
     $this->nodeStorage = $entityManager->getStorageController('node');
-    $this->nodeRender = $entityManager->getRenderController('node');
+    $this->viewBuilder = $entityManager->getViewBuilder('node');
   }
 
   /**
@@ -125,7 +125,7 @@ protected function exportTraverse(array $tree, $callable) {
    * @see \Drupal\book\BookExport::exportTraverse()
    */
   protected function bookNodeExport(NodeInterface $node, $children = '') {
-    $build = $this->nodeRender->view($node, 'print', NULL);
+    $build = $this->viewBuilder->view($node, 'print', NULL);
     unset($build['#theme']);
 
     // @todo Rendering should happen in the template using render().
diff --git a/core/modules/comment/comment.module b/core/modules/comment/comment.module
index b31497f..d6bfbf8 100644
--- a/core/modules/comment/comment.module
+++ b/core/modules/comment/comment.module
@@ -271,7 +271,7 @@ function comment_field_instance_create(FieldInstanceInterface $instance) {
  */
 function comment_field_instance_update(FieldInstanceInterface $instance) {
   if ($instance->getFieldType() == 'comment') {
-    \Drupal::entityManager()->getRenderController($instance->entity_type)->resetCache();
+    \Drupal::entityManager()->getViewBuilder($instance->entity_type)->resetCache();
   }
 }
 
@@ -1325,7 +1325,7 @@ function comment_get_display_ordinal($cid, $instance) {
   else {
     // For threaded comments, the c.thread column is used for ordering. We can
     // use the sorting code for comparison, but must remove the trailing slash.
-    // See CommentRenderController.
+    // See CommentViewBuilder.
     $query->where('SUBSTRING(c1.thread, 1, (LENGTH(c1.thread) -1)) < SUBSTRING(c2.thread, 1, (LENGTH(c2.thread) -1))');
   }
 
@@ -1442,7 +1442,7 @@ function comment_preprocess_block(&$variables) {
  *   A user account, for use with theme_username() or the user_picture template.
  */
 function comment_prepare_author(CommentInterface $comment) {
-  // The account has been pre-loaded by CommentRenderController::buildContent().
+  // The account has been pre-loaded by CommentViewBuilder::buildContent().
   $account = $comment->uid->entity;
   if (empty($account->uid->value)) {
     $account = entity_create('user', array('uid' => 0, 'name' => $comment->name->value, 'homepage' => $comment->homepage->value));
diff --git a/core/modules/comment/lib/Drupal/comment/CommentFormController.php b/core/modules/comment/lib/Drupal/comment/CommentFormController.php
index 50e7caf..abd39cf 100644
--- a/core/modules/comment/lib/Drupal/comment/CommentFormController.php
+++ b/core/modules/comment/lib/Drupal/comment/CommentFormController.php
@@ -49,7 +49,7 @@ public static function create(ContainerInterface $container) {
   }
 
   /**
-   * Constructs a new CommentRenderController.
+   * Constructs a new CommentFormController.
    *
    * @param \Drupal\Core\Entity\EntityManager $entity_manager
    *   The entity manager service.
@@ -413,6 +413,6 @@ public function save(array $form, array &$form_state) {
     // Clear the block and page caches so that anonymous users see the comment
     // they have posted.
     Cache::invalidateTags(array('content' => TRUE));
-    $this->entityManager->getRenderController($entity->entityType())->resetCache(array($entity->id()));
+    $this->entityManager->getViewBuilder($entity->entityType())->resetCache(array($entity->id()));
   }
 }
diff --git a/core/modules/comment/lib/Drupal/comment/CommentRenderController.php b/core/modules/comment/lib/Drupal/comment/CommentViewBuilder.php
similarity index 93%
rename from core/modules/comment/lib/Drupal/comment/CommentRenderController.php
rename to core/modules/comment/lib/Drupal/comment/CommentViewBuilder.php
index b577b27..b4b3065 100644
--- a/core/modules/comment/lib/Drupal/comment/CommentRenderController.php
+++ b/core/modules/comment/lib/Drupal/comment/CommentViewBuilder.php
@@ -2,7 +2,7 @@
 
 /**
  * @file
- * Definition of Drupal\comment\CommentRenderController.
+ * Definition of Drupal\comment\CommentViewBuilder.
  */
 
 namespace Drupal\comment;
@@ -10,8 +10,9 @@
 use Drupal\Core\Entity\EntityControllerInterface;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Entity\EntityManager;
-use Drupal\Core\Entity\EntityRenderController;
+use Drupal\Core\Entity\EntityViewBuilderInterface;
 use Drupal\Core\Extension\ModuleHandlerInterface;
+use Drupal\Core\Entity\EntityViewBuilder;
 use Drupal\entity\Entity\EntityDisplay;
 use Drupal\field\FieldInfo;
 use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -19,7 +20,7 @@
 /**
  * Render controller for comments.
  */
-class CommentRenderController extends EntityRenderController implements EntityControllerInterface {
+class CommentViewBuilder extends EntityViewBuilder implements EntityViewBuilderInterface, EntityControllerInterface {
 
   /**
    * The entity manager service.
@@ -55,7 +56,7 @@ public static function createInstance(ContainerInterface $container, $entity_typ
   }
 
   /**
-   * Constructs a new CommentRenderController.
+   * Constructs a new CommentViewBuilder.
    *
    * @param string $entity_type
    *   The entity type.
@@ -74,7 +75,7 @@ public function __construct($entity_type, EntityManager $entity_manager, FieldIn
   }
 
   /**
-   * Overrides Drupal\Core\Entity\EntityRenderController::buildContent().
+   * Overrides Drupal\Core\Entity\EntityViewBuilder::buildContent().
    *
    * In addition to modifying the content key on entities, this implementation
    * will also set the comment entity key which all comments carry.
@@ -144,7 +145,7 @@ public function buildContent(array $entities, array $displays, $view_mode, $lang
   }
 
   /**
-   * Overrides Drupal\Core\Entity\EntityRenderController::alterBuild().
+   * {@inheritdoc}
    */
   protected function alterBuild(array &$build, EntityInterface $comment, EntityDisplay $display, $view_mode, $langcode = NULL) {
     parent::alterBuild($build, $comment, $display, $view_mode, $langcode);
diff --git a/core/modules/comment/lib/Drupal/comment/Controller/CommentController.php b/core/modules/comment/lib/Drupal/comment/Controller/CommentController.php
index 1c2ffa9..2f13edb 100644
--- a/core/modules/comment/lib/Drupal/comment/Controller/CommentController.php
+++ b/core/modules/comment/lib/Drupal/comment/Controller/CommentController.php
@@ -275,7 +275,7 @@ public function getReplyForm(Request $request, $entity_type, $entity_id, $field_
           return new RedirectResponse($this->urlGenerator()->generateFromPath($uri['path'], array('absolute' => TRUE)));
         }
         // Display the parent comment.
-        $build['comment_parent'] = $this->entityManager()->getRenderController('comment')->view($comment);
+        $build['comment_parent'] = $this->entityManager()->getViewBuilder('comment')->view($comment);
       }
 
       // The comment is in response to a entity.
@@ -284,7 +284,7 @@ public function getReplyForm(Request $request, $entity_type, $entity_id, $field_
         // redirect loop.
         $entity->{$field_name}->status = COMMENT_HIDDEN;
         // Render array of the entity full view mode.
-        $build['commented_entity'] = $this->entityManager()->getRenderController($entity->entityType())->view($entity, 'full');
+        $build['commented_entity'] = $this->entityManager()->getViewBuilder($entity->entityType())->view($entity, 'full');
         unset($build['commented_entity']['#cache']);
         $entity->{$field_name}->status = $status;
       }
diff --git a/core/modules/comment/lib/Drupal/comment/Entity/Comment.php b/core/modules/comment/lib/Drupal/comment/Entity/Comment.php
index 65531de..da06dc4 100644
--- a/core/modules/comment/lib/Drupal/comment/Entity/Comment.php
+++ b/core/modules/comment/lib/Drupal/comment/Entity/Comment.php
@@ -25,7 +25,7 @@
  *   controllers = {
  *     "storage" = "Drupal\comment\CommentStorageController",
  *     "access" = "Drupal\comment\CommentAccessController",
- *     "render" = "Drupal\comment\CommentRenderController",
+ *     "view_builder" = "Drupal\comment\CommentViewBuilder",
  *     "form" = {
  *       "default" = "Drupal\comment\CommentFormController",
  *       "delete" = "Drupal\comment\Form\DeleteForm"
diff --git a/core/modules/comment/lib/Drupal/comment/Plugin/Field/FieldFormatter/CommentDefaultFormatter.php b/core/modules/comment/lib/Drupal/comment/Plugin/Field/FieldFormatter/CommentDefaultFormatter.php
index 18ec31e..93a0d9d 100644
--- a/core/modules/comment/lib/Drupal/comment/Plugin/Field/FieldFormatter/CommentDefaultFormatter.php
+++ b/core/modules/comment/lib/Drupal/comment/Plugin/Field/FieldFormatter/CommentDefaultFormatter.php
@@ -8,7 +8,7 @@
 namespace Drupal\comment\Plugin\Field\FieldFormatter;
 
 use Drupal\comment\CommentStorageControllerInterface;
-use Drupal\Core\Entity\EntityRenderControllerInterface;
+use Drupal\Core\Entity\EntityViewBuilderInterface;
 use Drupal\Core\Entity\Field\FieldItemListInterface;
 use Drupal\Core\Session\AccountInterface;
 use Drupal\Core\Entity\Field\FieldDefinitionInterface;
@@ -47,9 +47,9 @@ class CommentDefaultFormatter extends FormatterBase implements ContainerFactoryP
   /**
    * The comment render controller.
    *
-   * @var \Drupal\Core\Entity\EntityRenderControllerInterface
+   * @var \Drupal\Core\Entity\EntityViewBuilderInterface
    */
-  protected $renderController;
+  protected $viewBuilder;
 
   /**
    * {@inheritdoc}
@@ -64,7 +64,7 @@ public static function create(ContainerInterface $container, array $configuratio
       $configuration['view_mode'],
       $container->get('current_user'),
       $container->get('entity.manager')->getStorageController('comment'),
-      $container->get('entity.manager')->getRenderController('comment')
+      $container->get('entity.manager')->getViewBuilder('comment')
     );
   }
 
@@ -87,12 +87,12 @@ public static function create(ContainerInterface $container, array $configuratio
    *   The current user.
    * @param \Drupal\comment\CommentStorageControllerInterface
    *   The comment storage controller.
-   * @param \Drupal\Core\Entity\EntityRenderControllerInterface
-   *   The comment render controller.
+   * @param \Drupal\Core\Entity\EntityViewBuilderInterface
+   *   The comment view builder.
    */
-  public function __construct($plugin_id, array $plugin_definition,  FieldDefinitionInterface $field_definition, array $settings, $label, $view_mode, AccountInterface $current_user, CommentStorageControllerInterface $comment_storage_controller, EntityRenderControllerInterface $comment_render_controller) {
+  public function __construct($plugin_id, array $plugin_definition,  FieldDefinitionInterface $field_definition, array $settings, $label, $view_mode, AccountInterface $current_user, CommentStorageControllerInterface $comment_storage_controller, EntityViewBuilderInterface $comment_view_builder) {
     parent::__construct($plugin_id, $plugin_definition, $field_definition, $settings, $label, $view_mode);
-    $this->renderController = $comment_render_controller;
+    $this->viewBuilder = $comment_view_builder;
     $this->storageController = $comment_storage_controller;
     $this->currentUser = $current_user;
   }
@@ -127,7 +127,7 @@ public function viewElements(FieldItemListInterface $items) {
         if ($cids = comment_get_thread($entity, $field_name, $mode, $comments_per_page)) {
           $comments = $this->storageController->loadMultiple($cids);
           comment_prepare_thread($comments);
-          $build = $this->renderController->viewMultiple($comments);
+          $build = $this->viewBuilder->viewMultiple($comments);
           $build['pager']['#theme'] = 'pager';
           $output['comments'] = $build;
         }
diff --git a/core/modules/comment/lib/Drupal/comment/Tests/CommentNonNodeTest.php b/core/modules/comment/lib/Drupal/comment/Tests/CommentNonNodeTest.php
index 8069a3f..80e4855 100644
--- a/core/modules/comment/lib/Drupal/comment/Tests/CommentNonNodeTest.php
+++ b/core/modules/comment/lib/Drupal/comment/Tests/CommentNonNodeTest.php
@@ -12,7 +12,7 @@
 use Drupal\Core\Entity\EntityInterface;
 
 /**
- * Tests basic comment functionality against the entity_test_render entity type.
+ * Tests basic comment functionality against the entity_test entity type.
  */
 class CommentNonNodeTest extends WebTestBase {
 
@@ -36,10 +36,10 @@ public static function getInfo() {
   function setUp() {
     parent::setUp();
 
-    // Create a bundle for entity_test_render.
-    entity_test_create_bundle('entity_test_render', 'Entity Test Render', 'entity_test_render');
-    // Create comment field on entity_test_render bundle.
-    $this->container->get('comment.manager')->addDefaultField('entity_test_render', 'entity_test_render');
+    // Create a bundle for entity_test.
+    entity_test_create_bundle('entity_test', 'Entity Test', 'entity_test');
+    // Create comment field on entity_test bundle.
+    $this->container->get('comment.manager')->addDefaultField('entity_test', 'entity_test');
 
     // Create test user.
     $this->admin_user = $this->drupalCreateUser(array(
@@ -65,8 +65,8 @@ function setUp() {
 
     // Create a test entity.
     $random_label = $this->randomName();
-    $data = array('type' => 'entity_test_render', 'name' => $random_label);
-    $this->entity = entity_create('entity_test_render', $data);
+    $data = array('type' => 'entity_test', 'name' => $random_label);
+    $this->entity = entity_create('entity_test', $data);
     $this->entity->save();
   }
 
@@ -87,13 +87,13 @@ function postComment(EntityInterface $entity, $comment, $subject = '', $contact
     $edit = array();
     $edit['comment_body[0][value]'] = $comment;
 
-    $instance = $this->container->get('field.info')->getInstance('entity_test_render', 'entity_test_render', 'comment');
+    $instance = $this->container->get('field.info')->getInstance('entity_test', 'entity_test', 'comment');
     $preview_mode = $instance->getFieldSetting('preview');
     $subject_mode = $instance->getFieldSetting('subject');
 
     // Must get the page before we test for fields.
     if ($entity !== NULL) {
-      $this->drupalGet('comment/reply/entity_test_render/' . $entity->id() . '/comment');
+      $this->drupalGet('comment/reply/entity_test/' . $entity->id() . '/comment');
     }
 
     if ($subject_mode == TRUE) {
@@ -225,15 +225,15 @@ function getUnapprovedComment($subject) {
    */
   function testCommentFunctionality() {
     $limited_user = $this->drupalCreateUser(array(
-      'administer entity_test_render fields'
+      'administer entity_test fields'
     ));
     $this->drupalLogin($limited_user);
     // Test that default field exists.
-    $this->drupalGet('admin/structure/entity-test-render/manage/entity_test_render/fields');
+    $this->drupalGet('admin/structure/entity-test/manage/entity_test/fields');
     $this->assertText(t('Comment settings'));
-    $this->assertLinkByHref('admin/structure/entity-test-render/manage/entity_test_render/fields/entity_test_render.entity_test_render.comment');
+    $this->assertLinkByHref('admin/structure/entity-test/manage/entity_test/fields/entity_test.entity_test.comment');
     // Test widget hidden option is not visible when there's no comments.
-    $this->drupalGet('admin/structure/entity-test-render/manage/entity_test_render/entity-test-render/fields/entity_test_render.entity_test_render.comment');
+    $this->drupalGet('admin/structure/entity-test/manage/entity_test/entity-test/fields/entity_test.entity_test.comment');
     $this->assertNoField('edit-default-value-input-comment-und-0-status-0');
 
     $this->drupalLogin($this->admin_user);
@@ -243,7 +243,7 @@ function testCommentFunctionality() {
     $this->assertTrue($this->commentExists($comment1), 'Comment on test entity exists.');
 
     // Assert the breadcrumb is valid.
-    $this->drupalGet('comment/reply/entity_test_render/' . $this->entity->id() . '/comment');
+    $this->drupalGet('comment/reply/entity_test/' . $this->entity->id() . '/comment');
     $this->assertLink($this->entity->label());
 
     // Unpublish the comment.
@@ -289,12 +289,12 @@ function testCommentFunctionality() {
     ));
 
     // Attempt to view comments while disallowed.
-    $this->drupalGet('entity-test-render/' . $this->entity->id());
+    $this->drupalGet('entity-test/' . $this->entity->id());
     $this->assertNoPattern('@<h2[^>]*>Comments</h2>@', 'Comments were not displayed.');
     $this->assertNoLink('Add new comment', 'Link to add comment was found.');
 
     // Attempt to view test entity comment form while disallowed.
-    $this->drupalGet('comment/reply/entity_test_render/' . $this->entity->id() . '/comment');
+    $this->drupalGet('comment/reply/entity_test/' . $this->entity->id() . '/comment');
     $this->assertText('You are not authorized to post comments', 'Error attempting to post comment.');
     $this->assertNoFieldByName('subject', '', 'Subject field not found.');
     $this->assertNoFieldByName('comment_body[0][value]', '', 'Comment field not found.');
@@ -307,8 +307,8 @@ function testCommentFunctionality() {
     ));
     // We've changed role permissions, so need to reset render cache.
     // @todo Revisit after https://drupal.org/node/2099105
-    \Drupal::entityManager()->getRenderController('entity_test_render')->resetCache(array($this->entity->id()));
-    $this->drupalGet('entity-test-render/' . $this->entity->id());
+    \Drupal::entityManager()->getViewBuilder('entity_test')->resetCache(array($this->entity->id()));
+    $this->drupalGet('entity_test/' . $this->entity->id());
     $this->assertPattern('@<h2[^>]*>Comments</h2>@', 'Comments were displayed.');
     $this->assertLink('Log in', 0, 'Link to log in was found.');
     $this->assertLink('register', 0, 'Link to register was found.');
@@ -326,37 +326,37 @@ function testCommentFunctionality() {
     ));
     // We've changed role permissions, so need to reset render cache.
     // @todo Revisit after https://drupal.org/node/2099105
-    \Drupal::entityManager()->getRenderController('entity_test_render')->resetCache(array($this->entity->id()));
-    $this->drupalGet('entity-test-render/' . $this->entity->id());
+    \Drupal::entityManager()->getViewBuilder('entity_test')->resetCache(array($this->entity->id()));
+    $this->drupalGet('entity_test/' . $this->entity->id());
     $this->assertNoPattern('@<h2[^>]*>Comments</h2>@', 'Comments were not displayed.');
     $this->assertFieldByName('subject', '', 'Subject field found.');
     $this->assertFieldByName('comment_body[0][value]', '', 'Comment field found.');
 
-    $this->drupalGet('comment/reply/entity_test_render/' . $this->entity->id() . '/comment/' . $comment1->id());
+    $this->drupalGet('comment/reply/entity_test/' . $this->entity->id() . '/comment/' . $comment1->id());
     $this->assertText('You are not authorized to view comments');
     $this->assertNoText($comment1->subject->value, 'Comment not displayed.');
 
     // Test comment field widget changes.
     $limited_user = $this->drupalCreateUser(array(
-      'administer entity_test_render fields',
+      'administer entity_test fields',
       'view test entity',
       'administer entity_test content',
     ));
     $this->drupalLogin($limited_user);
-    $this->drupalGet('admin/structure/entity-test-render/manage/entity_test_render/fields/entity_test_render.entity_test_render.comment');
+    $this->drupalGet('admin/structure/entity-test/manage/entity_test/fields/entity_test.entity_test.comment');
     $this->assertNoFieldChecked('edit-default-value-input-comment-0-status-0');
     $this->assertNoFieldChecked('edit-default-value-input-comment-0-status-1');
     $this->assertFieldChecked('edit-default-value-input-comment-0-status-2');
     // Test comment option change in field settings.
     $edit = array('default_value_input[comment][0][status]' => COMMENT_CLOSED);
     $this->drupalPostForm(NULL, $edit, t('Save settings'));
-    $this->drupalGet('admin/structure/entity-test-render/manage/entity_test_render/fields/entity_test_render.entity_test_render.comment');
+    $this->drupalGet('admin/structure/entity-test/manage/entity_test/fields/entity_test.entity_test.comment');
     $this->assertNoFieldChecked('edit-default-value-input-comment-0-status-0');
     $this->assertFieldChecked('edit-default-value-input-comment-0-status-1');
     $this->assertNoFieldChecked('edit-default-value-input-comment-0-status-2');
 
     // Add a new comment field.
-    $this->drupalGet('admin/structure/entity-test-render/manage/entity_test_render/fields');
+    $this->drupalGet('admin/structure/entity-test/manage/entity_test/fields');
     $edit = array(
       'fields[_add_new_field][label]' => 'Foobar',
       'fields[_add_new_field][field_name]' => 'foobar',
@@ -369,15 +369,15 @@ function testCommentFunctionality() {
 
     // Test the new entity commenting inherits default.
     $random_label = $this->randomName();
-    $data = array('bundle' => 'entity_test_render', 'name' => $random_label);
-    $new_entity = entity_create('entity_test_render', $data);
+    $data = array('bundle' => 'entity_test', 'name' => $random_label);
+    $new_entity = entity_create('entity_test', $data);
     $new_entity->save();
-    $this->drupalGet('entity_test_render/manage/' . $new_entity->id());
+    $this->drupalGet('entity_test/manage/' . $new_entity->id());
     $this->assertNoFieldChecked('edit-field-foobar-0-status-1');
     $this->assertFieldChecked('edit-field-foobar-0-status-2');
     $this->assertNoField('edit-field-foobar-0-status-0');
 
-    $this->drupalGet('comment/reply/entity_test_render/comment/' . $new_entity->id());
+    $this->drupalGet('comment/reply/entity_test/comment/' . $new_entity->id());
     $this->assertNoFieldByName('subject', '', 'Subject field found.');
     $this->assertNoFieldByName('comment_body[0][value]', '', 'Comment field found.');
   }
diff --git a/core/modules/contact/lib/Drupal/contact/Entity/Message.php b/core/modules/contact/lib/Drupal/contact/Entity/Message.php
index 2ea1def..ec59424 100644
--- a/core/modules/contact/lib/Drupal/contact/Entity/Message.php
+++ b/core/modules/contact/lib/Drupal/contact/Entity/Message.php
@@ -19,7 +19,7 @@
  *   module = "contact",
  *   controllers = {
  *     "storage" = "Drupal\Core\Entity\FieldableDatabaseStorageController",
- *     "render" = "Drupal\contact\MessageRenderController",
+ *     "view_builder" = "Drupal\contact\MessageViewBuilder",
  *     "form" = {
  *       "default" = "Drupal\contact\MessageFormController"
  *     }
diff --git a/core/modules/contact/lib/Drupal/contact/MessageRenderController.php b/core/modules/contact/lib/Drupal/contact/MessageViewBuilder.php
similarity index 83%
rename from core/modules/contact/lib/Drupal/contact/MessageRenderController.php
rename to core/modules/contact/lib/Drupal/contact/MessageViewBuilder.php
index f8aca5d..4feeb4f 100644
--- a/core/modules/contact/lib/Drupal/contact/MessageRenderController.php
+++ b/core/modules/contact/lib/Drupal/contact/MessageViewBuilder.php
@@ -2,21 +2,21 @@
 
 /**
  * @file
- * Contains Drupal\contact\MessageRenderController.
+ * Contains Drupal\contact\MessageViewBuilder.
  */
 
 namespace Drupal\contact;
 
 use Drupal\Core\Entity\EntityInterface;
-use Drupal\Core\Entity\EntityRenderController;
+use Drupal\Core\Entity\EntityViewBuilder;
 
 /**
  * Render controller for contact messages.
  */
-class MessageRenderController extends EntityRenderController {
+class MessageViewBuilder extends EntityViewBuilder {
 
   /**
-   * Overrides Drupal\Core\Entity\EntityRenderController::buildContent().
+   * {@inheritdoc}
    */
   public function buildContent(array $entities, array $displays, $view_mode, $langcode = NULL) {
     parent::buildContent($entities, $displays, $view_mode, $langcode);
@@ -35,7 +35,7 @@ public function buildContent(array $entities, array $displays, $view_mode, $lang
   }
 
   /**
-   * Overrides Drupal\Core\Entity\EntityRenderController::view().
+   * {@inheritdoc}
    */
   public function view(EntityInterface $entity, $view_mode = 'full', $langcode = NULL) {
     $build = parent::view($entity, $view_mode, $langcode);
diff --git a/core/modules/entity/lib/Drupal/entity/Controller/EntityDisplayModeController.php b/core/modules/entity/lib/Drupal/entity/Controller/EntityDisplayModeController.php
index 153c547..da7b936 100644
--- a/core/modules/entity/lib/Drupal/entity/Controller/EntityDisplayModeController.php
+++ b/core/modules/entity/lib/Drupal/entity/Controller/EntityDisplayModeController.php
@@ -52,7 +52,7 @@ public function viewModeTypeSelection() {
     drupal_set_title(t('Choose view mode entity type'));
     $entity_types = array();
     foreach ($this->entityManager->getDefinitions() as $entity_type => $entity_info) {
-      if ($entity_info['fieldable'] && isset($entity_info['controllers']['render'])) {
+      if ($entity_info['fieldable'] && isset($entity_info['controllers']['view_builder'])) {
         $entity_types[$entity_type] = array(
           'title' => $entity_info['label'],
           'href' => 'admin/structure/display-modes/view/add/' . $entity_type,
diff --git a/core/modules/entity/lib/Drupal/entity/EntityDisplayBase.php b/core/modules/entity/lib/Drupal/entity/EntityDisplayBase.php
index 14ca3d3..0278c58 100644
--- a/core/modules/entity/lib/Drupal/entity/EntityDisplayBase.php
+++ b/core/modules/entity/lib/Drupal/entity/EntityDisplayBase.php
@@ -133,8 +133,8 @@ public function save() {
     $return = parent::save();
 
     // Reset the render cache for the target entity type.
-    if (\Drupal::entityManager()->hasController($this->targetEntityType, 'render')) {
-      \Drupal::entityManager()->getRenderController($this->targetEntityType)->resetCache();
+    if (\Drupal::entityManager()->hasController($this->targetEntityType, 'view_builder')) {
+      \Drupal::entityManager()->getViewBuilder($this->targetEntityType)->resetCache();
     }
 
     return $return;
diff --git a/core/modules/entity/lib/Drupal/entity/EntityDisplayModeListController.php b/core/modules/entity/lib/Drupal/entity/EntityDisplayModeListController.php
index 6bc6bd8..835c1c6 100644
--- a/core/modules/entity/lib/Drupal/entity/EntityDisplayModeListController.php
+++ b/core/modules/entity/lib/Drupal/entity/EntityDisplayModeListController.php
@@ -146,7 +146,7 @@ public function render() {
    *   doesn't has the correct controller.
    */
   protected function isValidEntity($entity_type) {
-    return isset($this->entityInfoComplete[$entity_type]['controllers']['render']);
+    return isset($this->entityInfoComplete[$entity_type]['controllers']['view_builder']);
   }
 
 }
diff --git a/core/modules/entity/lib/Drupal/entity/Form/EntityDisplayModeAddForm.php b/core/modules/entity/lib/Drupal/entity/Form/EntityDisplayModeAddForm.php
index 6eb2d2f..a3167c5 100644
--- a/core/modules/entity/lib/Drupal/entity/Form/EntityDisplayModeAddForm.php
+++ b/core/modules/entity/lib/Drupal/entity/Form/EntityDisplayModeAddForm.php
@@ -41,7 +41,7 @@ public function validate(array $form, array &$form_state) {
    */
   protected function prepareEntity() {
     $definition = $this->entityManager->getDefinition($this->entityType);
-    if (!$definition['fieldable'] || !isset($definition['controllers']['render'])) {
+    if (!$definition['fieldable'] || !isset($definition['controllers']['view_builder'])) {
       throw new NotFoundHttpException();
     }
 
diff --git a/core/modules/entity/lib/Drupal/entity/Tests/EntityDisplayModeTest.php b/core/modules/entity/lib/Drupal/entity/Tests/EntityDisplayModeTest.php
index fc74bb0..803fbe3 100644
--- a/core/modules/entity/lib/Drupal/entity/Tests/EntityDisplayModeTest.php
+++ b/core/modules/entity/lib/Drupal/entity/Tests/EntityDisplayModeTest.php
@@ -40,14 +40,14 @@ public function testEntityViewModeUI() {
     $this->drupalGet('admin/structure/display-modes/view');
     $this->assertResponse(200);
 
-    $this->drupalGet('admin/structure/display-modes/view/add/entity_test');
+    $this->drupalGet('admin/structure/display-modes/view/add/entity_test_mul');
     $this->assertResponse(404);
 
     $this->drupalGet('admin/structure/display-modes/view/add');
-    $this->assertNoLink(t('Test entity'), 'An entity type with no render controller cannot have view modes.');
+    $this->assertNoLink(t('Test entity - data table'), 'An entity type with no view builder cannot have view modes.');
 
     // Test adding a view mode.
-    $this->clickLink(t('Test render entity'));
+    $this->clickLink(t('Test entity'));
     $edit = array(
       'id' => strtolower($this->randomName()),
       'label' => $this->randomString(),
@@ -56,7 +56,7 @@ public function testEntityViewModeUI() {
     $this->assertRaw(t('Saved the %label view mode.', array('%label' => $edit['label'])));
 
     // Test editing the view mode.
-    $this->drupalGet('admin/structure/display-modes/view/manage/entity_test_render.' . $edit['id']);
+    $this->drupalGet('admin/structure/display-modes/view/manage/entity_test.' . $edit['id']);
 
     // Test deleting the view mode.
     $this->drupalPostForm(NULL, NULL, t('Delete'));
diff --git a/core/modules/entity_reference/lib/Drupal/entity_reference/Tests/EntityReferenceFormatterTest.php b/core/modules/entity_reference/lib/Drupal/entity_reference/Tests/EntityReferenceFormatterTest.php
index fc4c4bf..44bcca1 100644
--- a/core/modules/entity_reference/lib/Drupal/entity_reference/Tests/EntityReferenceFormatterTest.php
+++ b/core/modules/entity_reference/lib/Drupal/entity_reference/Tests/EntityReferenceFormatterTest.php
@@ -21,14 +21,14 @@ class EntityReferenceFormatterTest extends EntityUnitTestBase {
    *
    * @var string
    */
-  protected $entityType = 'entity_test_render';
+  protected $entityType = 'entity_test';
 
   /**
    * The bundle used in this test.
    *
    * @var string
    */
-  protected $bundle = 'entity_test_render';
+  protected $bundle = 'entity_test';
 
   /**
    * The name of the field used in this test.
diff --git a/core/modules/file/lib/Drupal/file/Entity/File.php b/core/modules/file/lib/Drupal/file/Entity/File.php
index b8823e3..a620533 100644
--- a/core/modules/file/lib/Drupal/file/Entity/File.php
+++ b/core/modules/file/lib/Drupal/file/Entity/File.php
@@ -24,7 +24,7 @@
  *   module = "file",
  *   controllers = {
  *     "storage" = "Drupal\file\FileStorageController",
- *     "render" = "Drupal\Core\Entity\EntityRenderController"
+ *     "view_builder" = "Drupal\Core\Entity\EntityViewBuilder"
  *   },
  *   base_table = "file_managed",
  *   entity_keys = {
diff --git a/core/modules/menu_link/lib/Drupal/menu_link/Entity/MenuLink.php b/core/modules/menu_link/lib/Drupal/menu_link/Entity/MenuLink.php
index d701640..3c1a099 100644
--- a/core/modules/menu_link/lib/Drupal/menu_link/Entity/MenuLink.php
+++ b/core/modules/menu_link/lib/Drupal/menu_link/Entity/MenuLink.php
@@ -28,7 +28,7 @@
  *   controllers = {
  *     "storage" = "Drupal\menu_link\MenuLinkStorageController",
  *     "access" = "Drupal\menu_link\MenuLinkAccessController",
- *     "render" = "Drupal\Core\Entity\EntityRenderController",
+ *     "view_builder" = "Drupal\Core\Entity\EntityViewBuilder",
  *     "form" = {
  *       "default" = "Drupal\menu_link\MenuLinkFormController"
  *     }
diff --git a/core/modules/node/lib/Drupal/node/Controller/NodeController.php b/core/modules/node/lib/Drupal/node/Controller/NodeController.php
index c889adc..8e56f58 100644
--- a/core/modules/node/lib/Drupal/node/Controller/NodeController.php
+++ b/core/modules/node/lib/Drupal/node/Controller/NodeController.php
@@ -139,7 +139,7 @@ public function pageTitle(NodeInterface $node) {
    *   An array suitable for drupal_render().
    */
   protected function buildPage(NodeInterface $node) {
-    return array('nodes' => $this->entityManager()->getRenderController('node')->view($node));
+    return array('nodes' => $this->entityManager()->getViewBuilder('node')->view($node));
   }
 
 }
diff --git a/core/modules/node/lib/Drupal/node/Entity/Node.php b/core/modules/node/lib/Drupal/node/Entity/Node.php
index 21887ca..4633508 100644
--- a/core/modules/node/lib/Drupal/node/Entity/Node.php
+++ b/core/modules/node/lib/Drupal/node/Entity/Node.php
@@ -23,7 +23,7 @@
  *   module = "node",
  *   controllers = {
  *     "storage" = "Drupal\node\NodeStorageController",
- *     "render" = "Drupal\node\NodeRenderController",
+ *     "view_builder" = "Drupal\node\NodeViewBuilder",
  *     "access" = "Drupal\node\NodeAccessController",
  *     "form" = {
  *       "default" = "Drupal\node\NodeFormController",
diff --git a/core/modules/node/lib/Drupal/node/NodeRenderController.php b/core/modules/node/lib/Drupal/node/NodeViewBuilder.php
similarity index 89%
rename from core/modules/node/lib/Drupal/node/NodeRenderController.php
rename to core/modules/node/lib/Drupal/node/NodeViewBuilder.php
index 433adb3..020951f 100644
--- a/core/modules/node/lib/Drupal/node/NodeRenderController.php
+++ b/core/modules/node/lib/Drupal/node/NodeViewBuilder.php
@@ -2,22 +2,22 @@
 
 /**
  * @file
- * Definition of Drupal\node\NodeRenderController.
+ * Definition of Drupal\node\NodeViewBuilder.
  */
 
 namespace Drupal\node;
 
 use Drupal\Core\Entity\EntityInterface;
-use Drupal\Core\Entity\EntityRenderController;
+use Drupal\Core\Entity\EntityViewBuilder;
 use Drupal\entity\Entity\EntityDisplay;
 
 /**
  * Render controller for nodes.
  */
-class NodeRenderController extends EntityRenderController {
+class NodeViewBuilder extends EntityViewBuilder {
 
   /**
-   * Overrides Drupal\Core\Entity\EntityRenderController::buildContent().
+   * {@inheritdoc}
    */
   public function buildContent(array $entities, array $displays, $view_mode, $langcode = NULL) {
     $return = array();
@@ -78,7 +78,7 @@ public function buildContent(array $entities, array $displays, $view_mode, $lang
   }
 
   /**
-   * Overrides Drupal\Core\Entity\EntityRenderController::alterBuild().
+   * {@inheritdoc}
    */
   protected function alterBuild(array &$build, EntityInterface $entity, EntityDisplay $display, $view_mode, $langcode = NULL) {
     parent::alterBuild($build, $entity, $display, $view_mode, $langcode);
diff --git a/core/modules/node/lib/Drupal/node/Plugin/Search/NodeSearch.php b/core/modules/node/lib/Drupal/node/Plugin/Search/NodeSearch.php
index 8e90efb..4b2d488 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/Search/NodeSearch.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/Search/NodeSearch.php
@@ -226,7 +226,7 @@ public function execute() {
       ->execute();
 
     $node_storage = $this->entityManager->getStorageController('node');
-    $node_render = $this->entityManager->getRenderController('node');
+    $node_render = $this->entityManager->getViewBuilder('node');
 
     foreach ($find as $item) {
       // Render the node.
@@ -323,7 +323,7 @@ protected function indexNode(EntityInterface $node) {
     $this->state->set('node.cron_last', $node->getChangedTime());
 
     $languages = $node->getTranslationLanguages();
-    $node_render = $this->entityManager->getRenderController('node');
+    $node_render = $this->entityManager->getViewBuilder('node');
 
     foreach ($languages as $language) {
       // Render the node.
diff --git a/core/modules/node/lib/Drupal/node/Tests/SummaryLengthTest.php b/core/modules/node/lib/Drupal/node/Tests/SummaryLengthTest.php
index c9d97c0..9ad3373 100644
--- a/core/modules/node/lib/Drupal/node/Tests/SummaryLengthTest.php
+++ b/core/modules/node/lib/Drupal/node/Tests/SummaryLengthTest.php
@@ -35,7 +35,7 @@ function testSummaryLength() {
     $web_user = $this->drupalCreateUser(array('access content', 'administer content types'));
     $this->loggedInUser = $web_user;
 
-    $controller = $this->container->get('entity.manager')->getRenderController('node');
+    $controller = $this->container->get('entity.manager')->getViewBuilder('node');
     // Render the node as a teaser.
     $content = $controller->view($node, 'teaser');
     $this->assertTrue(strlen($content['body'][0]['#markup']) < 600, 'Teaser is less than 600 characters long.');
diff --git a/core/modules/rdf/lib/Drupal/rdf/Entity/RdfMapping.php b/core/modules/rdf/lib/Drupal/rdf/Entity/RdfMapping.php
index 9464a56..094aa19 100644
--- a/core/modules/rdf/lib/Drupal/rdf/Entity/RdfMapping.php
+++ b/core/modules/rdf/lib/Drupal/rdf/Entity/RdfMapping.php
@@ -173,7 +173,7 @@ public function postSave(EntityStorageControllerInterface $storage_controller, $
     parent::postSave($storage_controller, $update);
 
     if (\Drupal::entityManager()->hasController($this->targetEntityType, 'render')) {
-      \Drupal::entityManager()->getRenderController($this->targetEntityType)->resetCache();
+      \Drupal::entityManager()->getViewBuilder($this->targetEntityType)->resetCache();
     }
   }
 
diff --git a/core/modules/rdf/lib/Drupal/rdf/Tests/Field/FieldRdfaDatatypeCallbackTest.php b/core/modules/rdf/lib/Drupal/rdf/Tests/Field/FieldRdfaDatatypeCallbackTest.php
index 91153df..1057a42 100644
--- a/core/modules/rdf/lib/Drupal/rdf/Tests/Field/FieldRdfaDatatypeCallbackTest.php
+++ b/core/modules/rdf/lib/Drupal/rdf/Tests/Field/FieldRdfaDatatypeCallbackTest.php
@@ -35,7 +35,7 @@ public function setUp() {
     $this->createTestField();
 
     // Add the mapping.
-    $mapping = rdf_get_mapping('entity_test_render', 'entity_test_render');
+    $mapping = rdf_get_mapping('entity_test', 'entity_test');
     $mapping->setFieldMapping($this->fieldName, array(
       'properties' => array('schema:interactionCount'),
       'datatype_callback' => array(
@@ -45,7 +45,7 @@ public function setUp() {
 
     // Set up test values.
     $this->test_value = $this->randomName();
-    $this->entity = entity_create('entity_test_render', array());
+    $this->entity = entity_create('entity_test', array());
     $this->entity->{$this->fieldName}->value = $this->test_value;
     $this->entity->save();
 
diff --git a/core/modules/rdf/lib/Drupal/rdf/Tests/Field/FieldRdfaTestBase.php b/core/modules/rdf/lib/Drupal/rdf/Tests/Field/FieldRdfaTestBase.php
index dd77f6a..386fc54 100644
--- a/core/modules/rdf/lib/Drupal/rdf/Tests/Field/FieldRdfaTestBase.php
+++ b/core/modules/rdf/lib/Drupal/rdf/Tests/Field/FieldRdfaTestBase.php
@@ -60,7 +60,7 @@
   protected function assertFormatterRdfa($formatter, $property, $value, $object_type = 'literal') {
     // The field formatter will be rendered inside the entity. Set the field
     // formatter in the entity display options before rendering the entity.
-    entity_get_display('entity_test_render', 'entity_test_render', 'default')
+    entity_get_display('entity_test', 'entity_test', 'default')
       ->setComponent($this->fieldName, array('type' => $formatter))
       ->save();
     $build = entity_view($this->entity, 'default');
@@ -80,13 +80,13 @@ protected function assertFormatterRdfa($formatter, $property, $value, $object_ty
   protected function createTestField() {
     entity_create('field_entity', array(
       'name' => $this->fieldName,
-      'entity_type' => 'entity_test_render',
+      'entity_type' => 'entity_test',
       'type' => $this->fieldType,
     ))->save();
     entity_create('field_instance', array(
-      'entity_type' => 'entity_test_render',
+      'entity_type' => 'entity_test',
       'field_name' => $this->fieldName,
-      'bundle' => 'entity_test_render',
+      'bundle' => 'entity_test',
     ))->save();
   }
 
diff --git a/core/modules/rdf/lib/Drupal/rdf/Tests/Field/TaxonomyTermReferenceRdfaTest.php b/core/modules/rdf/lib/Drupal/rdf/Tests/Field/TaxonomyTermReferenceRdfaTest.php
index 38ee919..0f15790 100644
--- a/core/modules/rdf/lib/Drupal/rdf/Tests/Field/TaxonomyTermReferenceRdfaTest.php
+++ b/core/modules/rdf/lib/Drupal/rdf/Tests/Field/TaxonomyTermReferenceRdfaTest.php
@@ -60,7 +60,7 @@ public function setUp() {
 
     entity_create('field_entity', array(
       'name' => $this->fieldName,
-      'entity_type' => 'entity_test_render',
+      'entity_type' => 'entity_test',
       'type' => 'taxonomy_term_reference',
       'cardinality' => FIELD_CARDINALITY_UNLIMITED,
       'settings' => array(
@@ -73,9 +73,9 @@ public function setUp() {
       ),
     ))->save();
     entity_create('field_instance', array(
-      'entity_type' => 'entity_test_render',
+      'entity_type' => 'entity_test',
       'field_name' => $this->fieldName,
-      'bundle' => 'entity_test_render',
+      'bundle' => 'entity_test',
     ))->save();
 
     $this->term = entity_create('taxonomy_term', array(
@@ -86,13 +86,13 @@ public function setUp() {
     $this->term->save();
 
     // Add the mapping.
-    $mapping = rdf_get_mapping('entity_test_render', 'entity_test_render');
+    $mapping = rdf_get_mapping('entity_test', 'entity_test');
     $mapping->setFieldMapping($this->fieldName, array(
       'properties' => array('schema:about'),
     ))->save();
 
     // Set up test values.
-    $this->entity = entity_create('entity_test_render', array());
+    $this->entity = entity_create('entity_test', array());
     $this->entity->{$this->fieldName}->target_id = $this->term->id();
     $this->entity->save();
     $this->uri = $this->getAbsoluteUri($this->entity);
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityManagerTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityManagerTest.php
index bb445a8..842668b 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityManagerTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityManagerTest.php
@@ -34,7 +34,7 @@ public function testMethods() {
     $this->assertFalse($entity_manager->hasController('non_existent', 'non_existent'), 'A non existent entity type has no controller.');
 
     $this->assertFalse($entity_manager->hasController('entity_test', 'non_existent'), 'An existent entity type does not have a non existent controller.');
-    $this->assertFalse($entity_manager->hasController('entity_test', 'render'), 'The test entity does not have specified the render controller.');
+    $this->assertFalse($entity_manager->hasController('entity_test_mul', 'view_builder'), 'The test entity does not have specified the view builder.');
 
     $this->assertTrue($entity_manager->hasController('entity_test', 'storage'), 'The test entity has specified the controller class');
   }
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityUriTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityUriTest.php
index 0731272..381d8b0 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityUriTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityUriTest.php
@@ -30,10 +30,10 @@ public function setUp() {
    */
   function testDefaultUri() {
     // Create a test entity.
-    $entity = entity_create('entity_test', array('name' => 'test', 'user_id' => 1));
+    $entity = entity_create('entity_test_no_label', array('name' => 'test', 'user_id' => 1));
     $entity->save();
     $uri = $entity->uri();
-    $expected_path = 'entity/entity_test/' . $entity->id();
+    $expected_path = 'entity/entity_test_no_label/' . $entity->id();
     $this->assertEqual(url($uri['path'], $uri['options']), url($expected_path), 'Entity without URI callback returns expected URI.');
   }
 
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityRenderTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityViewBuilderTest.php
similarity index 76%
rename from core/modules/system/lib/Drupal/system/Tests/Entity/EntityRenderTest.php
rename to core/modules/system/lib/Drupal/system/Tests/Entity/EntityViewBuilderTest.php
index 9836c7d..b649cf6 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityRenderTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityViewBuilderTest.php
@@ -2,15 +2,15 @@
 
 /**
  * @file
- * Contains \Drupal\system\Tests\Entity\EntityRenderTest.
+ * Contains \Drupal\system\Tests\Entity\EntityViewBuilderTest.
  */
 
 namespace Drupal\system\Tests\Entity;
 
 /**
- * Tests the Entity Render Controller.
+ * Tests the entity view builder.
  */
-class EntityRenderTest extends EntityUnitTestBase {
+class EntityViewBuilderTest extends EntityUnitTestBase {
 
   /**
    * Modules to enable.
@@ -22,7 +22,7 @@ class EntityRenderTest extends EntityUnitTestBase {
   public static function getInfo() {
     return array(
       'name' => 'Entity rendering',
-      'description' => 'Tests the entity render controller.',
+      'description' => 'Tests the entity view builder.',
       'group' => 'Entity API',
     );
   }
@@ -38,21 +38,21 @@ public function setUp() {
   /**
    * Tests entity render cache handling.
    */
-  public function testEntityRenderCache() {
+  public function testEntityViewBuilderCache() {
     // Force a request via GET so we can get drupal_render() cache working.
     $request_method = $_SERVER['REQUEST_METHOD'];
     $this->container->get('request')->setMethod('GET');
 
-    $entity_test = $this->createTestEntity('entity_test_render');
+    $entity_test = $this->createTestEntity('entity_test');
 
     // Test that new entities (before they are saved for the first time) do not
     // generate a cache entry.
-    $build = $this->container->get('entity.manager')->getRenderController('entity_test_render')->view($entity_test, 'full');
+    $build = $this->container->get('entity.manager')->getViewBuilder('entity_test')->view($entity_test, 'full');
     $this->assertFalse(isset($build['#cache']), 'The render array element of new (unsaved) entities is not cached.');
 
     // Get a fully built entity view render array.
     $entity_test->save();
-    $build = $this->container->get('entity.manager')->getRenderController('entity_test_render')->view($entity_test, 'full');
+    $build = $this->container->get('entity.manager')->getViewBuilder('entity_test')->view($entity_test, 'full');
     $cid = drupal_render_cid_create($build);
     $bin = $build['#cache']['bin'];
 
@@ -83,19 +83,19 @@ public function testEntityRenderCache() {
   /**
    * Tests entity render cache with references.
    */
-  public function testEntityRenderCacheWithReferences() {
+  public function testEntityViewBuilderCacheWithReferences() {
     // Force a request via GET so we can get drupal_render() cache working.
     $request_method = $_SERVER['REQUEST_METHOD'];
     $this->container->get('request')->setMethod('GET');
 
     // Create an entity reference field and an entity that will be referenced.
-    entity_reference_create_instance('entity_test_render', 'entity_test_render', 'reference_field', 'Reference', 'entity_test_render');
-    entity_get_display('entity_test_render', 'entity_test_render', 'full')->setComponent('reference_field')->save();
-    $entity_test_reference = $this->createTestEntity('entity_test_render');
+    entity_reference_create_instance('entity_test', 'entity_test', 'reference_field', 'Reference', 'entity_test');
+    entity_get_display('entity_test', 'entity_test', 'full')->setComponent('reference_field')->save();
+    $entity_test_reference = $this->createTestEntity('entity_test');
     $entity_test_reference->save();
 
     // Get a fully built entity view render array for the referenced entity.
-    $build = $this->container->get('entity.manager')->getRenderController('entity_test_render')->view($entity_test_reference, 'full');
+    $build = $this->container->get('entity.manager')->getViewBuilder('entity_test')->view($entity_test_reference, 'full');
     $cid_reference = drupal_render_cid_create($build);
     $bin_reference = $build['#cache']['bin'];
 
@@ -108,12 +108,12 @@ public function testEntityRenderCacheWithReferences() {
     $this->assertTrue($this->container->get('cache.' . $bin_reference)->get($cid_reference), 'The entity render element for the referenced entity has been cached.');
 
     // Create another entity that references the first one.
-    $entity_test = $this->createTestEntity('entity_test_render');
+    $entity_test = $this->createTestEntity('entity_test');
     $entity_test->reference_field->entity = $entity_test_reference;
     $entity_test->save();
 
     // Get a fully built entity view render array.
-    $build = $this->container->get('entity.manager')->getRenderController('entity_test_render')->view($entity_test, 'full');
+    $build = $this->container->get('entity.manager')->getViewBuilder('entity_test')->view($entity_test, 'full');
     $cid = drupal_render_cid_create($build);
     $bin = $build['#cache']['bin'];
 
@@ -137,23 +137,23 @@ public function testEntityRenderCacheWithReferences() {
   /**
    * Tests entity render cache toggling.
    */
-  public function testEntityRenderCacheToggling() {
-    $entity_test = $this->createTestEntity('entity_test_render');
+  public function testEntityViewBuilderCacheToggling() {
+    $entity_test = $this->createTestEntity('entity_test');
     $entity_test->save();
 
     // Test a view mode in default conditions: render caching is enabled for
     // the entity type and the view mode.
-    $build = $this->container->get('entity.manager')->getRenderController('entity_test_render')->view($entity_test, 'full');
+    $build = $this->container->get('entity.manager')->getViewBuilder('entity_test')->view($entity_test, 'full');
     $this->assertTrue(isset($build['#cache']), 'A view mode with render cache enabled has the correct output.');
 
     // Test that a view mode can opt out of render caching.
-    $build = $this->container->get('entity.manager')->getRenderController('entity_test_render')->view($entity_test, 'test');
+    $build = $this->container->get('entity.manager')->getViewBuilder('entity_test')->view($entity_test, 'test');
     $this->assertFalse(isset($build['#cache']), 'A view mode with render cache disabled has the correct output.');
 
     // Test that an entity type can opt out of render caching completely.
     $entity_test_no_cache = $this->createTestEntity('entity_test_label');
     $entity_test_no_cache->save();
-    $build = $this->container->get('entity.manager')->getRenderController('entity_test_label')->view($entity_test_no_cache, 'full');
+    $build = $this->container->get('entity.manager')->getViewBuilder('entity_test_label')->view($entity_test_no_cache, 'full');
     $this->assertFalse(isset($build['#cache']), 'An entity type can opt out of render caching regardless of view mode configuration.');
   }
 
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityViewControllerTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityViewControllerTest.php
index ca3ac07..8adf8ef 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityViewControllerTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityViewControllerTest.php
@@ -39,11 +39,11 @@ public static function getInfo() {
 
   function setUp() {
     parent::setUp();
-    // Create some dummy entity_test_render entities.
+    // Create some dummy entity_test entities.
     for ($i = 0; $i < 2; $i++) {
       $random_label = $this->randomName();
-      $data = array('bundle' => 'entity_test_render', 'name' => $random_label);
-      $entity_test = $this->container->get('entity.manager')->getStorageController('entity_test_render')->create($data);
+      $data = array('bundle' => 'entity_test', 'name' => $random_label);
+      $entity_test = $this->container->get('entity.manager')->getStorageController('entity_test')->create($data);
       $entity_test->save();
       $this->entities[] = $entity_test;
     }
@@ -55,15 +55,15 @@ function setUp() {
    */
   function testEntityViewController() {
     foreach ($this->entities as $entity) {
-      $this->drupalGet('entity-test-render/' . $entity->id());
+      $this->drupalGet('entity_test/' . $entity->id());
       $this->assertRaw($entity->label());
       $this->assertRaw('full');
 
-      $this->drupalGet('entity-test-render-converter/' . $entity->id());
+      $this->drupalGet('entity_test_converter/' . $entity->id());
       $this->assertRaw($entity->label());
       $this->assertRaw('full');
 
-      $this->drupalGet('entity-test-render-no-view-mode/' . $entity->id());
+      $this->drupalGet('entity_test_no_view_mode/' . $entity->id());
       $this->assertRaw($entity->label());
       $this->assertRaw('full');
     }
@@ -73,30 +73,20 @@ function testEntityViewController() {
    * Tests field item attributes.
    */
   public function testFieldItemAttributes() {
-    // Create a text field which will be rendered with custom item attributes.
-    entity_create('field_entity', array(
-      'name' => 'field_test_text',
-      'entity_type' => 'entity_test_render',
-      'type' => 'text',
-    ))->save();
-    entity_create('field_instance', array(
-      'entity_type' => 'entity_test_render',
-      'field_name' => 'field_test_text',
-      'bundle' => 'entity_test_render',
-    ))->save();
-    entity_get_display('entity_test_render', 'entity_test_render', 'default')
+    // Make sure the test field will be rendered.
+    entity_get_display('entity_test', 'entity_test', 'default')
       ->setComponent('field_test_text', array('type' => 'text_default'))
       ->save();
 
     // Create an entity and save test value in field_test_text.
     $test_value = $this->randomName();
-    $entity = entity_create('entity_test_render', array());
+    $entity = entity_create('entity_test', array());
     $entity->field_test_text = $test_value;
     $entity->save();
 
     // Browse to the entity and verify that the attribute is rendered in the
     // field item HTML markup.
-    $this->drupalGet('entity-test-render/' . $entity->id());
+    $this->drupalGet('entity_test/' . $entity->id());
     $xpath = $this->xpath('//div[@data-field-item-attr="foobar" and text()=:value]', array(':value' => $test_value));
     $this->assertTrue($xpath, 'The field item attribute has been found in the rendered output of the field.');
 
@@ -105,13 +95,14 @@ public function testFieldItemAttributes() {
     \Drupal::moduleHandler()->install(array('rdf'));
     // Set an RDF mapping for the field_test_text field. This RDF mapping will
     // be turned into RDFa attributes in the field item output.
-    $mapping = rdf_get_mapping('entity_test_render', 'entity_test_render');
+    $mapping = rdf_get_mapping('entity_test', 'entity_test');
     $mapping->setFieldMapping('field_test_text', array(
       'properties' => array('schema:text'),
     ))->save();
     // Browse to the entity and verify that the attributes from both modules
     // are rendered in the field item HTML markup.
-    $this->drupalGet('entity-test-render/' . $entity->id());
+    \Drupal::entityManager()->getViewBuilder('entity_test')->resetCache(array($entity->id()));
+    $this->drupalGet('entity_test/' . $entity->id());
     $xpath = $this->xpath('//div[@data-field-item-attr="foobar" and @property="schema:text" and text()=:value]', array(':value' => $test_value));
     $this->assertTrue($xpath, 'The field item attributes from both modules have been found in the rendered output of the field.');
   }
diff --git a/core/modules/system/tests/modules/entity_test/config/entity.view_mode.entity_test.full.yml b/core/modules/system/tests/modules/entity_test/config/entity.view_mode.entity_test.full.yml
new file mode 100644
index 0000000..cb44396
--- /dev/null
+++ b/core/modules/system/tests/modules/entity_test/config/entity.view_mode.entity_test.full.yml
@@ -0,0 +1,5 @@
+id: entity_test.full
+label: Full
+status: '0'
+cache: '1'
+targetEntityType: entity_test
diff --git a/core/modules/system/tests/modules/entity_test/config/entity.view_mode.entity_test.test.yml b/core/modules/system/tests/modules/entity_test/config/entity.view_mode.entity_test.test.yml
new file mode 100644
index 0000000..aa9b27e
--- /dev/null
+++ b/core/modules/system/tests/modules/entity_test/config/entity.view_mode.entity_test.test.yml
@@ -0,0 +1,5 @@
+id: entity_test.test
+label: Test
+status: '0'
+cache: '0'
+targetEntityType: entity_test
diff --git a/core/modules/system/tests/modules/entity_test/config/entity.view_mode.entity_test_render.full.yml b/core/modules/system/tests/modules/entity_test/config/entity.view_mode.entity_test_render.full.yml
deleted file mode 100644
index 4ce40f1..0000000
--- a/core/modules/system/tests/modules/entity_test/config/entity.view_mode.entity_test_render.full.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-id: entity_test_render.full
-label: Full
-status: '0'
-cache: '1'
-targetEntityType: entity_test_render
diff --git a/core/modules/system/tests/modules/entity_test/config/entity.view_mode.entity_test_render.test.yml b/core/modules/system/tests/modules/entity_test/config/entity.view_mode.entity_test_render.test.yml
deleted file mode 100644
index 8593b8c..0000000
--- a/core/modules/system/tests/modules/entity_test/config/entity.view_mode.entity_test_render.test.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-id: entity_test_render.test
-label: Test
-status: '0'
-cache: '0'
-targetEntityType: entity_test_render
diff --git a/core/modules/system/tests/modules/entity_test/entity_test.module b/core/modules/system/tests/modules/entity_test/entity_test.module
index d14d19b..c7b987c 100644
--- a/core/modules/system/tests/modules/entity_test/entity_test.module
+++ b/core/modules/system/tests/modules/entity_test/entity_test.module
@@ -245,7 +245,6 @@ function entity_test_permission() {
 function entity_test_menu() {
   $items = array();
   $types = entity_test_entity_types();
-  $types[] = 'entity_test_render';
 
   foreach($types as $entity_type) {
     $items[$entity_type . '/add'] = array(
@@ -337,21 +336,6 @@ function entity_test_load($id, $reset = FALSE) {
  * @param bool $reset
  *   A boolean indicating that the internal cache should be reset.
  *
- * @return \Drupal\entity_test\Entity\EntityRenderTest
- *   The loaded entity object, or NULL if the entity cannot be loaded.
- */
-function entity_test_render_load($id, $reset = FALSE) {
-  return entity_load('entity_test_render', $id, $reset);
-}
-
-/**
- * Loads a test entity.
- *
- * @param int $id
- *   A test entity ID.
- * @param bool $reset
- *   A boolean indicating that the internal cache should be reset.
- *
  * @return \Drupal\entity_test\Entity\EntityTestRev
  *   The loaded entity object, or NULL if the entity cannot be loaded.
  */
@@ -552,9 +536,9 @@ function _entity_test_record_hooks($hook, $data) {
  */
 function entity_test_entity_prepare_view($entity_type, array $entities, array $displays) {
   // Add a dummy field item attribute on field_test_text if it exists.
-  if ($entity_type == 'entity_test_render') {
+  if ($entity_type == 'entity_test') {
     foreach ($entities as $entity) {
-      if ($entity->hasField('field_test_text')) {
+      if ($entity->hasField('field_test_text') && $displays[$entity->bundle()]->getComponent('field_test_text')) {
         foreach ($entity->get('field_test_text') as $item) {
           $item->_attributes += array('data-field-item-attr' => 'foobar');
         }
diff --git a/core/modules/system/tests/modules/entity_test/entity_test.routing.yml b/core/modules/system/tests/modules/entity_test/entity_test.routing.yml
index 79e1eef..4bab92e 100644
--- a/core/modules/system/tests/modules/entity_test/entity_test.routing.yml
+++ b/core/modules/system/tests/modules/entity_test/entity_test.routing.yml
@@ -1,24 +1,24 @@
 entity_test.render:
-  path: '/entity-test-render/{entity_test_render}'
+  path: '/entity_test/{entity_test}'
   defaults:
-    _entity_view: 'entity_test_render.full'
+    _entity_view: 'entity_test.full'
   requirements:
     _access: 'TRUE'
 
 entity_test.render_options:
-  path: '/entity-test-render-converter/{foo}'
+  path: '/entity_test_converter/{foo}'
   options:
     parameters:
       foo:
-        type: 'entity:entity_test_render'
+        type: 'entity:entity_test'
   defaults:
-    _entity_view: 'entity_test_render.full'
+    _entity_view: 'entity_test.full'
   requirements:
     _access: 'TRUE'
 
 entity_test.render_no_view_mode:
-  path: '/entity-test-render-no-view-mode/{entity_test_render}'
+  path: '/entity_test_no_view_mode/{entity_test}'
   defaults:
-    _entity_view: 'entity_test_render'
+    _entity_view: 'entity_test'
   requirements:
     _access: 'TRUE'
diff --git a/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/Entity/EntityTest.php b/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/Entity/EntityTest.php
index 392b564..efb4479 100644
--- a/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/Entity/EntityTest.php
+++ b/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/Entity/EntityTest.php
@@ -22,6 +22,7 @@
  *   controllers = {
  *     "storage" = "Drupal\entity_test\EntityTestStorageController",
  *     "list" = "Drupal\entity_test\EntityTestListController",
+ *     "view_builder" = "Drupal\entity_test\EntityTestViewBuilder",
  *     "access" = "Drupal\entity_test\EntityTestAccessController",
  *     "form" = {
  *       "default" = "Drupal\entity_test\EntityTestFormController"
@@ -35,8 +36,14 @@
  *     "id" = "id",
  *     "uuid" = "uuid",
  *     "bundle" = "type",
+ *     "label" = "name"
  *   },
- *   menu_base_path = "entity-test/manage/%entity_test"
+ *   menu_base_path = "entity_test/manage/%entity_test",
+ *   route_base_path = "admin/structure/entity-test/manage/{bundle}",
+ *   links = {
+ *     "canonical" = "/entity_test/{entity_test}",
+ *     "edit-form" = "/entity_test/manage/{entity_test}"
+ *   }
  * )
  */
 class EntityTest extends ContentEntityBase {
diff --git a/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/Entity/EntityTestLabel.php b/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/Entity/EntityTestLabel.php
index fc969c3..da3a31c 100644
--- a/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/Entity/EntityTestLabel.php
+++ b/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/Entity/EntityTestLabel.php
@@ -19,7 +19,7 @@
  *   module = "entity_test",
  *   controllers = {
  *     "storage" = "Drupal\entity_test\EntityTestStorageController",
- *     "render" = "Drupal\entity_test\EntityTestRenderController"
+ *     "view_builder" = "Drupal\entity_test\EntityTestViewBuilder"
  *   },
  *   base_table = "entity_test",
  *   render_cache = FALSE,
diff --git a/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/Entity/EntityTestRender.php b/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/Entity/EntityTestRender.php
deleted file mode 100644
index 138b50d..0000000
--- a/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/Entity/EntityTestRender.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-/**
- * @file
- * Contains \Drupal\entity_test\Entity\EntityTestRender.
- */
-
-namespace Drupal\entity_test\Entity;
-
-use Drupal\Core\Entity\Annotation\EntityType;
-use Drupal\Core\Annotation\Translation;
-
-/**
- * Defines a test entity class with a render controller.
- *
- * @EntityType(
- *   id = "entity_test_render",
- *   label = @Translation("Test render entity"),
- *   module = "entity_test",
- *   controllers = {
- *     "storage" = "Drupal\entity_test\EntityTestStorageController",
- *     "render" = "Drupal\entity_test\EntityTestRenderController",
- *     "access" = "Drupal\entity_test\EntityTestAccessController",
- *     "form" = {
- *       "default" = "Drupal\entity_test\EntityTestFormController"
- *     },
- *   },
- *   base_table = "entity_test",
- *   fieldable = TRUE,
- *   route_base_path = "admin/structure/entity-test-render/manage/{bundle}",
- *   entity_keys = {
- *     "id" = "id",
- *     "uuid" = "uuid",
- *     "label" = "name",
- *     "bundle" = "type"
- *   },
- *   links = {
- *     "canonical" = "/entity-test-render/{entity_test_render}",
- *     "edit-form" = "/entity-\_test_render/manage/{entity_test_render}/edit"
- *   }
- * )
- */
-class EntityTestRender extends EntityTest {
-
-}
diff --git a/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/EntityTestRenderController.php b/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/EntityTestViewBuilder.php
similarity index 67%
rename from core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/EntityTestRenderController.php
rename to core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/EntityTestViewBuilder.php
index 0c56533..6805765 100644
--- a/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/EntityTestRenderController.php
+++ b/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/EntityTestViewBuilder.php
@@ -2,22 +2,22 @@
 
 /**
  * @file
- * Contains \Drupal\entity_test\EntityTestRenderController.
+ * Contains \Drupal\entity_test\EntityTestViewBuilder.
  */
 
 namespace Drupal\entity_test;
 
-use Drupal\Core\Entity\EntityRenderController;
+use Drupal\Core\Entity\EntityViewBuilder;
 
 /**
- * Defines an entity render controller for a test entity.
+ * Defines an entity view builder for a test entity.
  *
  * @see \Drupal\entity_test\Entity\EntityTestRender
  */
-class EntityTestRenderController extends EntityRenderController {
+class EntityTestViewBuilder extends EntityViewBuilder {
 
   /**
-   * Overrides Drupal\Core\Entity\EntityRenderController::buildContent().
+   * {@inheritdoc}
    */
   public function buildContent(array $entities, array $displays, $view_mode, $langcode = NULL) {
     parent::buildContent($entities, $displays, $view_mode, $langcode);
diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Entity/Term.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Entity/Term.php
index acfd78f..a0b587b 100644
--- a/core/modules/taxonomy/lib/Drupal/taxonomy/Entity/Term.php
+++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Entity/Term.php
@@ -24,7 +24,7 @@
  *   module = "taxonomy",
  *   controllers = {
  *     "storage" = "Drupal\taxonomy\TermStorageController",
- *     "render" = "Drupal\taxonomy\TermRenderController",
+ *     "view_builder" = "Drupal\taxonomy\TermViewBuilder",
  *     "access" = "Drupal\taxonomy\TermAccessController",
  *     "form" = {
  *       "default" = "Drupal\taxonomy\TermFormController",
diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/TermRenderController.php b/core/modules/taxonomy/lib/Drupal/taxonomy/TermViewBuilder.php
similarity index 80%
rename from core/modules/taxonomy/lib/Drupal/taxonomy/TermRenderController.php
rename to core/modules/taxonomy/lib/Drupal/taxonomy/TermViewBuilder.php
index cf319d0..6e91524 100644
--- a/core/modules/taxonomy/lib/Drupal/taxonomy/TermRenderController.php
+++ b/core/modules/taxonomy/lib/Drupal/taxonomy/TermViewBuilder.php
@@ -2,22 +2,22 @@
 
 /**
  * @file
- * Definition of Drupal\taxonomy\TermRenderController.
+ * Definition of Drupal\taxonomy\TermViewBuilder.
  */
 
 namespace Drupal\taxonomy;
 
 use Drupal\Core\Entity\EntityInterface;
-use Drupal\Core\Entity\EntityRenderController;
+use Drupal\Core\Entity\EntityViewBuilder;
 use Drupal\entity\Entity\EntityDisplay;
 
 /**
  * Render controller for taxonomy terms.
  */
-class TermRenderController extends EntityRenderController {
+class TermViewBuilder extends EntityViewBuilder {
 
   /**
-   * Overrides Drupal\Core\Entity\EntityRenderController::buildContent().
+   * {@inheritdoc}
    */
   public function buildContent(array $entities, array $displays, $view_mode, $langcode = NULL) {
     parent::buildContent($entities, $displays, $view_mode, $langcode);
@@ -36,7 +36,7 @@ public function buildContent(array $entities, array $displays, $view_mode, $lang
   }
 
   /**
-   * Overrides \Drupal\Core\Entity\EntityRenderController::getBuildDefaults().
+   * {@inheritdoc}
    */
   protected function getBuildDefaults(EntityInterface $entity, $view_mode, $langcode) {
     $return = parent::getBuildDefaults($entity, $view_mode, $langcode);
@@ -49,7 +49,7 @@ protected function getBuildDefaults(EntityInterface $entity, $view_mode, $langco
   }
 
   /**
-   * Overrides \Drupal\Core\Entity\EntityRenderController::alterBuild().
+   * {@inheritdoc}
    */
   protected function alterBuild(array &$build, EntityInterface $entity, EntityDisplay $display, $view_mode, $langcode = NULL) {
     parent::alterBuild($build, $entity, $display, $view_mode, $langcode);
diff --git a/core/modules/tour/lib/Drupal/tour/Entity/Tour.php b/core/modules/tour/lib/Drupal/tour/Entity/Tour.php
index eaa58f8..f686d6d 100644
--- a/core/modules/tour/lib/Drupal/tour/Entity/Tour.php
+++ b/core/modules/tour/lib/Drupal/tour/Entity/Tour.php
@@ -22,7 +22,7 @@
  *   module = "tour",
  *   controllers = {
  *     "storage" = "Drupal\Core\Config\Entity\ConfigStorageController",
- *     "render" = "Drupal\tour\TourRenderController"
+ *     "view_builder" = "Drupal\tour\TourViewBuilder"
  *   },
  *   config_prefix = "tour.tour",
  *   entity_keys = {
diff --git a/core/modules/tour/lib/Drupal/tour/TourRenderController.php b/core/modules/tour/lib/Drupal/tour/TourViewBuilder.php
similarity index 88%
rename from core/modules/tour/lib/Drupal/tour/TourRenderController.php
rename to core/modules/tour/lib/Drupal/tour/TourViewBuilder.php
index aea0d33..9d09cfd 100644
--- a/core/modules/tour/lib/Drupal/tour/TourRenderController.php
+++ b/core/modules/tour/lib/Drupal/tour/TourViewBuilder.php
@@ -2,21 +2,21 @@
 
 /**
  * @file
- * Contains \Drupal\tour\TourRenderController.
+ * Contains \Drupal\tour\TourViewBuilder.
  */
 
 namespace Drupal\tour;
 
-use Drupal\Core\Entity\EntityRenderController;
+use Drupal\Core\Entity\EntityViewBuilder;
 use Drupal\Core\Entity\EntityInterface;
 
 /**
- * Provides a Tour render controller.
+ * Provides a Tour view builder.
  */
-class TourRenderController extends EntityRenderController {
+class TourViewBuilder extends EntityViewBuilder {
 
   /**
-   * Overrides \Drupal\Core\Entity\EntityRenderController::viewMultiple().
+   * {@inheritdoc}
    */
   public function viewMultiple(array $entities = array(), $view_mode = 'full', $langcode = NULL) {
     $build = array();
diff --git a/core/modules/user/lib/Drupal/user/Entity/User.php b/core/modules/user/lib/Drupal/user/Entity/User.php
index d6c80f9..4180551 100644
--- a/core/modules/user/lib/Drupal/user/Entity/User.php
+++ b/core/modules/user/lib/Drupal/user/Entity/User.php
@@ -22,7 +22,7 @@
  *   controllers = {
  *     "storage" = "Drupal\user\UserStorageController",
  *     "access" = "Drupal\user\UserAccessController",
- *     "render" = "Drupal\Core\Entity\EntityRenderController",
+ *     "view_builder" = "Drupal\Core\Entity\EntityViewBuilder",
  *     "form" = {
  *       "default" = "Drupal\user\ProfileFormController",
  *       "cancel" = "Drupal\user\Form\UserCancelForm",
diff --git a/core/modules/user/user.module b/core/modules/user/user.module
index 41dbae9..7d38270 100644
--- a/core/modules/user/user.module
+++ b/core/modules/user/user.module
@@ -169,7 +169,7 @@ function user_label($entity_type, $entity) {
 /**
  * Populates $entity->account for each prepared entity.
  *
- * Called by Drupal\Core\Entity\EntityRenderControllerInterface::buildContent()
+ * Called by Drupal\Core\Entity\EntityViewBuilderInterface::buildContent()
  * implementations.
  *
  * @param array $entities
@@ -1816,7 +1816,7 @@ function user_form_process_password_confirm($element) {
  * Implements hook_node_load().
  *
  * @todo Deprecated by $node->author, attached in
- *   \Drupal\node\NodeRenderController::buildContent(). Update code that
+ *   \Drupal\node\NodeViewBuilder::buildContent(). Update code that
  *   depends on these properties.
  */
 function user_node_load($nodes, $types) {
diff --git a/core/modules/views/lib/Drupal/views/Plugin/Derivative/ViewsEntityRow.php b/core/modules/views/lib/Drupal/views/Plugin/Derivative/ViewsEntityRow.php
index 0484149..6107be3 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/Derivative/ViewsEntityRow.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/Derivative/ViewsEntityRow.php
@@ -93,7 +93,7 @@ public function getDerivativeDefinition($derivative_id, array $base_plugin_defin
   public function getDerivativeDefinitions(array $base_plugin_definition) {
     foreach ($this->entityManager->getDefinitions() as $entity_type => $entity_info) {
       // Just add support for entity types which have a views integration.
-      if (isset($entity_info['base_table']) && $this->viewsData->get($entity_info['base_table']) && $this->entityManager->hasController($entity_type, 'render')) {
+      if (isset($entity_info['base_table']) && $this->viewsData->get($entity_info['base_table']) && $this->entityManager->hasController($entity_type, 'view_builder')) {
         $this->derivatives[$entity_type] = array(
           'id' => 'entity:' . $entity_type,
           'provider' => 'views',
diff --git a/core/modules/views/lib/Drupal/views/Tests/Handler/AreaEntityTest.php b/core/modules/views/lib/Drupal/views/Tests/Handler/AreaEntityTest.php
index e816a8a..5c5c086 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Handler/AreaEntityTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Handler/AreaEntityTest.php
@@ -53,7 +53,7 @@ public function testEntityAreaData() {
     $entity_info = $this->container->get('entity.manager')->getDefinitions();
 
     $expected_entities = array_filter($entity_info, function($info) {
-      return !empty($info['controllers']['render']);
+      return !empty($info['controllers']['view_builder']);
     });
 
     // Test that all expected entity types have data.
@@ -64,7 +64,7 @@ public function testEntityAreaData() {
     }
 
     $expected_entities = array_filter($entity_info, function($info) {
-      return empty($info['controllers']['render']);
+      return empty($info['controllers']['view_builder']);
     });
 
     // Test that no configuration entity types have data.
@@ -81,8 +81,8 @@ public function testEntityArea() {
     $entities = array();
     for ($i = 0; $i < 2; $i++) {
       $random_label = $this->randomName();
-      $data = array('bundle' => 'entity_test_render', 'name' => $random_label);
-      $entity_test = $this->container->get('entity.manager')->getStorageController('entity_test_render')->create($data);
+      $data = array('bundle' => 'entity_test', 'name' => $random_label);
+      $entity_test = $this->container->get('entity.manager')->getStorageController('entity_test')->create($data);
       $entity_test->save();
       $entities[] = $entity_test;
     }
@@ -101,9 +101,9 @@ public function testEntityArea() {
 
     // Change the view mode of the area handler.
     $view = views_get_view('test_entity_area');
-    $item = $view->getItem('default', 'header', 'entity_entity_test_render');
+    $item = $view->getItem('default', 'header', 'entity_entity_test');
     $item['view_mode'] = 'test';
-    $view->setItem('default', 'header', 'entity_entity_test_render', $item);
+    $view->setItem('default', 'header', 'entity_entity_test', $item);
 
     $preview = $view->preview('default', array($entities[1]->id()));
     $this->drupalSetContent(drupal_render($preview));
diff --git a/core/modules/views/lib/Drupal/views/Tests/QueryGroupByTest.php b/core/modules/views/lib/Drupal/views/Tests/QueryGroupByTest.php
index 280000c..fcd9e08 100644
--- a/core/modules/views/lib/Drupal/views/Tests/QueryGroupByTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/QueryGroupByTest.php
@@ -24,7 +24,7 @@ class QueryGroupByTest extends ViewUnitTestBase {
    *
    * @var array
    */
-  public static $modules = array('entity_test', 'system', 'field', 'user');
+  public static $modules = array('entity', 'entity_test', 'system', 'field', 'user');
 
   /**
    * The storage controller for the test entity type.
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_area.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_area.yml
index bb30663..5d06868 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_area.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_area.yml
@@ -11,18 +11,18 @@ display:
         pager_options: '0'
         sorts: '0'
       header:
-        entity_entity_test_render:
-          field: entity_entity_test_render
-          id: entity_entity_test_render
+        entity_entity_test:
+          field: entity_entity_test
+          id: entity_entity_test
           table: views
           entity_id: 1
           view_mode: full
           plugin_id: entity
           provider: views
       footer:
-        entity_entity_test_render:
-          field: entity_entity_test_render
-          id: entity_entity_test_render
+        entity_entity_test:
+          field: entity_entity_test
+          id: entity_entity_test
           table: views
           entity_id: '!1'
           view_mode: full
diff --git a/core/modules/views/views.views.inc b/core/modules/views/views.views.inc
index 9b49b92..b3af1d4 100644
--- a/core/modules/views/views.views.inc
+++ b/core/modules/views/views.views.inc
@@ -117,7 +117,7 @@ function views_views_data() {
   // Registers an entity area handler per entity type.
   foreach (entity_get_info() as $entity_type => $entity_info) {
     // Exclude entity types, which cannot be rendered.
-    if (!empty($entity_info['controllers']['render'])) {
+    if (!empty($entity_info['controllers']['view_builder'])) {
       $label = $entity_info['label'];
       $data['views']['entity_' . $entity_type] = array(
         'title' => t('Rendered entity - @label', array('@label' => $label)),
diff --git a/core/tests/Drupal/Tests/Core/Entity/Controller/EntityViewControllerTest.php b/core/tests/Drupal/Tests/Core/Entity/Controller/EntityViewControllerTest.php
index 943a1d5..59a60fe 100644
--- a/core/tests/Drupal/Tests/Core/Entity/Controller/EntityViewControllerTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/Controller/EntityViewControllerTest.php
@@ -32,8 +32,8 @@ public static function getInfo() {
    */
   public function testView() {
 
-    // Mock a render controller.
-    $render_controller = $this->getMockBuilder('Drupal\entity_test\EntityTestRenderController')
+    // Mock a view builder.
+    $render_controller = $this->getMockBuilder('Drupal\entity_test\EntityTestViewBuilder')
       ->disableOriginalConstructor()
       ->getMock();
     $render_controller->expects($this->any())
@@ -45,11 +45,11 @@ public function testView() {
       ->disableOriginalConstructor()
       ->getMock();
     $entity_manager->expects($this->any())
-      ->method('getRenderController')
+      ->method('getViewBuilder')
       ->will($this->returnValue($render_controller));
 
-    // Mock an 'entity_test_render' entity.
-    $entity = $this->getMockBuilder('Drupal\entity_test\Entity\EntityTestRender')
+    // Mock an 'entity_test' entity.
+    $entity = $this->getMockBuilder('Drupal\entity_test\Entity\EntityTest')
       ->disableOriginalConstructor()
       ->getMock();
 
