|

|
|
General questions
What is WinBinder?
Why should I use WinBinder?
How much does it cost?
Can I use WinBinder in my commercial application?
Is it usable already?
Is WinBinder object-oriented?
Where can I find more information about WinBinder? Is there a function
reference?
WinBinder and PHP
What is PHP?
Why PHP?
Which versions of PHP are supported?
Why don't you just dump PHP 4 in favor of PHP 5?
Where can I find more information about PHP?
Where can I get a PHP function reference?
WinBinder vs. PHP-GTK
What are the similarities between WinBinder and PHP-GTK?
But PHP-GTK is a stable product. Why shouldn't I use it instead?
So what are the differences between WinBinder and PHP-GTK?
Windows questions
Which versions of Windows are supported?
Why doesn't it run under Windows 95 or Windows 3.1?
Does WinBinder need any framework or runtime library to work with?
Which control classes and Windows features are supported?
Do I need a resource editor to design dialog boxes for
WinBinder?
Does it support Windows XP themes?
Installation issues
How do I install it?
I already have PHP installed in my computer and don't want to mess
with it. Can I use WinBinder anyway?
WinBinder claims to be very lightweight. How small is it, really?
Database questions
Which databases are supported by WinBinder?
How does WinBinder support databases?
Which other methods of storing and retrieving data are supported?
Is there a preferred database to use with WinBinder?
Compilation
Which language is used to develop WinBinder?
Which compiler is used to build it?
Extending WinBinder
Is it possible to use WinBinder with other script languages besides
PHP?
Is it possible to use WinBinder with a compiled language? What about
embedding it in a compiled program?
O.k., but will you support extending WinBinder to other (script or
compiled) languages?
Is it possible to port WinBinder to OS X, Linux, or (your favorite
OS here)?
I would like to help. Is it possible to join
this project?
General questions
What is WinBinder? A. WinBinder is a new open source extension that allows PHP programmers to easily build native Windows applications.
Why should I use WinBinder? A. WinBinder encapsulates a great
deal of the complexity of the Windows API, so applications can be developed
quickly and easily. Since PHP is a scripting language you are not required to
compile anything, just code and run. Click here
for a more detailed explanation.
How much does it cost? A. Nothing. WinBinder is released as open source,
meaning it is completely free for home or commercial use. Its source code is also freely available
and is included in the distribution files.
Can I use WinBinder in my commercial application? A. In
a word, yes. There are very few restrictions to what you can do with it. The
BSD-style license allows you to create freeware, shareware, commercial
or open source applications.
Is it usable already? A. Yes. Take a look at the examples
page to see some screenshots of real applications. You may also download
the demo to see a complete, standalone program built with WinBinder.
Is WinBinder object-oriented? A. The WinBinder library itself
is not object-oriented, but it has an OOi (object-oriented
interface) written in PHP (version 5 only) that consists of a class library
that encapsulates the WinBinder functions. This way the extension effectively
supports both procedural
and object-oriented programming models so you can choose which one is best for you
and your application.
Where can I find more information about WinBinder? Is there a function
reference? A. There
is an online version of the
WinBinder manual with the function reference. You may also take a look at the winbinder-discussion
mailing list archives and the winbinder
forum..
WinBinder and PHP
What is PHP? A. PHP is a remarkable scripting language that is extremely
popular. It is used mainly for web
development, but relatively recent enhancements have enhanced it to the point
that it can be use as a general-purpose language for console and GUI applications
as well.
Why PHP? A. PHP is easy to learn and to use. If you have a background
in C, C++, Java or JavaScript, you will be comfortable with PHP in no time.
You can master PHP even if you are used to Visual Basic or ObjectPascal (Delphi)
due to its logical an no-nonsense implementation. It has a great collection
of useful extensions and provides excellent database support. It is fast and
performs very well under Windows. It has a very large installed base of programmers
and users and it is increasingly popular. Furthermore, it has a very liberal
license that allows you to produce open, source, freeware or commercial applications.
Which versions of PHP are supported? A. WinBinder runs equally
well with versions starting from PHP 4.3 and PHP 5. It comes with libraries
for both versions.
Why don't you just dump PHP 4 in favor of PHP 5? A. Because
of size. The PHP 5 runtime is roughly 2.5 times bigger than PHP 4. In compressed
form the ratio is even greater (about 2.8), so PHP 4 is great for distributing
standalone applications. If size is not a concern, you may prefer to use PHP
5 because it has a bunch of new functions (although most are not intended for
CLI usage). If you are going to work with object-oriented code, however, you
must definitely go with PHP 5 to take advantage of the OOi interface. Click
here to
learn more about the differences between PHP 4 and PHP 5.
Where can I find more information about PHP? A. PHP is very
popular, with hundreds of web sites dedicated to it, in many languages.
The PHP web site is user-friendly
and has plenty of useful information. A search engine like Google
will help you find some very fine web sites that will help you get started.
Where can I get a PHP function reference? A. The PHP documentation page has
links to the PHP manual in many languages. You will probably want to browse
its contents online or download
the manual in the very convenient CHM (Windows HTML Help) or HTML format.
WinBinder vs. PHP-GTK
What are the similarities between WinBinder and PHP-GTK? A.
WinBinder is often compared with PHP-GTK because both can create GUI applications
for Windows and they use PHP as their language of choice. Also, both isolate
the programmer from the Windows API and both are open source.
But PHP-GTK is a stable product. Why shouldn't I use it instead? A.
PHP-GTK is a solid piece of work that has the big advantage of being multi-platform.
You should definitely choose it if you need a stable framework for your project
or if you need to port your programs to different platforms. the drawback is
that PHP-GTK is complex. It has several hundred classes, methods, functions,
enums, and structures. It also
does not create truly native interfaces -- it does not need to. WinBinder,
on the other hand, generates 100% native Windows applications and has a much
simpler approach to programming. See this
page for a more extensive discussion.
So what are the differences between WinBinder and PHP-GTK? A.
The table below summarizes the main differences between the two extensions.
|
Language / env.
|
PHP-GTK
|
WinBinder
|
|
Platforms
|
Linux, Unix, BeOS, OSX, Windows
|
Windows
|
|
Native
|
No
|
Yes
|
|
Programming models
|
Object-oriented
|
Procedural and object-oriented
|
|
Footprint
|
1.8-6.5 MB
|
130 kB
|
|
License
|
LGPL
|
BSD
|
|
Current status
|
Mature, stable
|
Under development
|
Windows questions
Which versions of Windows are supported? A. WinBinder runs successfully
on Windows 98 SE, Windows 2000, Windows XP Home Edition. It will
most certainly run also under plain Windows 98, Windows Me, Windows XP Professional Edition, Windows
NT Workstation 4.0 and Windows
2003 Server, but there are still no reports about these systems. Please contact
me if you have tested it on any of these systems. WinBinder was also tested
successfully under Wine
and will probably run under any Windows emulator for Linux or OS X.
Why doesn't it run under Windows 95 or Windows 3.1? A. The PHP
Team ceased to support Windows 95 since version 4.3.0, which is the minimum
version required to run WinBinder. Windows 3.1 is a 16-bit platform, while PHP
and its extensions need a 32-bit system to run.
Does WinBinder need any framework or runtime library to work with? A. No.
It interfaces directly to the Windows API to ensure low footprint and good
performance. Therefore it does not need MFC, .NET, WTL, Java or other such libraries.
Which control classes and Windows features are supported? A. See this
page for an updated list of classes and this
one for a list of window types. For more information, look at the contents
page of the online manual.
Do I need a resource editor to design dialog boxes for
WinBinder? A.
WinBinder does not need compiled resources. It builds its windows, dialog boxes
and controls on the fly. You can code
your resources "by hand", which is a painstaking but perfectly valid process.
In this case you will not need a resource editor. However, it is much easier
to use a resource editor to
generate one or more RC files. WinBinder will then parse these files and convert
them to WinBinder commands. The only resource editor tested to date is WinAsm Studio
by Antonis Kyprianou, but others can be easily supported as well.
Does it support Windows XP themes? A. Yes. See this
page for some screen shots.
Installation issues
How do I install it? A. Just follow the step-by-step instructions
in the Readme file that comes with your download. Here
is a copy of it.
I already have PHP installed in my computer and don't want to mess
with it. Can I use WinBinder anyway? A. Yes. It does not harm to have
more than one copy of PHP in the same computer, even from different versions.
Also, WinBinder uses its own PHP.INI file.
WinBinder claims to be very lightweight. How small is it, really? A.
For an application, the additional footprint is around 130 kB, uncompressed. Compression
will decrease the file size to around 50 kB. You will also need 1.4 MB for
the PHP 4.3 libraries or 3.5 MB for PHP 5, plus any external PHP libraries that
your application may require.
Database questions
Which databases are supported by WinBinder? A. All databases supported by PHP are also supported by WinBinder.
These include SQLite, MySQL, MS SQL Server, Oracle, Informix, PostgreSQL, and many
others. ODBC and database abstraction layer functions are supported as well.
How does WinBinder support databases? A. WinBinder can access
databases directly through the many existing PHP database functions. WinBinder
also comes with an optional layer written in PHP that greatly facilitates the
exchange of data between WinBinder controls and SQL databases and is database-independent.
This layer currently supports SQLite and MySQL. You may use whichever method
most suits you.
Which other methods of storing and retrieving data are supported? A.
Any method supported by PHP is also compatible with WinBinder. These include
XML,
INI files, and CSV (comma-separated value) files. Also, the Windows Registry
is directly supported.
Is there a preferred database to use with WinBinder? A. MySQL would
be an
obvious choice because it is a the facto standard for PHP and it is already embedded
in PHP 4. Since WinBinder is meant for standalone applications,
however, SQLite will probably be your best option. SQLite supports only a subset of SQL commands,
but it does not require a server or any other kind of installation, allowing
the creation of standalone applications that can run immediately after setup. SQLite
can interface directly with WinBinder through an optional wrapper. SQLite
is already embedded in PHP 5 and requires a small DLL (230 kB) for PHP 4.
Compilation
Which language is used to develop WinBinder? A. Like PHP itself,
the WinBinder library is developed in ANSI C (not C++). PHP is also used extensively
for additional libraries and testing.
Which compiler is used to build it? A. In theory, any ANSI C compiler
can be used to build WinBinder. LCC-Win32,
by Jacob Navia, is the standard compiler. MS Visual
Studio was already tested successfully. MinGW
and Pelles
C worked with variable degrees of success. Other target compilers include
Dev-C++ and
Digital Mars . Please contact
me if you want to use a compiler other than LCC-Win32 so I can help you.
Extending WinBinder
Is it possible to use WinBinder with other script languages besides
PHP? A.
Yes. The two-layer WinBinder architecture is designed
so that it is possible to create bindings for other script languages. The hard
work is already done by the API layer, so binding it to other languages should
be relatively straightforward. The only language supported to date is
PHP. If you are interested in binding WinBinder to another scripting language,
please contact me so I can help you.
Is it possible to use WinBinder with a compiled language? What about
embedding it in a compiled program? A.
The two-layer architecture used in WinBinder allows it to be embedded in an
application or used as a standalone DLL, although nobody seems to have attempted
this yet.
In this case, the API layer would act as a simple framework to the Windows API. If you are interested in using
WinBinder with a compiled language,
please contact me so I can help you.
O.k., but will you support extending WinBinder to other (script or
compiled) languages? A.
Certainly. This is one of the goals of this project. However I do not have plans
to not support any attempts to make it run natively in other platforms (see
the next question)
Is it possible to port WinBinder to OS X, Linux, or (your favorite
OS here)? A. In theory
yes, because the WinBinder architecture allows this. However, the bulk of the
code resides in the
API layer, and replacing it is not trivial by any means. This seems to be an
overly complex task which is not among the goals of this project.
I would like to help. Is it possible to join
this project? A. Yes, please :) Currently there is plenty of work
to do in the C code, PHP examples, documentation, and other areas. You are very welcome
to join the team. Please contact
me if you think you can be of help.
|