Presentamos la última iteración del componente Build4D, ahora accesible en GitHub. En anteriores entradas del blog, discutimos las posibilidades ofrecidas por un proyecto compilado, un componente y una aplicación autónoma.
Ahora puede crear un script para su aplicación Cliente/Servidor de la A a la Z. E integrarlo fácilmente con herramientas de integración continua.
Veamos cómo.
¿Cuáles son las posibilidades?
Build4D ofrece dos clases para generar su aplicación cliente/servidor: la clase cliente y la clase servidor. Así, con los diferentes parámetros, todas las combinaciones imaginables son posibles.
Puede generar:
- un cliente macOS y/o Windows,
- un archivo cliente macOS y/o Windows para actualizaciones automáticas,
- servidores macOS y/o Windows.
Ejemplo
He aquí un ejemplo sencillo de cómo crear un servidor Windows con clientes integrados:
Paso 1: Crear un cliente y un archivo cliente
Este es un ejemplo sencillo de cómo crear una aplicación cliente y un archivo cliente.
var $build : cs.Build4D.Client
var $settings ; $archive: Object
var $success : Boolean
$settings :={}
// Define the external project file
$settings.projectFile:=Folder(fk documents folder).file("Contact/Project/Contact.4DProject")
// Define the 4D Volume Desktop path
$settings.sourceAppFolder:=Folder(fk documents folder).folder("4D v20.1/4D Volume Desktop.app")
// O
$settings.sourceAppFolder:=Folder(fk documents folder).folder("4D v20.1/4D Volume Desktop")
// Configure the application
$settings.buildName:="myApp"
$settings.destinationFolder:="Test/Client/"
// Add the application icon
$settings.iconPath:="/RESOURCES/myIcon.icns"
// OR
$settings.iconPath:="/RESOURCES/myIcon.ico"
// Add the application information
$settings.versioning:={}
$settings.versioning.version:="version"
$settings.versioning.copyright$archive$buildbuildArchive:="copyright"
$settings.versioning.companyName:="companyName"
// Sign if macOS appplication
$settings.signApplication:={}
$settings.signApplication.macSignature:=True
$settings.signApplication.macCertificate:="xxxxxx" //Certificate number found in your keyChain
// Create the client application
$build:=cs.Build4D.Client.new($settings)
$success:=$build.build()
// Create the client application archive
$archive:=$build.buildArchive()
Paso 2: Crear un servidor con los clientes integrados
Después de crear el archivo cliente (como en el ejemplo anterior), puede crear la aplicación servidor y utilizar los atributos macOSClientArchive y winClientArchive para pasar la ruta a los archivos cliente creados anteriormente.
He aquí un ejemplo de cómo crear una aplicación de servidor con archivos de cliente.
var $build : cs.Build4D.Server
var $settings : Object
var $success : Boolean
$settings :={}
// Define the external project file
$settings.projectFile:=Folder(fk documents folder).file("Contact/Project/Contact.4DProject")
// Configure the application
$settings.buildName:="myApp"
$settings.destinationFolder:="Test/Server/"
// Define the 4D Server path
$settings .sourceAppFolder:=Folder(fk documents folder).folder("4D v20.0/4D Server.app")
// OR
$settings .sourceAppFolder:=Folder(fk documents folder).folder("4D v20.0/4D Server")
// Add the application icon
$settings .iconPath:="/RESOURCES/myIcon.icns"
// OR
$settings.iconPath:="/RESOURCES/myIcon.ico"
// Add the application information
$settings.versioning:={}
$settings.versioning.version:="version"
$settings.versioning.copyright:="copyright"
$settings.versioning.companyName:="companyName"
// Add the client archives
$settings.macOSClientArchive:="...ruta macOS Archive..."
$settings.windowsClientArchive:="...ruta win Archive..."
// Create the deployment license file for OEM partner
$settings.license$buildbuild:=Folder(fk licenses folder).file("XXXXX.license4D")
$settings.xmlKeyLicense:=Folder(fk licenses folder).file("XXXXX.license4D")
// Sign if macOS appplication
$settings.signApplication:={}
$settings.signApplication.macSignature:=True
$settings.signApplication.macCertificate:="xxxxxx"
//Certificate number found in your keyChain
// Launch the build
$build :=cs.Build4D.Server.new($settings)
$success:=$build.build()
Siguiente…
Explore la documentación para obtener más información sobre esta nueva posibilidad.