Title: RavenDB

Date: March 15th, 2013
Clarion Date:

Download Recording

Hosts: Arnold Young, John Hickey, Lisa Daugherty, Mike Hanson

Presenter: Dries Driessen


Download link for the files we'll be using today:

RavenDB is a database built in .NET and has an API based on the HTTP protocol. I have built a stack of classes around the API:

  • Bufferclass - a class around a dynamic string. It is auto-growing, can serialize to a file and can convert from ANSI to UTF8.
  • JSONObject class - handles building JSON objects and stringify the object (you might remember this one from my previous session). Since documents are stored as JSON strings, this class is used throughout the entire stack.
  • WebClientClass - a classwrapper around the WinHTTP API of Windows. This part could also be handled by a Nettalk webclient. I have created an interface to enable developers to use their own webclient.
  • RavenClientClass - a class that can handle the normal database tasks such as get, add, put and delete documents. This class will call the WebClient interface to handle the HTTP call. The methods of this class reflect the RavenDB API, and don't resemble the Clarion API much.
  • RavenDBClass - a class that does resemble the Clarion Filemanager way of interacting with databases: Update, Delete, Fetch etc.
  • EntityMapper - a class that facilitates storing Clarion Groups to the database and getting them back from the database.
  • ClassEntityMapper - a class that facilitates storing Clarion Classes to the database and getting them back from the database.
  • FileEntityMapper - a class that facilitates storing Clarion Files to the database and getting them back from the database. A document is usually a tree of related data. This class supports such a tree of file records in one document.
  • a BrowseClass extension to transform a regular Clarion browse to a RavenDB enabled browse.

I'll be covering:

  • RavenDB, a document database. Short introduction
  • Why RavenDB?
  • Install RavenDB
  • Short overview of management studio
  • BufferClass, JSONObject, WebClientClass: the basics
  • RavenClientClass: Putting and getting our first document
  • RavenDBClass: familiar database methods
  • EntityMappers: wrapper for groups, classes and files
  • FileEntityMapper in a browse

If there’s time left and anyone is still interested, we can take a deeper look into the WebClientClass. It includes many API calls, unicode conversions etc.
The classes and the presentation-sheets will be available for free download.


Old Business: None

New Business: None


  • PROP:NextField


  • Solid State Drives: Tips for Reducing Used Capacity (Link) - thanks to Kelly Major and Larry Sand for this tip!

Topics Covered:

Additional Downloads: None

Slide Show:

Time Events:

Webinar Introduction

Webinar Recording

Fourth Rule Of The Webinar:


Click on the Discussions button next to the EDIT button at the top left, to add to the discussion!
Subject Author Replies Views Last Message
No Comments