Am 01.05.2015 um 22:36 schrieb Eduardo:
> You propose then to make an hybrid: to depend a bit on one source (MS) and a
> bit on another (RichClient)
No, what you get with the RC5 is a kind of "vbRuntime-Classes 6.5",
which already does *not* require you to depend on:
- MS-ADO/JET (SQLite serves as well in the typical Desktop-DB-scenarios)
- MS-GDI+ (nice graphics-support per cairo instead)
- MS-XML COMponents (the RC5-Classes are stable and faster)
- MS-FSO (cFSO can be used instead for Unicode-capable FileHandling)
- MS-Winsock (not needed due to API-based Socket-Classes)
- MS-CommonControls (one can make use of vbWidgets.dll instead)
In combination with the new vbRuntime-independent Form-Engine, you'd
decouple already from a lot of potential stuff which "could break"
or not being available in the future (for normally written VB-Apps).
If you don't use or need anything of the above in your Apps
(directly or indirectly), then you're not "safer with the RC5" -
but if you do - and use the replacements, then you are.
How much safer - that depends - but saying that using the RC5
involves an even greater risk, is just plain wrong (as long as COM
is supported on MS-Systems - and the vbRuntime requires that anyways).
> If there was a component or a set of components to get rid of all (or
> the most part) of MS altogether, it would be more attractive to me.
That on the given OS (MS-Windows) there's still MS-Win32-APIs used
under the covers of the RC5, is normal (any platform-independent
framework needs to address those System-APIs, in case a "Window
needs to be shown", or a "File needs to be accessed, or a Socket") -
but in certain other categories there's an entire set of System-APIs
which are completely avoided inside the library.
> But to put myself not only in the hands and good will of one, but on
> two third party sources... doesn't seem a good idea.
That's a really weak argument, starting with the term "good will"...
I'm a longterm VB-Community-Member who bundled a few Man-Years of
work in an free usable package, to close some gaps for the community,
and make what you build on it (somewhat) less dependent on MS...
IF that's not good-will "right there", then I don't know...
Nobody will ever be able to take this COM-lib away from VB6-users.
It would provide what it contains currently (even in case I wont
maintain it anymore) for many more years to come - and would
work as long as the vbRuntime is working on new systems.
> ...you know that I'm a "difficult" guy, to convince. Perhaps I'm wasting
> my time not having migrated to your RichClient already, who knows.
Nobody requires you to do a "full migration" or something - it
contains enough Classes which are not GUI-related, and which you
could incorporate as slowly as you like...
> I have a project of more than 110.000 lines, about 100 forms,
> 80 class modules, 20 usercontrols.
> BTW: I use DAO.
> I try to avoid problems as possible. Still, I have a lot.
In case this is still your project, which involves the "fast word-
scans and stuff" (IIRC), and the performance could still be better
than what you have currently with DAO/JET, why not simply pick
an isolated test-case which performs not as it should, and try
to re-implement only that smaller part with the SQLite-classes.
This engine is really fast and worth a try (converting a JET-*.mdb
is only a matter of using the cConverter-Class of the RC5, with
a few lines of code).
> About svg icons: it seems that the use of svg icons is still very limited
> today, almost all the icons sites offer them in png format, not vector
> based.
It is not as limited as you might think.
Nearly in all OpenSource-Desktop-Projects (KDE or GNome) there's a whole
lot of Icons involved - and the first format the "Designer-Guys" will
produce from either InkScape (an OpenSource-App, which can read and
write SVG as its native format) - or the ones "with a lot of money -
or appropriate Jobs" use Adobe-Illustrator (producing vector-files in
*.ai format then).
These "Desktop-Icon-Sets" - e.g. as the one you linked to below:
>
http://sora-meliae.deviantart.com/art/Meliae-SVG-Icon-Theme-v-1-2-151155215
Will then often *not* contain the SVG-originals the Designers have
in their Project-Folders, but already pre-rendered PNG-Files in
different resolutions (that's mainly out of performance-reasons,
since the *parsing+rendering* of an existing SVG often takes (much)
more time, than simply loading (and uncompressing) a *.png-File
(when the SVG-file is a complex one, which most of the nicer ones are).
Current practice is, to load a somewhat higher resolution PNG-file
into the App - and then Downscale from its Pixel-Content (which
doesn't produce much different results from an SVG which is rendered
into the desired size directly, when the Downstretch-Algo is a
decent one).
> I don't know why svg icons are still not used on Windows programs, they
> have the advantage of easily making DPI aware apps.
One reason is, that there's no MS-System-API (not even support in GDI+)
for SVG - the newer MS-Browser-Engines (since IE9) can render SVG -
but that functionality is not exposed as an easy usable API somewhere
(at least not to my knowledge).
The other reason I already tried to explain above; if your App is using
*a lot* of Icons on a given Form, then rendering them over and over
directly from a given SVG-content is performance-wise not advisable.
What I do is quite similar to how the OpenSource-Guys handle that stuff,
I convert either to decently sized PNGs and ship these with my Apps
(using the DownScale-approach I mentioned) - or load them dynamically -
but only once, on App-Startup - converting them to a "decently sized"
Cairo-Surface beforehand (which is then used for the Pixelbased down-
scaling again).
> The disadvantage may be the difficulty to customize them or to make
> your own.
No, that's exactly the advantage of Vector-Graphics - you can load
and edit/change/combine an SVG-File over and over again - they are
often constructed in Layers - and each little Path-Object can be
clicked+selected and then changed with regards to the outline -
or the Stroke, or the Fill-Color, or Fill-Gradients etc.
As said, InkScape is the Tool when you want to use Free-Software -
and Corel- or Adobe (as well as other Vendors) have Vector-Editors
too (most of these Tools can read any of the other Formats which
are common, e.g. InkScape can ready *.ai files as well - and
Adobe-Illustrator can also export to *.svg).
In case you're interested in a larger IconSet of about 1000 SVGs
(which BTW comes also under a more liberal license which allows
also commercial usage -> LGPL - whereas the Link you gave above,
comes under GPL only - so commercial usage would be forbidden).
Here's a link to the Oxygen GitHub-Repo, where you can download
this quite large set (73MB or so) over the small Button:
"Download Zip"- at the right-hand-side of the GitHub-Page:
https://github.com/rubenvb/oxygen-icons-svg
In case you want to make use of my small Viewer-App I've just
adjusted to the latest version of the RC5:
ScreenShot:
http://vbRichClient.com/Downloads/OxygenIconViewer.jpg
VB6-Project:
http://vbRichClient.com/Downloads/OxygenIconViewer.zip
DownloadPage for the recent RC5-libs (currently at 5.0.27):
http://vbRichClient.com/#/en/Downloads.htm
DownloadPage for the needed vbWidgets.dll:
https://github.com/vbRichClient/vbWidgets
("Download ZIP"-Button as on the GitHub-page for the Oxygen-Icons)
Usage:
Put the RC5-libs into a Folder on your Dev-Machine - e.g. C:\RC5\
Register (only) vbRichClient5.dll there...
Put the compiled vbWidgets.dll (out of the GitHub-zip) into the same
Folder (beside vbRichClient5.dll) and register that Dll too.
Then unzip the OxygenIconViewer.zip Demo-Project into a Folder.
And (before you start the *.vbp) - place the \icons\ folder
which is contained in the GitHub-Oxygen-Zip in the same Folderr
as the *.vbp-File (as a "Project-SubFolder", so to say).
Then start the *.vbp and parse through the Icons.
That much in case you (or others) are interested to at least use the
RC5 on your Dev-Machines "as a tool for your own usage" (e.g. to
create Icons or PNGs from those SVGs in any size).
Olaf