# Step 1: Database Definition

> The first step in using the eXtremeDB C# API is to define the classes that you’ll want to manage in the eXtremeDB database. The C# API uses the C# class syntax, with attributes. At run-time, C# reflection is used to discover the classes with their attributes and build up an eXtremeDB database dictionary. Once created, the dictionary is subsequently used by the eXtremeDB runtime. Therefore, C# reflection is a one-time event when the database is first created or opened.

> SDK sample `samples/csharp/Open` illustrates how to open a simple In-Memory database. The database class has attribute `[Persistent]` to indicate that this class is to be managed by the eXtremeDB runtime. For example:

>         [Persistent] // Class will be stored in eXtremeDB database
>         class Obj
>         {
>         #pragma warning disable 0649
>             public int i4;
>         #pragma warning restore 0649
>         };