UltraLite allows you to build a small-footprint relational database solution, without requiring the additional overhead of setting up a separate database server. Instead, UltraLite programming interfaces use one of two library types:
UltraLite in-process runtime library In UltraLite, the runtime and the application are part of the same process, which makes the database specific to the application. For all platforms, the runtime manages UltraLite databases as well as built-in synchronization operations. The UltraLite runtime can manage a maximum of 14 databases at any one time.
UltraLite database engine client library For Windows desktop and Windows CE platforms, a separate executable exists that provides concurrent database/application connections. Each application must use a client library when using the UltraLite engine. This client library allows each application to communicate with the UltraLite engine. The UltraLite engine requires more system resources than the UltraLite runtime and may yield lower performance.
Ensure that you do not exceed the concurrent connection limits supported by the UltraLite engine. For example:
Additionally, the number of SQLCAs you can use with the UltraLite.NET API is restricted to 31 (one SQLCA per database manager and one SQLCA per connection). However components like UltraLite for AppForge, just use one SQLCA per database manager.