Arnaud Bouchez 407 Posted November 24, 2018 Now that Delphi 10.3 Rio is out, we had to ensure that our little mORMot would run with this revision. Since we don't make any commercial software with Delphi any more (we switched to FPC), I downloaded the Community Edition. We disabled the Error Insight feature, which seems not very stable especially with our mORMot complex units - as with previous Delphi versions. In respect to the previous "Starter" editions, this CE version includes everything you expect for good work: Win32 + Win64 + OSX + mobile compilers, and even the source code of the RTL and enabled command-line compilers! The IDE seems really refreshed with its new layout. You feel at home and with some modern and fresh air! Great work Embarcadero! Of course, the "Pro" and "Architect" features are missing (like FireDAC, DataSnap or RADServer). But mORMot is self-contained even for the database access, so with the CE you can write full-features REST/SOA client-servers and MVC web applications, with a simple ORM and high-performance OleDB/ODBC database access to SQlite3, MSSQL, Oracle, Firebird, MySQL and others (by-passing the TDataSet class for better performance) and even NoSQL like MongoDB. Ensure you follow the Embarcadero license terms when you use mORMot with the Community Edition. With Rio, the main breaking change was that the PCRE API switched from an UTF-8 to UTF-16, and did hide the UTF-8 function calls. But after a small patch, now everything works as expected - at least for our regression tests. See http://blog.synopse.info/post/2018/11/24/mORMot-running-on-Delphi-10.3-Rio 5 1 Share this post Link to post
Andrea Magni 75 Posted November 25, 2018 @Arnaud Bouchez Glad to read this! Any chance to see it compile for the Delphi (non-ARC) Linux compiler too? I am very interested as this would imply Linux support for mORMot-JWT (https://github.com/andrea-magni/mORMot-JWT) and I guess for dMustache (https://github.com/synopse/dmustache) as well. Sincerely 1 Share this post Link to post
dummzeuch 1517 Posted November 26, 2018 On 11/24/2018 at 2:57 PM, Arnaud Bouchez said: Of course, the "Pro" and "Architect" features are missing (like FireDAC, DataSnap or RADServer). That should probably be >"Enterprise" and "Architect" features are missing<, because CE is supposed to have the same feature set as Professional. Share this post Link to post
Kryvich 165 Posted November 26, 2018 Detailed feature matrix for 10.3: https://www.embarcadero.com/features/feature-matrix Share this post Link to post
Arnaud Bouchez 407 Posted November 26, 2018 (edited) @Andrea Magni Technically, non-ARC Linux may be supported, but we have some caveats - see https://synopse.info/forum/viewtopic.php?pid=28534#p28534 Edited November 26, 2018 by Arnaud Bouchez Share this post Link to post
Arnaud Bouchez 407 Posted November 26, 2018 (edited) @dummzeuch The feature matrix (page 18ff) states that FireDAC is not in CE - see "Windows/Mac enterprise database support, including MySQL, MariaDB, Microsoft SQL Server, Oracle Database, InterBase, PostgreSQL, Informix, Sybase SQL Anywhere, Microsoft Access, IBM DB2 Server, Firebird, Advantage Database, generic ODBC driver" is not checked, and also MongoDB, most/some WebBroker and DBExpress features, DataSnap and RadServer. Edited November 26, 2018 by Arnaud Bouchez Share this post Link to post
Markus Kinzler 174 Posted November 26, 2018 37 minutes ago, Arnaud Bouchez said: @dummzeuch The feature matrix (page 18ff) states that FireDAC is not in CE - see "Windows/Mac enterprise database support, including MySQL, MariaDB, Microsoft SQL Server, Oracle Database, InterBase, PostgreSQL, Informix, Sybase SQL Anywhere, Microsoft Access, IBM DB2 Server, Firebird, Advantage Database, generic ODBC driver" is not checked, and also MongoDB, most/some WebBroker and DBExpress features, DataSnap and RadServer. This features are missing in Pro, too. That was the fact Thomas wanted to tell you. You can access the DBMS locally but not on a "external" server (other than the machine the program is running). Share this post Link to post
Kryvich 165 Posted November 26, 2018 So MySQL database + FireDAC- mORMot-Windows service could be compiled and run even with Community Edition, if the database and the service are located on the same machine. Share this post Link to post
Markus Kinzler 174 Posted November 26, 2018 If using UniDAC, IBX, ... it even run on remote servers. Share this post Link to post
Guest Posted November 26, 2018 (edited) 1 hour ago, Arnaud Bouchez said: @dummzeuch The feature matrix (page 18ff) states that FireDAC is not in CE - see "Windows/Mac enterprise database support, including MySQL, MariaDB, Microsoft SQL Server, Oracle Database, InterBase, PostgreSQL, Informix, Sybase SQL Anywhere, Microsoft Access, IBM DB2 Server, Firebird, Advantage Database, generic ODBC driver" is not checked, and also MongoDB, most/some WebBroker and DBExpress features, DataSnap and RadServer. The feature matrix tells us for FireDAC Multi-Device Data Access Library and Professional/Community Edition: Quote Support for local databases, including Microsoft Access database, SQLite and MariaDB database, IB ToGo / IBLite, InterBase on localhost, MySQL Embedded, MySQL Server on localhost, Advantage Database local engine, PostgreSQL on localhost, Firebird Embedded, Firebird on localhost and you will get no source code for FireDAC! Edited November 26, 2018 by Guest Share this post Link to post
Arnaud Bouchez 407 Posted November 26, 2018 1 hour ago, Kryvich said: So MySQL database + FireDAC- mORMot-Windows service could be compiled and run even with Community Edition, if the database and the service are located on the same machine. If you use the mORMot layer with direct MySQL ODBC provider - or even better https://sourceforge.net/projects/zeoslib/ - you have a 100% Open Source access with the Community Edition, also for remote servers. The mORMot framework has its own database access layer, which by-pass DB.pas and the TDataSet, and work directly from/to JSON on the database provider, for best efficiency. You can use FireDAC as DB access layer with mORMot, but this is not mandatory - and even slower in practice. See https://synopse.info/forum/viewtopic.php?pid=28311#p28311 for actual benchmark numbers. From this test, ZDBC direct access to MySQL is more than 3 times faster than FireDAC, to retrieve individual objects (7138/s vs 2171/s). This includes the ORM layer, and the JSON serialization/unserialization. Of course, a local SQLite3 database is the fastest (by far), and fits very well the MicroServices paradigm. 1 Share this post Link to post
Kryvich 165 Posted November 27, 2018 The Zeos test results are astounding. What about the capabilities of this library? Does it support the on-demand rows fetching, rows pagination, delayed fetching (to postpone a BLOB and nested datasets loading)? FireDAC can do it: http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Fetching_Rows_(FireDAC) Share this post Link to post
miab 25 Posted November 27, 2018 3 hours ago, Kryvich said: The Zeos test results are astounding. What about the capabilities of this library? Does it support the on-demand rows fetching, rows pagination, delayed fetching (to postpone a BLOB and nested datasets loading)? FireDAC can do it: http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Fetching_Rows_(FireDAC) After the parts can not. ZEOS is free, fast and works with Lazarus (Windows and Linux) and Delphi (currently only Windows32/64) from Delphi7 to Delpi 10.3 Rio. And it works well with mORMot. http://zeoslib.sourceforge.net/viewtopic.php?f=50&p=106447#p106237 1 Share this post Link to post
Kryvich 165 Posted November 27, 2018 So now (among other) we have FireDAC - a DAC for Delphi packed with advanced features, and the lightning fast Zeos - a free and open source lib. Both libraries can work in conjunction with mORMot. Having a choice is always good. Share this post Link to post