RavenDB 2.x Beginner’s Guide


RavenDB 2.x Beginner’s Guide
eBook: $29.99
Formats: PDF, PacktLib, ePub and Mobi formats
$25.49
save 15%!
Print + free eBook + free PacktLib access to the book: $79.98    Print cover: $49.99
$49.99
save 37%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Overview
Table of Contents
Author
Support
Sample Chapters
  • Build high performance NoSQL .NET based applications with step-by-step practical examples
  • Master advanced RavenDB indexes and queries
  • Create objects in .NET and map them to RavenDB

 

Book Details

Language : English
Paperback : 356 pages [ 235mm x 191mm ]
Release Date : September 2013
ISBN : 1783283793
ISBN 13 : 9781783283798
Author(s) : Khaled Tannir
Topics and Technologies : All Books, Big Data and Business Intelligence, Beginner's Guides, Open Source

Table of Contents

Preface
Chapter 1: Getting Started with RavenDB
Chapter 2: RavenDB Management Studio
Chapter 3: RavenDB.NET Client API
Chapter 4: RavenDB Indexes and Queries
Chapter 5: Advanced RavenDB Indexes and Queries
Chapter 6: Advanced RavenDB Document Capabilities
Chapter 7: RavenDB Administration
Chapter 8: Deploying RavenDB
Chapter 9: Scaling-out RavenDB
Chapter 10: RavenDB Profiling
Chapter 11: RavenDB HTTP API
Chapter 12: Putting It All Together
Pop Quiz Answers
Index
  • Chapter 1: Getting Started with RavenDB
    • Understanding the basics of NoSQL Databases
      • Types of NoSQL Databases
    • What is RavenDB?
    • From relational databases to RavenDB
    • Why RavenDB?
    • How RavenDB works?
    • Anatomy of a Document
    • The JSON format
    • Downloading and installing RavenDB
      • What do you need to run RavenDB?
    • Time for action – downloading and installing RavenDB
    • Running RavenDB server in the Console mode
      • Exploring the Start.cmd file
    • Time for action – exploring the Start.cmd file
      • Configuring the RavenDB server
      • Launching the RavenDB server in the Console mode
    • Time for action – launching RavenDB in the Console mode
      • Creating your first RavenDB database
    • Time for action – creating a new database and adding sample data
      • Shutting down the RavenDB server in the Console mode
    • Time for action – shutting down RavenDB
    • Summary
    • Chapter 2: RavenDB Management Studio
      • Introducing the RavenDB Management Studio
      • Management Studio's multi-databases feature
        • Creating a new database
      • Time for action – creating a new database
      • Management Studio's Documents screen
      • Time for action – creating your first document
      • Time for action – loading a document
      • Time for action – searching for a document
        • Exporting a database to a CSV file
      • Time for action – exporting documents to a CSV file
        • RavenDB documents metadata
      • Time for action – adding a custom metadata key
      • Management Studio's Collections screen
      • Time for action – modifying a document
      • Management Studio's Indexes screen
        • Creating your first Index
      • Time for action – creating an Index
        • Executing a query against an Index
      • Time for action – querying an Index
        • Editing an Index
      • Time for action – editing an Index
        • The Query Index screen
      • Time for action – querying an Index
        • Creating a Dynamic Query
      • Time for action – creating a Dynamic Query
      • Management Studio's Patch screen
      • Time for action – patching a document
      • Management Studio's Tasks screen
      • Time for action – importing external data using a CSV file
      • Management Studio's Alerts screen
      • Management Studio's Logs screen
      • Time for action – exploring the Logs screen
      • Viewing the database settings
      • Time for action – viewing the database's active bundles
        • The System database settings
      • Time for action – opening the System database's Settings page
      • Bundles
      • Time for action – enabling the Periodic Backup feature
      • Doing more with the Management Studio
        • Choosing the columns
      • Time for action – customizing the columns
        • Copying the document to the clipboard
      • Time for action – copying the data document to the clipboard
        • Deleting the Documents, Collections, Indexes, or Databases
      • Time for action – deleting a database using the Management Studio
      • Summary
      • Chapter 3: RavenDB.NET Client API
        • The RavenDB .NET Client API
        • Setting up your development environment
        • Time for action – installing NuGet Package Manager
        • Creating a simple application
        • Time for action – adding RavenDB Client to a Visual Studio project
        • Connecting to RavenDB
        • Time for action – connecting to RavenDB
          • Interacting with RavenDB using the .NET Client API
      • Loading a document
      • Time for action – loading a document
      • Inserting a new document
      • Time for action – inserting a new document
      • Updating a document
      • Time for action – updating a document
      • Deleting a document
      • Time for action – deleting a document
      • Querying a documents collection
      • Time for action – querying a documents collection
      • Summary
        • Chapter 4: RavenDB Indexes and Queries
          • The RavenDB indexes
          • RavenDB Map/Reduce implementation
            • The types of RavenDB indexes
          • RavenDB dynamic indexes
            • Querying dynamic indexes
          • Time for action – querying a dynamic index
            • Querying temporary indexes
          • Time for action – querying a temporary index
            • Managing temporary indexes
          • Time for action – managing temporary indexes
          • RavenDB static indexes
            • Creating your first Map function
          • Time for action – defining a Map function for an index
            • Creating your first Reduce function
          • Time for action – adding a Reduce function to an index
            • Using TransformResults in an index
          • Time for action – adding a TransformResults to the index
          • RavenDB stale indexes
            • Checking for stale index results
          • Time for action – checking for stale index results
            • Waiting for non-stale index results
          • Time for action – explicitly waiting for a non-stale index result
          • Summary
          • Chapter 5: Advanced RavenDB Indexes and Queries
            • The RavenDB AbstractIndexCreationTask class
            • Creating indexes using the AbstractIndexCreationTask class
            • Time for action – creating indexes using AbstractIndexCreationTask class
              • Using the AbstractIndexCreationTask and ReduceResult
            • Time for action – creating indexes using the ResultReduce class
              • Using TransformResults function
            • Time for action – using the TransformResults function
            • Creating multi map indexes
            • Time for action – creating multimap indexes
              • Using indexes to search over documents
            • Full-text and exact matching search
            • Time for action – creating a full-text searching index
              • Multiple field searching and search options
            • Time for action – creating multifields searching index
              • Using a custom analyzer for searching
            • Time for action – using a custom analyzer
            • Paging a query's results
            • Time for action – paging a query's results
            • Summary
            • Chapter 6: Advanced RavenDB Document Capabilities
              • RavenDB attachments
                • Storing attachments
              • Time for action – using attachments to store images
                • Retrieving attachments
              • Time for action – retrieving stored attachments
                • Update and delete attachments
              • Time for action – retrieving and updating an attachment's metadata
              • Handling documents relationships
                • Using Include to preload documents
              • Time for action – using Include to reduce query calls
                • Indexing related documents
              • Time for action – indexing related documents
              • Patching documents
                • Patching documents using ScriptedPatchRequest
              • Time for action – applying a ScriptedPatchRequest
                • Patching documents using PatchRequest
              • Time for action – using PatchRequest to add a new field to a document
              • Summary
              • Chapter 7: RavenDB Administration
                • RavenDB configuration options
                  • RavenDB optimizing key concepts
                • Time for action – optimizing RavenDB performances
                • Backing up RavenDB databases
                  • Backing up databases using the RavenDB backup tool
                • Time for action – backing up the World database
                  • Backing up a database using VSS
                  • Backing up a database using Management Studio
                • Time for action – backing up the World database using Management Studio
                • Restoring RavenDB databases
                  • Restoring databases using the command line
                • Time for action – restoring the World database using the command line
                  • Restoring databases using Management Studio
                • Time for action – restoring the World database using Management Studio
                • Exporting and importing RavenDB databases
                  • Exporting RavenDB databases
                • Time for action – exporting the World database using Smuggler
                  • Importing RavenDB databases
                • Time for action – importing the World database using Smuggler
                  • Deleting RavenDB databases
                • RavenDB server bundles
                  • Replication bundles
                    • RavenDB replication bundle
                • Time for action – creating a master to slave database replication
                  • SQL replication bundle
              • Time for action – replicating to Microsoft SQL Express
                • RavenDB authorization bundle
              • Time for action – authenticating and authorizing
              • Enabling RavenDB logging
              • Time for action – enabling RavenDB logging
              • Upgrading the RavenDB server
              • Time for action – upgrading the RavenDB server
              • Summary
                • Chapter 8: Deploying RavenDB
                  • RavenDB deployment strategies
                  • Running RavenDB as a Windows Service
                    • Installing the RavenDB service
                  • Time for action – running RavenDB as a Windows Service
                    • Uninstalling the RavenDB service
                  • Time for action – uninstalling the RavenDB service
                  • RavenDB and IIS
                    • Running RavenDB from an IIS virtual directory
                  • Time for action – running RavenDB from an IIS virtual directory
                    • Running RavenDB as an IIS application
                  • Time for action – running RavenDB as an IIS application
                  • RavenDB Embedded mode
                    • Embedding RavenDB
                  • Time for action – running RavenDB in Embedded mode
                    • Memory embedded RavenDB
                  • Time for action – running RavenDB in memory
                  • Summary
                  • Chapter 9: Scaling-out RavenDB
                    • What is scaling-out?
                    • RavenDB sharding
                    • Time for action – preparing RavenDB for sharding
                      • RavenDB sharding – the blind mode
                    • Time for action – implementing RavenDB sharding (the blind mode)
                      • RavenDB sharding – the smart mode
                    • Time for action – implementing RavenDB sharding (the smart mode)
                    • Mixing sharding and replication
                    • Summary
                    • Chapter 10: RavenDB Profiling
                      • What is profiling?
                        • RavenDB profiler
                      • Time for action – enabling the RavenDB profiler
                        • Using the profiler information
                        • RavenDB visual host
                      • Time for action – running the RavenDB visual host
                      • RavenDB workload simulator/stress tests
                      • Summary
                      • Chapter 11: RavenDB HTTP API
                        • The RavenDB HTTP API
                        • Understanding REST
                        • Anatomy of the RavenDB REST request URL
                        • The RESTClient tool
                        • Time for action – downloading and launching the RESTClient tool
                        • The GET request
                        • Time for action – performing a GET request
                        • The PUT request
                        • Time for action – granting access to perform a PUT request
                        • Time for action – performing a PUT request
                        • The POST request
                        • Time for action – performing a POST request
                        • The PATCH request
                        • Time for action – performing a Patch request
                        • The DELETE request
                        • Time for action – performing a Delete request
                        • Getting multiple documents with a single request
                        • Time for action – getting multiple documents within a single request
                        • Querying an Index
                        • Time for action – querying an Index
                        • Summary
                        • Chapter 12: Putting It All Together
                          • A word about ASP.NET MVC
                          • Application architecture key concepts
                          • Creating an ASP.NET MVC 4 project with RavenDB
                            • Getting connected to RavenDB
                          • Time for action – creating the World ASP.NET MVC application
                            • Adding Models
                          • Time for action – adding the World application's Models
                            • Adding Controllers
                          • Time for action – adding the Controllers
                            • Adding Views
                          • Time for action – adding the Views
                            • Launching the World application
                          • Time for action – launching the World application
                          • Doing more with the World application
                            • Creating the RavenDB Indexes automatically
                          • Time for action – creating indexes automatically
                            • Adding a page navigation bar
                          • Time for action – the paging query <Country>() result
                            • Adding the Country master/details View
                          • Time for action – creating the Country master/details View
                            • Adding the search Cities view
                          • Time for action – implementing the Search view
                          • Summary
                          • Pop Quiz Answers
                            • Chapter 3, RavenDB.NET Client API
                            • Chapter 4, RavenDB Indexes and Queries
                            • Chapter 5, Advanced RavenDB Indexes and Queries
                            • Chapter 7, RavenDB Administration
                            • Chapter 9, Scaling-out RavenDB
                            • Chapter 11, RavenDB HTTP API

                            Khaled Tannir

                            Khaled Tannir has been working with computers since 1980. He began programming with the legendary Sinclair Zx81 and later with Commodore home computer products (Vic 20, Commodore 64, Commodore 128D, and Amiga 500). He has a Bachelor's degree in Electronics, a Master's degree in System Information Architectures, in which he graduated with a professional thesis, and completed his education with a Master of Research degree. He is a Microsoft Certified Solution Developer (MCSD) and has more than 20 years of technical experience leading the development and implementation of software solutions and giving technical presentations. He now works as an independent IT consultant and has worked as an infrastructure engineer, senior developer, and enterprise/solution architect for many companies in France and Canada. With significant experience in Microsoft .Net, Microsoft Server Systems, and Oracle Java technologies, he has extensive skills in online/offline applications design, system conversions, and multilingual applications in both domains: Internet and Desktops. He is always researching new technologies, learning about them, and looking for new adventures in France, North America, and the Middle-east. He owns an IT and electronics laboratory with many servers, monitors, open electronic boards such as Arduino, Netduino, RaspBerry Pi, and .Net Gadgeteer, and some smartphone devices based on Windows Phone, Android, and iOS operating systems. In 2012, he contributed to the EGC 2012 (International Complex Data Mining forum at Bordeaux University, France) and presented, in a workshop session, his work on "how to optimize data distribution in a cloud computing environment". This work aims to define an approach to optimize the use of data mining algorithms such as k-means and Apriori in a cloud computing environment. He is the author of RavenDB 2.x Beginner's Guide, Packt Publishing. He aims to get a PhD in Cloud Computing and Big Data and wants to learn more and more about these technologies. He enjoys taking landscape and night time photos, travelling, playing video games, creating funny electronic gadgets with Arduino/.Net Gadgeteer, and of course, spending time with his wife and family. You can reach him at contact@khaledtannir.net.
                            Sorry, we don't have any reviews for this title yet.

                            Code Downloads

                            Download the code and support files for this book.


                            Submit Errata

                            Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.

                            Sample chapters

                            You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

                            Frequently bought together

                            RavenDB 2.x Beginner’s Guide +    Oracle Application Express 3.2 - The Essentials and More =
                            50% Off
                            the second eBook
                            Price for both: €36.65

                            Buy both these recommended eBooks together and get 50% off the cheapest eBook.

                            What you will learn from this book

                            • Get RavenDB up and running on your local machine or server, and discover the RavenDB Management Studio
                            • Interact with RavenDB using the .NET Client API and REST HTTP API
                            • Map .NET objects to RavenDB documents
                            • Create and query dynamic indexes, and single-map and multi-map static indexes
                            • Implement map/reduce to process large datasets
                            • Learn and implement paging, exact matching, and full-text search queries
                            • Host RavenDB within IIS and run it as a Windows service or in embedded mode
                            • Secure RavenDB using a replication bundle and optimize it with sharding

                             

                            In Detail

                            RavenDB is a second generation document database written in .NET, offering a flexible data model designed to address requirements coming from real-world systems. It is different from the other document databases around, as with RavenDB you can get up and running in a few minutes, and that includes grasping all the basics. It allows you to build high-performance, low-latency applications with ease and efficiency.

                            RavenDB 2.x Beginner’s Guide introduces RavenDB concepts and teaches you everything, right from installing RavenDB, to creating documents, and querying indexes. This book will help you take advantage of powerful, document-oriented NoSQL databases and build a solid foundation on which you can create your .NET applications.

                            This book presents RavenDB, the .NET document-oriented NoSQL database, through a series of clear and practical exercises that will help you to take advantage of this database server.

                            The book starts off with an introduction to RavenDB and its Management Studio. You will then move ahead and learn how to quickly and efficiently build high performance, NoSQL document-oriented .NET applications using the .NET client API or the HTTP REST API. Next, Dynamic and static indexes that use map/reduce to process datasets are covered. You will then see how to create and query these indexes, with the help of detailed examples. You will also learn how to deploy your RavenDB server in a production environment and how to optimize and secure it.

                            With numerous practical examples, RavenDB 2.x Beginner’s Guide teaches you everything you need to know for building high performance .NET document-oriented NoSQL databases.

                            Approach

                            Written in a friendly, example-driven Beginner’s Guide format, there are plenty of step-by-step instructions and examples that are designed to help you get started with RavenDB.

                            Who this book is for

                            If you are a .NET developer, new to document-oriented databases, and you wish to learn how to build applications using NoSQL databases, then this book is for you. Experience with relational database systems will be helpful, but not necessary.

                            Code Download and Errata
                            Packt Anytime, Anywhere
                            Register Books
                            Print Upgrades
                            eBook Downloads
                            Video Support
                            Contact Us
                            Awards Voting Nominations Previous Winners
                            Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
                            Resources
                            Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software