Is there a way to use RemObjects for the client server architecture but keep the DA schemas (or equivalent) on the client side

Is there a way to use RemObjects for database access but maintain the database schemas in the client source?
Our current approach is server side DA schemas but this is a bottleneck for VCS/team development. Development without constant server changes would also mean faster development for us. The data model can be shared client code for example.

I saw a sample which I believed was client code in another post

I do not find these kind of samples in my installed remobjects sample code however.
Where does your code example (see below) come from?
Do you have a fully working example for this?
My main focus is .NET RO client to .NET RO server communication but a solution also allowing delphi RO client is a plus.

var query = from x in dataModule.**DataAdapter.GetTable<Orders>**() select x;


Schema is by definition a server-side entity. It is set of definitions describing how to convert client-sent requests to database queries.

During the development cycle you can either use Relativity Server as data source or create your own custom server application that would load .daSchema file on startup (or even to reload that file every, say, 5 minutes). So the development cycle would look like this:

  1. You change the .daSchema file
  2. You continue to work on the client code
  3. Server app reloads the .daSchema file and uses the updated Schema

Same server can provide data for both .NET and Delphi clients (and even to iOS, Android or Mac clients)

If needed, you need to first read what is the LINQ and how to use it. This is quite a big topic by itself: Language-Integrated Query (LINQ) (C#) | Microsoft Docs

Then take a look at this article: DA LINQ (.NET)

And then go over this tutorial (it accesses a Relativity Server data source from a WinForms application using DA LINQ): ToDo List Tutorial (Windows Forms)



Can you elaborate on this server app reloads the .daSchema?
I found documentation about it here How to Dynamically load DA Schema while server is running? (Delphi Win32) - #7 by scherb
Which class has this LoadFromFile function which I can give a .daSchema?
and how can I access/configure this class from/on my RemObjects.DataAbstract.Server.DataAbstractService?


Sample application: (50.3 KB)

Points of interest:

  1. DataService: The BeforeFindServiceSchema event used to provide custom Schema instance
  2. SchemaWatcher.cs - 2 classes, one reloads Schema if it seems to be changed ( SchemaLoader ), another class is the one that triggers the reload process and provides Schema (either current one or reloaded one) to the data service (‘SchemaProvider’)
  3. The way used to wire Schema Watcher, Schema Provider and Dara Service together ( Dependency Injection support (.NET) ) :

			var schemaLoader = new SchemaLoader("SchemaAutoReloadDataset.daSchema");

			var container = new SimpleContainer();

			container.RegisterSingleton<ISchemaProvider, SchemaProvider>();


			server.DependencyResolver = container;

When run, the server app check the “SchemaAutoReloadDataset.daSchema” file for changes and reloads it if needed, deserializes Schema from this file and provides this Schema to the Data Service