Everybody is buzzing about FireMonkey...

Our little mORMot will like FireMonkey!
Here is why...
2011-08-08
2011-08-08. Open Source › mORMot Framework
Everybody is buzzing about FireMonkey...

Our little mORMot will like FireMonkey!
Here is why...
2011-07-25
2011-07-25. Open Source › mORMot Framework
Our ORM RESTful Framework is about to access any available database engine.
It will probably change its name (since it won't use only SQlite3 as database), to become mORMot - could be an acronym for "Manage Object Relational Mapping Over Tables", or whatever you may think of...
We'll still rely on SQLite3 on the server, but a dedicated mechanism will allow to access via OleDB any remote database, and mix those tables content with the native ORM tables of the framework. A flexible Virtual Tables and column mapping will allow any possible architecture: either a new project in pure ORM, either a project relying on an existing database with its own table layout.
2011-07-22
2011-07-22. Open Source › Open Source libraries
For our ORM framework, we implemented an efficient SQLite3 wrapper, joining statically (i.e. without any external dll) the SQLite3 engine to the executable. SQLite3 is in fact used as the DB kernel of the framework. For instance, thanks to its unique virtual table mechanism, even tables in other databases (like Oracle or MSSQL) are available as if they were SQLite3 tables.
We just made this wrapper independent from our ORM, in a new dedicated unit,
named
SynSQLite3.pas.
It was an easy task to let this unit be called from our SynDB database abstract classes.
2011-07-04
2011-07-04. Open Source › mORMot Framework
If you want to implement an HTTP client access in your application, you may consider several choices:
For our ORM, we tried to avoid external dependencies, and did not have the
need of all Indy's features and overhead.
We fist wrote our own WinSock wrapper, then tried out
WinInet.
When used on our testing benchmark, we found out that WinINet was
dead slow.
Then we tried WinHTTP, the new API provided by Microsoft, and we found
out this was blazing fast. As fast as direct WinSock access,
without the need of writing all the wrapper code.
2011-07-03
2011-07-03. Open Source › mORMot Framework
Here is what wikipedia states at http://en.wikipedia.org/wiki/Shared_nothing_architecture:
A shared nothing architecture (SN) is a distributed computing architecture in which each node is independent and self-sufficient, and there is no single point of contention across the system. People typically contrast SN with systems that keep a large amount of centrally-stored state information, whether in a database, an application server, or any other similar single point of contention.
This is just one approach of "sharding". Sharding is indeed related to a
shared nothing architecture - once sharded, each shard can live in a totally
separate logical schema instance.
"I sharded, therefore it scales"...
You can do this in Delphi... and opens a new world of scaling opportunities... Just as Google, Facebook, or eBay do...
2011-07-02
2011-07-02. Open Source › Synopse PDF engine
Our SynPdf unit has been updated to the 1.14 version. Some enhancements: new SetCMYKFillColor and SetCMYKStrokeColor methods for TPdfCanvas now handles EMR_POLYBEZIER* commands in conversion from meta file content fixed EZeroDivided error when enumerating SetWindowExtEx(szlExtent(0,0)) some […]
2011-07-02. Open Source › 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!
2011-07-02. Open Source › mORMot Framework
For both our SynOleDB and SynBigTable units, we allow late-binding of data row values, using a variant and direct named access of properties. Thanks to this unique feature (as far as I know in the Delphi database world),
This allows clear and valid code as such:
var Customer: Variant;
begin
with Props.Execute(
'select * from Sales.Customer where AccountNumber like ?',
['AW000001%'],@Customer) do
while Step do
assert(Copy(Customer.AccountNumber,1,8)='AW000001');
end;
In practice, this code is slower than using a standard property based access, like this:
while Step do
assert(Copy(Column['AccountNumber'],1,8)='AW000001');
But the first version, using late-binding of column name, just sounds more natural.
Of course, since it's late-binding, we are not able to let the compiler check at compile time for the column name. If the column name in the source code is wrong, an error will be triggered at runtime only. But it would not be an issue, since it would be the same for the SQL code inserted: it's only executed at runtime (this is one of the benefits of using an ORM, by the way: the ORM will generate correct SQL code for you...).
The default VCL implementation of this late-binding was a bit slow
for our purpose.
Since it has to deal with Ole Automation, and because it's fun, we
hacked the VCL to provide a lighter and faster version for our custom variant
types.
« previous entries - page 40 of 53 - next entries »