You are not logged in.
Pages: 1
Hi AB,
My colleagues and I are next Newbie to the project, which are here to give a chance to mORMot to create Delphi projects, using all possible best practices and tips.
We already have a lot of experience with PHP and all the goodies such as ORM, MVC, framework, etc.
Also we have developed own PHP framework reached version 2.5, because a lot of things that we do not like how they were implemented in other similar PHP framework.
A small part of us have a good experience with Delphi, but as we all know, those of us who are using Delphi usually are misled, not to use any good programming practice while using Delphi.
Because we have several new projects – some of them are purchases from our clients, other are ours, we would really want to eradicate bad practices acquired in working with Delphi.
Looking through a lot in this direction and reviewing a lot of products like Remobjects Data Abstract, kbmMW and etc., we have come to Synopse mORMot Framework. Reviewing the documentation of mORMot, I got the impression that would cover all of our needs that we miss so far with Delphi programing and are available in other program languages like Microsoft .Net, PHP and etc.
Alas, it turns out that no matter how great your product documentation is and how many examples are available for how to use mORMot, it is my great disappointment that all the documentation and examples are only for how fast is mORMot and don’t cover anything from the actual real-life examples .
We wanted to run a simple project - Server with services and client to use these services, with MySQL database server. The choice of MySQL- because of the long time period which we have using it in our web products and also the possibility to work on Linux and Window.
Somehow we managed to create the server and to publish several services, but we can’t accomplish to create correct connection string for TSQLDBUniDACConnectionProperties for MySQL. Everywhere (documentation and examples) we are finding only SQLite here there occurs and MSSQL.
While debugging TSQLDBUniDACConnectionProperties and we have seen how the connection string was processes, we were amazed what actually happens and how the things was handled. Finally, as a cover in the forum I found your discussion that the use of MySQL in UniDAC, only works in theory, but before that the documentation clearly states that mORMot is working with any external databases like NexusDB, DBExpress, FireDAC, AnyDac, UniDAC, BDE etc.
From what I have seen during debugging and the result I've gotten is that in the current version we will never be able to connect to MySQL with UniDAC. That is there to be fixed a lot of things to make it usable.
After a struggle with example 12 - SynDB Explorer, I was able to create the correct ODBC connection string to connect to MySQL.
Now comes the next fun story, years ago I gave up to use ODBC MySQL connector because there were too many errors in the ODBC MySQL connector and it really was not usable. So then we decided to use UniDAC.
And now, after these discoveries on our side again sit several issues on the agenda:
1. To continue the examination of mORMot, since we know so far that it can’t provide us with one of the main features, ORM for MySQL with UniDAC?
2. To continue the examination of mORMot, using the PostgreSQL with UniDAC, for which I also saw in the forum mentioning similar complaints, also this which will be a major challenge for acquaintance it as a database and again the lack of visual examples of how to use mORMot with PostgreSQL?
3. To abandon Delphi as an option for development and move to .Net or Mono? I personally do not like .Net and its alternative Mono, but my other colleagues which are not familiar with Delphi, but have some though little experience with C # and its MVC, ORM Framework, don’t have the same opinion as me. Their opinion is clear - there is no documentation and no real examples for mORMot work with external databases, while in C # and MVC, ORM Framework for the C# are available.
4. My colleagues still have not given up completely. They asked me to give them a drive somehow mORMot to work with MySQL, to be able to continue to view other things promised in the documentation of mORMot whether they are true or not.
Ways that we can take from here are several:
1. Development of own Framework for Delphi, to provide all our needs described in the documentation of mORMot - now that we have a vast experience with the creation of Framework for PHP and know very well how much time we took, we certainly will not invest in that endeavor starts from the zero with Delphi.
2. Using a combination of other products for Delphi, which are commercial and much to our surprise, the documentation and the examples which they provided was also absolutely not usable for various reasons (if the examples are for their older versions, if the examples are valid for the current versions of Delphi and etc.) - We will not paid for broken or not documented products. That is when you offer paid product, then we expect that it works, has the necessary documentation, etc. and we don’t want to become the top reporters for the paid product because it is full with errors. We have played that game with some demo versions of several products and determined us last year that we will not believe any promises from the product developer. If something works we will buy it, if don’t works then we don’t buy it.
3. Forget about Delphi and however personally I do not like .Net and Mono, to start using them.
4. However, we would prefer another option, which I think would be very beneficial for all of us. We can offer our help to develop mORMot several things:
a. Because anyway to develop this several products for which we must have the functionality that exists in mORMot, with help from the creator and community of the mORMot, we can overcome our current problems and to create real examples and documentation on how to use mORMot with external databases, documentation and examples for the rest of the functionality mORMot, so that it can become an indispensable Framework for Delphi, and to become a mORMot in the product, without which Delphi programmers can not live.
b. I have seen complaints in the forum for the use of Fossil instead Git (http://synopse.info/forum/viewtopic.php?id=1266). Here we can also help with both the selection and transfer of information from Fossil to Redmine and github. Until less than a year we used to Redmine to organize all of our work and definitely this choice brought us many benefits. Now we are using more serious systems - Jira, Confluence, stash, etc. Because Jira is paid product as it is nice and strong it will not be suitable for this OpenSorce project. As for the use of git, before we move to it, I was convinced that git is not superior who knows how SVN, but it turned out that my error is great. I was just amazed, how many of the situations in which you might appear with SVN and was wondering how to overcome it, are no problem when using git. And when you talk about working together on joint projects with more than a few participants, git excels in times SVN. But to can see git advantages you have to work with it. As you add to this ever-increasing his popularity because of the ease with which it enjoyed and experienced people would say that switching to it will lead to many more happy people.
If you are interest in some of my suggestions, or you would have thought of other things that we can be mutually beneficial, I'm ready to see what we can achieve together.
Offline
Thanks a lot for your feedback.
You are right: MySQL is not tested nor used by us.
Our main DB for corporate applications is Oracle, which is huge and not free, but performs very well.
SQLite3 is our kernel, and is also perfect for DB up to some GB of data - about speed, we got around 6000 concurrent writing access per second (much higher for reading), so sounds just fine.
AFAIK MySQL should better integrated via ZDBC (Zeos).
ODBC could be also used, if the provider is stable enough.
mORMot is an open source project, working with input from users like you.
PostgreSQL support has been added recently, with the feedback of users.
ZDBC sounds to give better results than UniDAC - see http://synopse.info/forum/viewtopic.php?id=1467 - when used with mORMot.
We need feedback from you about MySQL integration with mORMot.
PostgreSQL has been integrated with very small patches - I guess this would be the same for MySQL.
Be aware about MySQL licensing, which may require a fee outside the web and Open Source projects.
MariaDB may be a better option about this point.
Once again, thanks for your feedback, and proposals:
Any input is welcome!
a. Real examples and documentation are welcome.
b. You compare git and svn - but I suspect you did not compare git and fossil, which are both distributed SCM.
c. (new point) Do you think possible that you help for the testing and inclusion of MySQL to mORMot - perhaps via ZDBC/Zeos?
Almost everything is ready, we just need feedback, and - if possible - patches (as was the case for PostgreSQL).
If you know a bit about MySQL client internals, perhaps a new unit for direct access - like SynDBOracle.pas - may be a good idea.
The more people we are collaborating to mORMot, the better!
Online
Hi Again,
We are OK about a and c and I have additional question about b.
for b what gui client you use for fossil repository? for the git we using smartgit for IDE like Embarcadero and for our PHP Development the work with the Jira and the Git are very good integrated into current PHP IDE which we are using and for it we are not using smartgit.
last night I have successfully completed the connection string for MySQL via ZDBC/Zeos and now we have connection to the MySQL. from here I'll leave the examination of mORMot to my colleagues because with Delphi I never used ORM, MVC or Web Services and it's to hard for me to cover all this thinks with just debugging, but my colleagues are using all this thinks in their work will our PHP Projects.
I have some other thinks which I like to discus with you which is not for public forum discussions. is it ok to contact you about them via the email in the forum or you prefer other way?
Offline
For Fossil, we use only command line commands for update/submit (and TotalCommander to validate all the differences, but you can use BeyondCompare or any other diff tool), and the embedded web interface to browse all the data.
See e.g. http://synopse.info/fossil/timeline
Any feedback about MySQL support is always welcome.
Of course, we can discuss via email!
Online
I uploaded the framework source code to GitHub, just to try.
See https://github.com/synopse/mORMot
Git sounds pretty good for handling the source code tree.
Pretty similar to fossil, but much heavier and difficult to install/configure.
But I would not say the same for the "GitHub for Windows tool".
For a somewhat huge project like mORMot, it is slow, non responsive, and, after waiting a lot, uses more than 400 MB just to display the repository.
Sometimes, it just crashes. The UI looks nice, but is very difficult to work with.
Another awfully fat and non working WPF / .Net application.
This experiment does not help me going away from Fossil.
I will let the source in github, for testing purposes, but it won't become my main repository.
GitHub may increase visibility, but I would need some .bat files to auto-push the modifications easily.
Feedback and input is welcome!
Online
But I would not say the same for the "GitHub for Windows tool".
For a somewhat huge project like mORMot, it is slow, non responsive, and, after waiting a lot, uses more than 400 MB just to display the repository.
Sometimes, it just crashes. The UI looks nice, but is very difficult to work with.
Another awfully fat and non working WPF / .Net application.This experiment does not help me going away from Fossil.
I will let the source in github, for testing purposes, but it won't become my main repository.
GitHub may increase visibility, but I would need some .bat files to auto-push the modifications easily.
Feedback and input is welcome!
If you are used the command line using fossil, I would suggest just installing the Git command line tools (http://msysgit.github.io/). If you have ever used TortoiseSVN, there is a similar client available for integration into Explorer (https://code.google.com/p/tortoisegit/).
I've setup a Git repository (https://bitbucket.org/bernd_summerswell/mormotexternal) which is just a mirror of your Nightly Downloads so that I can include it as Git Submodule (http://git-scm.com/book/en/Git-Tools-Submodules) in our own projects. Basically what I have done is create a batch file which downloads your Nightly download, copies it over the existing local working copy and then pushes it back to the Bitbucket repository. If you are wanting to setup a similar batch file, let me know if I can help.
On my Mac I use SourceTree (http://www.sourcetreeapp.com/) which also has a Windows version - not too sure if it is any better on Windows than the Github app - but it is really quick on the Mac, even on large projects.
Offline
We have made a simple tool and scripts, which will be used for every commit.
See https://github.com/synopse/mORMot/tree/ … rceCodeRep
It allows to commit our changes into both our self-hosted http://synopse.info/fossil repository, and https://github.com/synopse/mORMot !
Online
Hi Arnaud,
This is my first message here: Making mORMot available through Git is awesome (as is the SpiderMonkey integration). MANY thanks to you. Telling that worth the subscription to this forum ;-)
You can forget "Github for Windows" but "Atlassian SourceTree" is multiplatform and performs very well (and it includes shortcuts to follow the famous "git flow"). In my "everyday Git" I use Tortoise Git. I never installed Fossil because I already have Tortoise Git, Tortoise Svn and Tortoise Hg installed and my explorer menu ressembles nothing. Would be fine to find a tool to rule them all.
Offline
ab, this is really a nice approach by having a synced repository for other people, we you keep the convenience you already enjoy with fossil.
Re git client, I use the official git which has some Windows Explorer integration, it should be much fast and lightweight that github for Windows, although I've never installed the latter - I never liked bloatware, especially slow-bloat-ware, nor I have got many good fast experiences with .net-powered software.
If you have used Evernote for Windows for enough long time, you must know that few years ago they completely re-written it in c++ and replaced the old one that's written with .net, just for the sake of speed and performance. They had a blog post IIRC.
Delphi XE4 Pro on Windows 7 64bit.
Lazarus trunk built with fpcupdelux on Windows with cross-compile for Linux 64bit.
Offline
I did not knew about Evernote.
http://www.itwriting.com/blog/3385-less … m-net.html is kind interesting.
It reflects my own experiment.
But honestly, the new Visual Studio is just a hardware killer: you need a high-end PC with a lot of memory to use it.
Even the latest Delphi IDE is more responsive!
If you compare with Delphi 7 or 2007 - this is another planet of speed. And why I still use a lot Delphi 7 as my main IDE.
Online
Hi Arnaud, I am actually embracing speed and performance like you!
I did not knew about Evernote.
http://www.itwriting.com/blog/3385-less … m-net.html is kind interesting.
It reflects my own experiment.But honestly, the new Visual Studio is just a hardware killer: you need a high-end PC with a lot of memory to use it.
Even the latest Delphi IDE is more responsive!
If you compare with Delphi 7 or 2007 - this is another planet of speed. And why I still use a lot Delphi 7 as my main IDE.
Delphi XE4 Pro on Windows 7 64bit.
Lazarus trunk built with fpcupdelux on Windows with cross-compile for Linux 64bit.
Offline
Pages: 1