terça-feira, 28 de maio de 2013

uniGUI with DataSnap - Part 1

POST #019
=======================================================================

This is the 1st part of the mini-video about uniGUI. Developing a stateful Rich Internet Application (RIA) is one of the challenging fields in software development. uniGUI Web application framework makes developing stateful Web applications easier than ever. uniGUI extends Web Application development experience to a new dimension. In my little experiment, I'm using uniGUI with DataSnap.

uniGUI with DataSnap seems to be a good match. DataSnap architecture is more flexible than before. It moves the connection between the client applications and database server to application server and database server while you can connect many client applications to the same application server.


 

Tags: RIA with Delphi; unigui; DataSnap with uniGUI; unigui web application.

Warleyalex from Sete Lagoas, Brazil

terça-feira, 21 de maio de 2013

uniGUI with SQLite

POST #018
=======================================================================
You can create web applications RIA (Rich Internet Application) without the need for many specific knowledge for web environment, such as HTML, javascript, CSS, PHP, etc. You can use the same code base object pascal to create a desktop app and a win32 VCL application RIA web quickly and very easily.

If you do not know, uniGUI is an alternative for developing RIA web applications using 100% AJAX features of the Delphi RAD environment. In uniGUI, most of the business logic, as well as the complexity of threads, managing multi-user access and all data is located in a central layer, running on the server.

You can freely download uniGUI beta, for testing. But if you intend to use it to publish a web application or even a commercial application freeware, closed source, the developer will have to purchase a full license of ExtJS, which costs about US$330. Any uniGUI server requires a copy of the ExtJS library. Due to its licensing scheme, I think even freeware closed source applications are unable to use it. According to the roadmap uniGUI, from version 1.0, it is likely that uniGUI be marketed - in 2013, and the license price will be the "style" of the Sencha ExtJS, around US$330 per developer, ie, to use uniGUI, developer should spend approximately R$1.200,00 (BR).

I was wondering about using mORMot together uniGUI. In uniGUI, since all server-centered activity is hosted in one multi-thread process. Perhaps, make sense to use a local SQLite database engine. I'd like to use SQLite3 as a client-server where the same database will be accessed simultaneously by many clients/threads, accessing a common database. Interesting, isn't it?
 Typically in uniGUI, if you want to show records from your database table on a DBGrid in your application, you will need:

1. TSQLConnection to provide the necessary connection details to the database.  One TSQLConnection can service several TSQLDatasets.

2. A TSQLDataset component which will specify the TSQLConnection component in the SQLConnection property.

3. A TDatasetProvider component which will specify the TSQLDataset in its Dataset property.

4. A TClientDataset component which will specify the TDatasetProvider in its ProviderName property

5. A TDataSource component which will specify the TClientDataset component in its Dataset property.

A TDBGrid component which will specify the TDataSource in its DataSource property.

By setting the appropriate Active properties to true in TSQLConnection, TSQLDataset and TClientDataset you should find that the data will appear in the grid.
__________
I skipped steps 1-2 to simply display data in a DBGrid, for me, the easiest way to edit/delete/insert any of the cell values in a DBGrid with mORMOt and write back do database is using TClientDataSet. On BeforeApplyUpdates event I could capture delta, and put Delta back to to the database using Batch sequences. TDatasetProvider here is like a pipe connecting TClientDataset with TSQLTableJSON. It seems like quite a bit of effort to simply display and modify records in a DBGrid, but that is the way it works!

Yep, this is like bizarre creatures from another planet.


 

Tags: RIA with Delphi; unigui; mORMOt with uniGUI; unigui web application.

Warleyalex from Sete Lagoas, Brazil