Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

An Introduction to Structr 2.1

DZone's Guide to

An Introduction to Structr 2.1

Structr provides a novel way to build web and mobile apps, backed by a graph database. Read on for a tutorial on leveraging the upcoming Structr 2.1 release.

· Integration Zone
Free Resource

Modernize your application architectures with microservices and APIs with best practices from this free virtual summit series. Brought to you in partnership with CA Technologies.

In one of our  previous blog posts, we promised to write more about new features of our upcoming release of  Structr, version 2.1, so here we are. Before we dive into the details, we’d like to announce the first tutorial that our friends over at  The SilverLogic created and which will be part of a series of example projects we’ll publish over the next few months. The detailed tutorial on how to create a Structr app shows many of the new features listed in this post. If you follow the tutorial, you will be able to create a simple blogging app within a couple of hours.

New Features

One of the most requested features among many other improvements and bugfixes is finally here and aimed at developer productivity: we added a new deployment tool that allows you to export a complete Structr application in the form of a collection of HTML and JSON files so that you can store it in any version control system (VCS).

We found a way to serialize and export all information which makes up a Structr app and is stored in Neo4j at runtime, to a filesystem structure. This allows you to use your favorite Integrated Development Environment (IDE) and   diff and   merge tools to make and track changes. In addition, the deployment tool (export/import) can even be used remotely over HTTP(S) so you don’t need a console login on the server to update your Structr instance.

Another new feature which makes operating Structr easier is the new web-based configuration tool: no need to manually edit the   structr.conf file anymore!

The config tool UI in Structr 2.1
The most anticipated feature of the new configuration interface is that you can now start and stop services individually while Structr is running. That means you can disconnect Structr from one Neo4j database and connect it to another, all without stopping the JVM instance, or you can enable and disable debugging and logging flags at runtime, which will greatly improve productivity.

Apart from that, the upcoming 2.1 release contains lots of new features to boost productivity. There’s a new administration console (press Ctrl-Shift-C to activate) for quick and easy scripting tasks, maintenance operations, or monitoring log files. We also improved the internal JavaScript scripting bridge and built a foundation which allows us to add support for more scripting languages like Ruby, PHP, Python, or R.

Other Improvements

A few other things we improved:
  • The test coverage has been improved and the tests are running much faster now due to better reuse of Neo4j instances.
  • A couple of new widgets to massively speed up app development.
  • Improved schema layout and schema editor enhancements.
  • Define editable texts like script files or content elements as favorites and access them quickly via a keyboard shortcut (Ctrl-Alt-F).

Developer Support Program

Due to the rapidly growing demand for documentation, training materials, and project support, we created a new program called the Developer Support Program which covers the most requested support services in an attractive package. We’ll announce more details soon.

The Integration Zone is proudly sponsored by CA Technologies. Learn from expert microservices and API presentations at the Modernizing Application Architectures Virtual Summit Series.

Topics:
structr ,integration ,web apps ,mobile apps ,app development

Published at DZone with permission of Axel Morgner, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}