We're currently working on getting a new major release of the ADO/.NET Provider ready. This new Version 3 has the following immediate goals for its release:

  1. Major performance improvements over networks
  2. Possibility of out-of-phase releases in regards to NexusDB
  3. Support for "Embedded Mode" using one (or more) Server-DLLs
  4. Support for custom encrypted databases using and optional Encryption-DLL
  5. VS2010 support Data View/Object support

Additionally we're targeting the following lifetime goals for the V3 Provider"

  1. Entity Framework support
  2. LINQ support (via EF)
  3. VS2010 Table/Index/Function editors
  4. ASP.NET Profile Provider support

To achieve these goals we will provide a number of free EEP releases that will add functionality step by step. We think this is the best way to introduce our customers to the new versions and at the same time make sure that we're going the right way and provide a release that meets feature and quality expectations.

EEP 1

As a first release EEP1 targets points 1, 2 and 3 of the immediate goals list. It uncouples the transport used to communicate between server and ADO Provider and introduces major changes to the communication that should result in major performance improvements when used over a network.

For this purpose we changed the server infrastructure and replaced the original built in ADO.NET Connector with a stub class which loads a DLL based equivalent of the transport. From a technical perspective the DLL has a built in remote server engine which can connect via a TCP (winsock) transport to the actual server. While this might sound like a disadvantage, extensive tests have show that with this DLL loaded directly on the server and using the local IP (127.0.0.1) there is no recognizable negative performance impact compared to the current V2 version.

The new transport has (for the moment) three relevant settings:

  • Local Port: the port the ADO.NET provider connects to. This is the equivalent of the old Port setting.
  • Server Name: the server name which the internal remote server engine connects to. This is typically nexusdb@127.0.0.1
  • Server Port: the port of the server which the internal remote server engine connects to. This is in default cases 16000, but always has to match the TCP/IPV4 transport

As you can see from the settings the new DLL is working more or less as a proxy, receiving and answering request from ADO.NET by translating and passing on the request via a TCP/IPv4 transport to a server. You can also see immediately the technical possibility of this approach to

  • redirect the request to a completely different server
  • replace or redirect the requests to an embedded Serverengine/SQL Engine combo

This brings us to point 3 on the list of immediate goals, the embedded server engine. The transport DLL in EEP1 is build with V3 and has such an embedded engine combo (server engine, sql engine, trigger monitor, ...) built in. It can be activated by setting the Server Name in of the transport (in both, the interactive as well as web server UI) to "Internal". Once this is set all requests coming from the .NET provider will be executed by the embedded server. Please note that in this case the database part in the connection string of the ADO.NET application needs to point to a folder and not to an alias. If you omit to do that you will get a "Alias not found" error. And yes, currently the DLL needs to be still loaded into the server cause the provider is missing the possibility to load it on it's own. This possibility will be added in EEP2.

How to use?

You NEED to use the supplied server, connector dll (put into the server folder!) and the ADO/.NET Provider for testing. Trying to use any older version of either of the supplied parts will result in errors and potentially even in data corruption. Remember to backup the programs and data before using any EEP.

Usage is fairly simple. Replace your nxserver.exe with the supplied one and copy the connector DLL(s) into the server binary folder. Start the server and (if necessary) adjust the settings of the "ADO/.NET Connector" in the interactive or web UI. Then install the ADO/.NET provider and start using it in the normal .NET way.

Feedback

Please direct any feedback on this version to our nexusdb.public.support.dotnetprovider newsgroup or the ADO/.NET Provider Forum. Please clearly state the version and build that you're referring to.

Thanks for your participation!!

AttachmentSize
NexusDB_V3_ADO_EEP1_build99_TimeLimited.zip4.2 MB
Home | Community | Blogs | Hannes' Blog