Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Combine embeddedd files into one dll [CORE6200] #6445

Closed
firebird-automations opened this issue Dec 2, 2019 · 17 comments
Closed

Combine embeddedd files into one dll [CORE6200] #6445

firebird-automations opened this issue Dec 2, 2019 · 17 comments

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: Clyde Eisenbeis (bhs67)

It would be good if the necessary files for embedded were combined into one dll. This would simplify everything and increase the odds of widespread usage.

@firebird-automations
Copy link
Collaborator Author

Commented by: @asfernandes

Simplify what and how?

@firebird-automations
Copy link
Collaborator Author

Commented by: Clyde Eisenbeis (bhs67)

It would be good if the embedded files were compiled into one dll. A code writer would use this dll in creating a C#⁠ exe (that incorporates the use of a stand-alone Firebird database).

If a non-technical person wanted to use this database program, it would be very easy to add the exe and the dll to their PC. The exe would create the database and make it easy to use.

A list of the embedded files can be found at --- https://www.lawinegevaar.nl/firebird/jaybird_embedded_example.html --- (which also applies to C#⁠).

@firebird-automations
Copy link
Collaborator Author

Commented by: @reevespaul

The link provided is not actually the minimum - it is more for a luxury embedded install :-)

Most of the plugins in the above list are irrelevant for an embedded install. No authentication is required, and neither is tracing, nor the udr_engine. There is a reason they are called plugins, after all.

This is the absolute windows minimum:

firebird.conf
firebird.msg
fbclient.dll
plugins/engine12.dll

I'm fairly certain that the icu stuff would never, ever be bundled into a single embedded firebird dll.

And I can't see any great need to bundle intl/fbint.dll. It is not very large. And it is not really required unless you need specific character sets for indexing and collation.

@firebird-automations
Copy link
Collaborator Author

Commented by: @asfernandes

I never bought this argument. DLL + EXE is still two files (cannot be download together without a zip or something).

Looks like you want to avoid to create a proper installer or package for your application, or that you misunderstand your users (can extract a zip of two files but cannot extract a zip of multiple files, hum?).

@firebird-automations
Copy link
Collaborator Author

Commented by: Clyde Eisenbeis (bhs67)

Sorry for the slow response. I downloaded the newest files from --- https://firebirdsql.org/en/firebird-3-0/#Win64 → 64-bit Kits → Firebird-3.0.4.33054-0_x64.zip.

I used:

firebird.conf
firebird.msg
fbclient.dll
plugins/engine12.dll

My exe does not work. Examples of my code can be found at --- https://firebird.electronicsiseasy.com/. Thanks!

@firebird-automations
Copy link
Collaborator Author

Commented by: Clyde Eisenbeis (bhs67)

I'm interested in knowing what I'm doing wrong. Thanks!

@firebird-automations
Copy link
Collaborator Author

Commented by: @hvlad

Clyde,

"My exe does not work" - this is not informative. Actually, this is support question and should be asked in fb-support mailing list

@firebird-automations
Copy link
Collaborator Author

Commented by: Clyde Eisenbeis (bhs67)

The Firebird Tracker was recommended by the fb-support mailing list. This post is to "request" a "new" Firebird feature.

This request is to have "one" dll that compiles all necessary embedded files into that dll. A code writer would use that dll in creating a C#⁠ exe (that incorporates the use of a stand-alone Firebird database).

If a non-technical person wanted to use this database program, it would be very easy to add the exe and the dll to their PC. The exe would create the database and make it easy to use.

@firebird-automations
Copy link
Collaborator Author

Commented by: Sean Leyne (seanleyne)

It would be appropriate for the "application coder" to create the necessary install kit or (at least) install instructions, to place the application files in the correct locations.

The assumption that the project should support a "non-technical" person installation is IMO not reasonable.

@firebird-automations
Copy link
Collaborator Author

Commented by: Clyde Eisenbeis (bhs67)

There are many programs that are downloaded from the web, and installed, by non-technical people.

A program (implementing Firebird) could be widely accepted, if it were easy to install and easy to use. Some users would not know there is database. They just know the program works.

Some people use Excel as a database, instead of Access, as Excel is easier to use. But there are limitations using Excel as a database.

I selected Firebird because a database and tables can be created via an exe. No additional knowledge required. Simple to use by non-technical users.

If an embedded version of Firebird were easy to incorporate into an exe, it could result in widespread usage. I know of no other database programs that have this capability.

@firebird-automations
Copy link
Collaborator Author

Commented by: @livius2

"If an embedded version of Firebird were easy to incorporate into an exe"
you mean as a resource? Or separate dll next to exe?
If next to exe, then i see no reason for one file or multiple.
If you do not know which one should be included, then include all from firebird zip kit. It is small.

@firebird-automations
Copy link
Collaborator Author

Commented by: Clyde Eisenbeis (bhs67)

About 40 years ago, I used a CTREE database to create an electronic notebook. The code was written in C using DOS. Search for a word, and the exe would find "only" the pages with that word.

That exe created the CTREE database the first time the exe was run. There were no dll's. The user simply ran the exe, and everything else was magic.

Some years later, I modified the code to run on Windows (multiple re-writes, over time, for the various Windows OS). I still use this electronic notebook (which is invaluable).

I've also written code for Toastmasters. The database contains the members' info, and creates schedules so the responsibilities (speaker, evaluator, timer, etc) are rotated for the weekly meetings.

Most recently, I modified the code for both programs using C#⁠ and Firebird.

I would like to end up with one exe, and one dll, so it is easy for non-technical folks to install on their PC.

@firebird-automations
Copy link
Collaborator Author

Commented by: @livius2

"so it is easy for non-technical folks to install on their PC."

Install or copy? If install then you create installer.
If copy, then prepare folder with your application and tell user to copy that folder. Or create self extractor with some zip.

@firebird-automations
Copy link
Collaborator Author

Commented by: Sean Leyne (seanleyne)

Clyde,

The project already provides an install kit which allows "non-technical" users to deploy the Firebird components.

This case is about how to simplify the deployment of end-applications, not of Firebird itself -- embedded engine is for custom application use. As such, this is not a project issue, but a developer issue.

Just as deploying a C#⁠ application can require the installation of .NET assemblies, the same is true for custom applications using Firebird.

Long gone are the days of "CTREE"... which means that software deployment is no longer that simple.

@firebird-automations
Copy link
Collaborator Author

Modified by: Sean Leyne (seanleyne)

status: Open [ 1 ] => Resolved [ 5 ]

resolution: Won't Fix [ 2 ]

@firebird-automations
Copy link
Collaborator Author

Commented by: Clyde Eisenbeis (bhs67)

Thanks for clarifying.

@firebird-automations
Copy link
Collaborator Author

Modified by: @pcisar

status: Resolved [ 5 ] => Closed [ 6 ]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant