Working in pretty much any language nowadays you have a package manager and a repository with lots of useful packages. Well, except for DataFlex of course.
As an exercise and to fill that gap I decided to build an infrastructure and tools to mimic other Package Managers and Repositories for DataFlex
Components
The system currently consists of the following components
- Packages
- Server Repository
- Package Manager Server
- Package Manager Client (graphical user interface)
- Package Manager Client (command line interface)
- Package Editor (graphical UI to build and maintain packages)
Packages
The packages are essentially zip files with a specific folder format and there is a json file included that describes the package. Packages can contain a number of different parts and the client knows how to install these parts into existing DataFlex workspaces.
Packages have support for versioning
Server Repository
the repository consists of a data storage that stores the packages on a data server and makes them available to the Package Manager Server. The system is built to allow multiple repositories and also supports security with logins for repositories.
Package Manager Server
The server is a web service that has access to the repository. The web service has functions to allow the client to connect to query packages, download packages and also has functions for the Package Editor to maintain packages in the repository.
Package Manager Client
We currently have two different client programs. One is a client with a graphical user interface, the other is a simple command line interface.
The client can talk to the Package Manager Server to query the available packages.
The client will create a file inside your DataFlex workspace to keep track of the package information. It will also create a subfolder inside your workspace to keep the downloaded package files.
The client knows how to install a number of different things such as Library workspaces, packages, DLLs, com components, html pages and more.
you can find the DataFlex Package Manager at http://www.windowsdeveloper.com/dfPackage.
you can find more information on the Package Manager at http://starzen.com/products/dataflex-tools/dataflex-package-manager/