In the first chapter of this thesis, I briefly introduce the topic to the reader with some important historical-like claims, and I explain why I have selected this topic.
The next stage is dedicated to general description of NoSQL databases. In addition to their definition, I write some words about their differences as compared with traditional relational databases, and that how to decide what type of datastore is the best for a given use case. Henceforth, I present the major members of the database family in question, as well the differences between them, and finally I take up the question of graph databases in details. I introduce and describe a widespread graph based data model, the so-called property graph. Before I got up my own solution, LINQ-to-Gremlin, I had analyzed some other existing solutions in this topic, and the experiences that were gained during the research had effects on my work. The third stage is to summarize these all. After those I solely focus on the class library made by on my own from different points of view. Firstly – in the fourth chapter – I write a little bit about what were the expressed purposes and requirements regarding the expectant solution. Then, the fifth stage summarizes the design phase of the work process. Starting from a really high level architectural view, zooming in and in, I give a detailed overview about the components of the class library and their relationships. The sixth chapter highlights the most interesting aspects of the implementation as such, starting from how a Gremlin language expression is generated from an expression expressed in LINQ, and how a materialized result set fitting into the application’s model is arisen from that. The second last, i. e. the seventh stage is the review of verification and validation of the complete product. A simple test application and the test cases inside it that were made for the class library are covered here. The thesis ends with evaluation of the work. It is about the value of some source code metrics, inevitable limitations and their explanations, difficulties appeared during the development, and finally about the improvement possibilities.