Home
Features
Alternatives
Developing
Issues
Roadmap
History
Authors
License
QueryPony Home
History
Releases
2013-August-11
|
:
|
QueryPony 0.3.1.42329 Alpha,
QueryPony031.exe (3 440 640 bytes)
|
|
|
|
2013-08-11 QueryPony 0.3.1 Alpha
- Settings saving fixed
- Edit menu issues partially fixed
- Miscellaneous minor bugs fixed
|
2013-July-26
|
:
|
QueryPony 0.3.0 Alpha,
QueryPony.exe (3 432 448 bytes)
|
|
|
|
2013-07-26 QueryPony 0.3.0 Alpha Release
- Outlined database types shall all be accessible
- Missing treeview nodes labeling supplemented
- Divan for CouchDB integrated (not much utilized yet)
- Various bugs fixed
|
2013-July-10
|
:
|
QueryPony 0.2.0 Crashtest Version,
QueryPony020.exe (2 277 376 bytes)
|
|
|
|
2013-07-10 QueryPony 0.2.0 Crashtest Version
This are the differences as compared with Query ExPlus 2.0.3.1:
Feature changes (from the user's point of view)
- It requires .NET 3.5, no more .NET 2
- Added implementations for MySQL, PostgreSQL, SQLite, CouchDB (not all
applicable yet)
- The Connect Dialog is on a permanent Tab, no more in a modal dialog
- The Connection Forms are 'forms-on-tabs', no more MDI-Windows
(Multiple Document Interface)
- Only one centralized treeview anymore, no separate treeviews per connection
- Revamped the About Form
- Added menu item 'View Documentation in Browser'
- Added two demo SQLite demo databases
- The executable is no more 200 KB size but 2.3 MB
Code changes (from the developer's point of view)
- Solution file downgraded from VS-2010 to VS-2008
- Solution file for SharpDevelop 4.1 added
- Split the one project in two: GUI and Lib (engine)
- Simplified ConnectionSettings properties
- Third party libraries integrated (for MySQL, PostgreSQL, SQLite)
- Some file and folder renamings
- Some new files and folders
- Additional helper project 'IOBus'
- Shake up code formatting (sorry for this)
- License changed from Public Domain to GNU AGPL v3
|
How it Started
QueryPony is a derivative of
Query ExPlus 2.0.3.1 .
The story started when I was researching for something like a 'database
ignorant database access API'.
I hit Query ExPlus, inspected it's code and -- bingo!
That were exactly the database abstraction structures I imagined.
Only I wanted a bit more than what it offered, so I wrote a patch to implement SQLite.
Still wanting more, I continued working, changed basic
layouts, interfered with the core design, added features. Finally,
it was no more patch, but a different product.
This was not planned, it just happened.
Below you read the differences from Query ExPlus 2.0.3.1
to the QueryPony initial version 0.2.0.
Feature Changes (the user's point of view)
If you are already using Query ExPlus, you will face this differences:
-
It requires .NET 3.5, no more .NET 2
-
Added implementations for MySQL, PostgreSQL, SQLite, CouchDB
(not all applicable yet)
-
Connect Dialog is on a permanent Tab, no more inside a modal dialog
-
Connection Forms are now forms-on-tabs, no more MDI-Windows
(Multiple Document Interface)
-
There is only one centralized treeview, no more separate treeviews for each connection
-
Revamped the About Form
-
Added menu item 'View Documentation in Browser' (this page)
-
Added two demo SQLite demo databases.
-
The executable is no more 200 KB size but 2.3 MB
Code Changes (the developer's point of view)
If you (developer) are familiar with the code of Query ExPlus,
here a quick overview what is different in QueryPony:
-
The solution file is downgraded from VS-2010 to VS-2008.
-
A solution file for SharpDevelop 4.1 is added.
-
The former one project is split in two: GUI and Engine.
This was done in successive steps:
-
Split project folders physically. (Now everything was disrupted.)
-
Restore the QueryOptions. (This was trivial in the first attempt,
because they are not really implemented at all.
But they are the tricky thing, when it comes to re-activate them,
because they are the ones who call from engine to GUI, the
calling direction which has to be eliminated.
They are not fully activated yet.)
-
Restore the ConnectionSettings. (This was not so trivial.
It entailed to duplicate the ConnectionSettings class, one for the GUI and
one for the Engine, the both with distinct but overlapping purposes.
And it entailed to clean up details of the .NET Settings
utilization, and completely refactoring the Settings overall
read/write mechanism.)
-
Divide the namespace in two. (This was easy, after the previous steps were finished.)
-
Simplifications
-
Started to reduce the ConnectionSettings properties to make it easier
to add further database implementations.
-
Other simplification possibilities were analyzed but not yet realized:
-
The database type implementations *DbClient, *DbBrowser, *QueryOptions,
which have to be duplicated for each newly added database type, show
redundancies which can be refactored away.
-
In the ConnectForm exists one separate tab for each database type now. This is not
necessary. It is possible, to have one and the same ConnectionSettings control set
for all databases in common. Means the tabs, and with them the multiplication of
controls, are a superfluous.
-
Introduced a centralized treeview instead dedicated treeviews per
Query Form.
To achieve this, serious adjustions in the inner calling pathes between the objects
had to be made, and a new inter-objects communication infrastructure was set up.
-
Some third party libraries are integrated or amenable.
-
File and folder renamings . . .
-
New files and folders . . .
-
Additional helper project 'IOBus' for communication
between GUI and library and with utility methods.
-
Shake up code formatting (sorry for this).
-
License changed from Public Domain License to GNU AGPL v3.
Why split engine off from GUI?
(1) The general reasoning is the cleaner design.
With the subfolders 'Gui' and 'DatabaseApi', the preceding authors
had already started to separate GUI and engine to some degree.
But separating the projects physically, makes an absolute cut now.
To make the cut rational, the references then must go only in one direction.
Only the GUI may reference the library, not vice versa. This condition
forcefully pushes through a one-way calling structure. As it turned out,
there existed indeed calls the other direction, from DatabaseApi to GUI classes,
which I had to eliminate.
(2) But the hard fact reason, why I split engine from GUI
that stricly, was that I wanted a pure library
to provide a 'database-ignorant database access API' for any program.
So now it is not anymore only QueryPony.exe as a standalone tool,
but beside it exists QueryPonyLib.dll, an independend library,
one can utilize from any .NET application.
The Changelog
Below pane is faded in from file changelog.txt.
2013-07-26 QueryPony 0.3.0 Alpha Release
- Outlined database types shall all be accessible
- Missing treeview nodes labeling supplemented
- Divan for CouchDB integrated (not much utilized yet)
- Various bugs fixed
2013-07-10 QueryPony 0.2.0 Crashtest Version
This are the differences as compared with Query ExPlus 2.0.3.1:
Feature changes (from the user's point of view)
- It requires .NET 3.5, no more .NET 2
- Added implementations for MySQL, PostgreSQL, SQLite, CouchDB (not all applicable yet)
- The Connect Dialog is on a permanent Tab, no more in a modal dialog
- The Connection Forms are 'forms-on-tabs', no more MDI-Windows (Multiple Document Interface)
- Only one centralized treeview anymore, no separate treeviews per connection
- Revamped the About Form
- Added menu item 'View Documentation in Browser'
- Added two demo SQLite demo databases
- The executable is no more 200 KB size but 2.3 MB
Code changes (from the developer's point of view)
- Solution file downgraded from VS-2010 to VS-2008
- Solution file for SharpDevelop 4.1 added
- Split the one project in two: GUI and Lib (engine)
- Simplified ConnectionSettings properties
- Third party libraries integrated (for MySQL, PostgreSQL, SQLite)
- Some file and folder renamings
- Some new files and folders
- Additional helper project 'IOBus'
- Shake up code formatting (sorry for this)
- License changed from Public Domain to GNU AGPL v3
2013-06-04 Spawn project QueryPony from Query ExPlus 2.0.3.1 (r75)
The history entries from QueryExPlus-ReadMe.txt:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2010-10-04 k3b Created this Readme; Upgrade from vs2005 to vs2010. Compiled for dotnet2.0
2008-01-12 guessmann Version 2.0.2.8
2008-11-27 k3b Added OleDB-Browsing support
2006-10-14 guessmann Version 2.0
2006-09-14 guessmann Version 1.01 Created fork from www.albahari.com/queryexpress.html
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~