2012, Monday February 6
By A.Bouchez on 2012, Monday February 6, 22:05 - mORMot Framework
In order to implement some RESTful Services, a
callback has to be defined on the server side.
The prototype of these methods has been modified one more time, to supply an
unique parameter:
This is a CODE BREAK change and you shall refresh ALL your server-side
code to match the new signature.
This unique parameter will let the signature remain untouched in your code
implementation, even if the framework evolves (like adding a new
parameter).
Continue reading...
2011, Wednesday August 10
By A.Bouchez on 2011, Wednesday August 10, 20:52 - mORMot Framework
The framework
documentation was just updated.
The general organization of the SAD document (which is the one to be read in
all cases) has been refreshed, and is now separated in smaller chapters.
The new official name has been changed into "Synopse SQLite3/mORMot
framework"...
Continue reading...
2011, Saturday July 2
By A.Bouchez on 2011, Saturday July 2, 11:32 - mORMot Framework
There is a well known syndrome around, against ORM.
Do you remember The
Vietnam of Computer Science article?
It is worth reading... and commenting.
Sounds a bit outdated by now. Tempus fugit!
Continue reading...
2011, Wednesday June 29
By A.Bouchez on 2011, Wednesday June 29, 06:10 - SQLite3 Framework
Our ORM framework has been released as version 1.14.
It's mainly a bug-fix release:
- Integrated SQLite3 engine updated to latest version 3.7.7.1;
- Fix several issues about JSON generation layout;
- Enhanced automated User Interface generation for object on-screen
edition;
- SynPdf unit now handles Bézier curves from TCanvas, and
some CMYK functions; also enhanced PDF/A-1compatibility;
- Some speed enhancements, and new functions for the
SynOleDB unit.
Continue reading...
2011, Thursday June 2
By A.Bouchez on 2011, Thursday June 2, 16:16 - SQLite3 Framework
When it deals with parsing some (textual) content, two directions are
usually envisaged. In the XML world, you have usually to make a choice
between:
- A DOM parser, which creates an in-memory tree structure of objects mapping
the XML nodes;
- A SAX parser, which reads the XML content, then call pre-defined
events for each XML content element.
In fact, DOM parsers use internally a SAX parser to read the XML content.
Therefore, with the overhead of object creation and their property
initialization, DOM parsers are typically three to five times slower than SAX.
But, DOM parsers are much more powerful for handling the data: as soon as it's
mapped in native objects, code can access with no time to any given node,
whereas a SAX-based access will have to read again the whole XML content.
Most JSON parser available in Delphi use a DOM-like approach. For instance,
the DBXJSON unit included
since Delphi 2010 or the SuperObject or DWS libraries create a
class instance mapping each JSON node.
In a JSON-based Client-Server ORM like ours, profiling shows that a lot of
time is spent in JSON parsing, on both Client and Server side. Therefore, we
tried to optimize this part of the library.
Continue reading...
By A.Bouchez on 2011, Thursday June 2, 15:18 - SQLite3 Framework
When use the so-called BATCH sequences?
In a standard Client-Server architecture, especially with the common
understanding (and most implementations) of a RESTful service, any Add /
Update / Delete method call requires a back and forth flow to then from
the remote server.
In case of a remote connection via the Internet (or a slow network), you
could have some 100 ms of latency: it's just the "ping" timing, i.e. the time
spent for your IP packet to go to the server, then back to you.
If you are making a number of such calls (e.g. add 1000 records), you'll
have 100*1000 ms = 100 s = 1:40 min just because of this network latency!
The BATCH sequence allows you to regroup those statements into just ONE
remote call. Internally, it builds a JSON stream, then post this stream at once
to the server. Then the server answers at once, after having performed all the
modifications.
Continue reading...
2010, Saturday October 23
By A.Bouchez on 2010, Saturday October 23, 09:52 - SQLite3 Framework
The Synopse SQLite3 Database Framework was just released under version
1.10:
- internal SQLite3 database engine is updated to version 3.7.3;
- code modifications to compile with Delphi 6 compiler;
- enhancements in TSQLRestServerStatic, for easier stand-alone work of this
in-memory database engine;
- new SQLite3Edit unit, for automated creation of a UI window, ready to edit
any TSQLRecord, with no RAD necessary (all components are created from RTTI):
think this is an ORM for User Interface.
This version compiles from Delphi 6 up to Delphi XE.
Continue reading...
2010, Tuesday August 24
By A.Bouchez on 2010, Tuesday August 24, 11:16 - SQLite3 Framework
The Synopse SQLite3 Database Framework was just released under version
1.9.1:
- internal SQLite3 database engine is updated to version 3.7.2;
- new TSQLRecordFTS3 record, for using FTS3 virtual tables, i.e. implementing
full-text search;
- new SQLite3UIEdit unit, to edit table content with a dialog created from
RTTI;
- new dedicated BLOB methods and JSON array serialization;
- a lot of fixes and speed enhancements (including our HTTP/1.1 RESTful server
now using Thread Pool).
The new 3.7.2 version of the SQLite3 engine, which is mandatory according to
SQLite3's authors, is included.
Continue reading...
2010, Thursday August 19
By A.Bouchez on 2010, Thursday August 19, 10:48 - SQLite3 Framework
In software engineering, multi-tier architecture (often referred to as
n-tier architecture) is a client–server architecture in which the presentation,
the application processing, and the data management are logically separate
processes. For example, an application that uses middleware to service data
requests between a user and a database employs multi-tier architecture. The
most widespread use of multi-tier architecture is the three-tier
architecture.
Both ORM and RESTful aspects of our framework makes it easy to develop using
such a three-tier architecture.
Continue reading...
2010, Friday July 2
By A.Bouchez on 2010, Friday July 2, 10:11 - Pascal Programing
RESTful JSON is still a buzzing process... there is no standard yet, and
they should not be, since JSON itself has its own RFC, and REST is a powerful
but vague statement.
Continue reading...
2010, Monday May 24
By A.Bouchez on 2010, Monday May 24, 10:34 - SQLite3 Framework
Our SQLite3 Framework has been updated into the 1.7 version. For Delphi 7 to
Delphi 2010.
Mostly User-Interface (reporting) enhancements, and some bug fixes.
Continue reading...
2010, Sunday March 14
By A.Bouchez on 2010, Sunday March 14, 15:16 - SQLite3 Framework
Our SQLite3 Framework has been updated into the 1.5 version.
Continue reading...
2010, Monday February 8
By A.Bouchez on 2010, Monday February 8, 14:29 - SQLite3 Framework
The framework has been updated, and is released now under the LGPL license (public domain
license was found to be confusing).
Continue reading...
2010, Sunday January 24
By A.Bouchez on 2010, Sunday January 24, 17:28 - SQLite3 Framework
The SQLite3 Framework has been updated. Three
sample applications are provided, in order to show basic ORM features of the
framework.
Continue reading...
2010, Friday January 22
By A.Bouchez on 2010, Friday January 22, 22:11 - SQLite3 Framework
The version 1.3 of the Synopse SQLite3 Framework is just released. It's a
minor release, with bug fixes, especially for Delphi 2009/2010.
Continue reading...
2010, Monday January 18
By A.Bouchez on 2010, Monday January 18, 00:16 - SQLite3 Framework
The version 1.2 of the Synopse SQLite3 Framework is just released. Includes
latest SQLite3 engine version 3.6.22. Now tested on Delphi 7, 2007
and 2009, it should work on all Delphi compiler versions from 3 to 2010.
Continue reading...
2010, Thursday January 14
By A.Bouchez on 2010, Thursday January 14, 22:43 - SQLite3 Framework
The version 1.1 of the Synopse SQLite3 Framework is just released. Includes
latest SQLite3 engine version 3.6.22. Delphi 3 to Delphi 2007 compatiblity,
first attempt to compile under Delphi 2009/2010 and FPC.
Continue reading...
2010, Tuesday January 5
By A.Bouchez on 2010, Tuesday January 5, 17:26 - SQLite3 Framework
Question posted in the embarcadero forum:
Is there a way in your wrapper to know whether the field is NULL (say,
Integer or String field)?
In most databases '' and null are different values.
Thanks,
Michael
Continue reading...
2009, Sunday December 20
By A.Bouchez on 2009, Sunday December 20, 18:03 - SQLite3 Framework
More details (source code, JSON, REST) about this framework.
Continue reading...
2008, Saturday March 8
By A.Bouchez on 2008, Saturday March 8, 17:32 - SQLite3 Framework
The Synopse SQLite3 database Framework interfaces the SQlite3
database engine into pure Delphi code: database access, User Interface
generation, security, i18n and reporting are handled in a safe and fast
Client/Server AJAX/RESTful model.
Continue reading...