NEW IN 4D V14
State of the Art Business Applications
From productivity to mobility, the best 4D ever
4D v14 builds on the business development application platform's highly-evolved, solid foundation for even greater productivity for developers and end-users, amazing ease of maintenance, and the ability to bring your solutions to the Web and mobile.
Please note: For its initial release, 4D v14 is only available to 4D Partners and those under the Maintenance program. Public availability will be announced shortly.
A great foundation
For years, 4D has been built on a solid foundation, with each new version bringing additional performance and stability, as well as ease of use for developers and end-users. 4D v14 further builds on this foundation with vast improvements in the management of and access to data, multi-lingual support, mirroring, journaling and logging.
Structured Objects in 4D
The object is so fundamental to the backbone of 4D v14 that it often took center stage at 4D Summit 2013 in Las Vegas and Europe. View a presentation of objects and how they work below. (Video, 19m23s)
The new C_object acts as a simplified array with key-value pairs. It is a schema-less collection of variables, with each being completely unique. Instead of having to load an entire table into memory, a developer can simply access what is necessary by using object theme commands.
C_object is ubiquitous: It can be used in the query editor, and is used by 4D itself for dynamic key-value pairs, in the Plug-in SDK, the realtime monitor, in form geometry, the improved Web Area, and in the all-new 4D Mobile feature.
External access via SQL views
There are many ways to interact with data from outside of 4D, the primary being ODBC. 4D v14 introduces an improved security model. Going beyond users, groups and schemas (and thus table control), SQL Views can limit the particular table columns and rows that users have access to.
Creating a view is as easy as writing a SQL statement and a query, and users can be limited to accessing just this view, as opposed to an entire table or an entire database. This provides secure access from external tools like Crystal Reports and Dynamics GP (Great Plains) and is compliant with strict HIPAA privacy standards, not to mention within 4D itself to make access for users.
Extended multi-lingual functionality
4D v14 can now be installed in any one or many of the six languages available. On Mac OS X, 4D will default to the system language, if available. While this is not standard behavoir in Windows, 4D v14 is designed to borrow this useful capability from the Mac.
You can take multi-lingual apps further, with the plug-in architecture now supporting multiple languages with support for separate lproj files in each language.
4D v14 contains new mechanisms to generate and use journal files. With a high-availability mirroring system, 4D gains a more secure architecture with fine-grain control over which tables are journalized. Integrated log files that are less linear are also more robust. In journal mode, for example, records are uniquely identified by primary key, which is more secure than a record number. Mirrors have their own logs, so you can now mirror a mirror.
In 4D v14, a production server has a journal, as does a mirror, rendering mirrors recoverable. If there’s a problem with a production server, a mirror can quickly go into production, and because that mirror is journaled, a new mirror can easily be created, ensuring full-time redundancy and limited downtime.
The efforts to improve mirroring in 4D v14 has also resulted in improved journaling, namely selective journaling. Tables can now be specifically targeted for logging, allowing developers to select the important data to be included in a journal, while leaving out unimportant data for improved efficiency.
A new debugger log – providing consistent, more readable error logs – makes tech support easier, whether it’s for you calling 4D or your client calling you! And anything that makes support easier is better for your business, and leaves you more time for developing critical new features for your solution.
Use of the mobile Web – not only for browsing or retrieving data, but for running functional applications – has seen explosive growth in recent years. Developers seeking a solution to bring their 4D applications to the mobile and Web space now have the means to do so.
With a growing number of smartphones and tablets being released on to the market each year, and with ever-increasing fragmentation of mobile operating systems and browsers, Web applications are a practical solution for putting the same functionality across desktop and mobile operating systems and browsers. Sidestep app stores, OS updates, and other headaches by expanding the reach of your 4D application to the Web sphere.
4D Mobile, new for 4D v14, is a means of getting your 4D applications and their data to the Web and mobile devices more easily and functionally than ever before. It provides a transparent bridge to 4D’s Wakanda platform for professional Web applications. Your 4D application’s data can be made available (and manipulable) at a basic level via browser with no additional programming necessary, but with plenty of room to go further.
With 4D Mobile, a Wakanda app has selective access to all of your 4D application’s tables, data and methods, in order to replicate functionality from any modern browser – whether on desktop, tablet or mobile – from any 4D source.
To make your 4D v14 application compatible with 4D Mobile, all it takes is a simple checkbox in the Web Server Configuration of your Database settings, which allows 4D’s Web server to take REST requests.
Of course, mobile applications – particularly data-intensive ones – have particular requirements like multi-user access and optimistic concurrency control. 4D Mobile supports these, naturally.
Furthermore, solutions connected to Wakanda via 4D Mobile can even be hosted on the cloud for high availability and scalability.
It is free to develop with 4D Mobile for those with licenses with 4D Developer Professional or 4D Team Developer Professional. You may download Wakanda Enterprise (including Wakanda Enterprise Server, Wakanda Enterprise Studio and 4D Connector Pro) to develop and test your Web application.
4D Mobile Expansion is sold as a deployment option for 4D Server in a package including Wakanda Enterprise and 4D Connector Pro. Get details here.
Taking your productivity to new heights
The 4D features that developers use every day (and in turn, that end-users rely upon) need to be as efficient and easy to use as possible. 4D v14 has continued the evolution of these features in ways that are logical and, of course, productive.
Web Area gets even better
A new Web Area Inspector allows you to expose and explore all the elements of your Web Areas just as you would with any modern browser, insert breakpoints as you would in the 4D debugger.
A new query editor
Redesigned to be more modern, the new query editor includes features like intelligent constraints based on data type (i.e. “is”, “is not”, “contains” for text, “is true” or “is false” for Booleans, “is today” or “is within last…” for dates, etc.).
There is also a history of recent queries to easily access the last ten queries performed.
Queries are considered schema-less objects, and can thus be defined as a C_object and further exported as JSON, modified, and re-used in other applications.
New array types
The language used by 4D is itself rich and powerful, highly adapted toward the needs of professional business applications. Its evolution advances in 4D v14 with new array types – ARRAY TIME, ARRAY BLOB, ARRAY OBJECT – the latter of which is closely connected to the aforementioned C_object to easily access data inside objects.
A more versatile list box
As one of 4D’s most utilized interface elements, the list box is incredibly important and thus sees further improvement under 4D v14. List boxes can now contain styled cells and word wrap functionality, all accessible via checkbox properties and programmatically with new commands.
List box columns can now be programmatically duplicated and moved, and list box items also gain a programmable double-click event and 4D standard actions.
Styled text object
Text has become even richer in 4D v14, with integrated URLs and even integrated 4D fields and methods via 4D expressions, with support for events (e.g. OnClick) including customizable right-click actions.
You can now easily create HTML mail, including 4D expressions in subject and body code. Take advantage of font list management, HTML image tags and HTML entities, and even mail merge.
Two new commands (ST INSERT EXPRESSION and ST INSERT URL) and a handy developer widget will help you create styled text in a flash.
Generating emails has become an indispensable feature for many applications, including the ones you create. Improvements to email come via 4D Internet Commands, refined and revamped for 4D v14. Features include Unicode support, inline HTML previews, and automatic generation of multipart emails for full support of sending HTML mail.
Further front-end niceties
The user experience is improved under 4D v14, with small but significant interface improvements that make applications easier and more productive for end-users.
For example, you can now customize drag-and-drop images with the SetDragIcon command to further enhance user interface ergonomics. Lists and pop-ups can now be connected directly to tables. Static text can now be displayed vertically… or even upside-down!
A new event, called OnPictureScroll, does what the name suggests, allowing you to trigger an action when an image has been scrolled. Speaking of scrolling, scrollbars now appear automatically in list boxes and hierarchical lists.
And to the relief of many end-users, form geometry is now “memorized,” meaning splitter positions, open tabs, listbox column widths and slider positions are now retained between sessions.
Maintaining your solution
As use of your solutions grows, users have demands for new versions, updates, and additional maintenance capabilities. With growth, you also have a greater need for control over your deployment and development process. 4D v14 provides new features to respond to these needs.
Design Object Access
In 4D v13, 4D gained the capability of method introspection at runtime. With 4D v14, this has been extended to form introspection. The FORM GET NAMES command allows you to retrieve an array names of all the methods in a form, while FORM LOAD allows you to load a form into memory to get to its internals. FORM GET OBJECTS can retrieve all the objects in a form, and a new host of getters have been added to be able to retrieve all the settings for these form objects.
The advantage of design object access, and namely form introspection, is the ability to discover exactly what is in your application interface, their dependencies, and determine what would need to be updated or modified to create a new version of your solution (i.e. job costing). Another use would be to easily export all of your form objects and methods to text for the purpose of revision control/tracking.
The new debugger log and its chief benefit is mentioned above. To go further, your debug and request logs are now more human readable, with line numbering, headers, tab-delimited columns, carriage returns, escapes, and durations in microseconds. Logs can also be segmented for better management of the space they take.
These improvements lead to improved performance analysis, and this is further improved by on-the-fly analysis with the Real-Time Monitor (RTM), which shows logging processes as they happen. You’re armed with as much information as possible about what’s happening with your application right away, all of which is available programmatically via the GET ACTIVITY SNAPSHOT command.
Automatic Updates of Merged Apps
If your application has multiple users, it can sometimes be a challenge keeping everybody on the latest version. 4D v14 now offers automatic updates to merged applications, using client update capabilities coded by the developer: Simply restart the server with the new Restart4D command, pointing at the directory containing the new version of your application using SetUpdateFolder. Two commands.
You can even start engined apps as a service. (Note: Apps work as services on Windows. On Mac OS, engined apps must be signed to GateKeeper.)