My last article was about JavaFX on mobile devices with JavaFXPorts. It was awesome that JavaFX worked without bigger problems on mobile devices but the number of needed re-deployments was high. The app build process needs some time (~2-3 mins) and if you do a lot of UI related changes in your application (CSS, layout, ...) you lose development time.
How to save deployment time?
Simply don't deploy!
We have our product VisionX and it has a Live Preview for applications while developing. Our idea was that we could use the existing functionality to show changes on mobile devices immediately. It should work with Android devices because dynamic class loading is possible with custom classloaders.
But as so often, things won't work as expected.
Android has support for URLClassLoader but it doesn't work because the implementation is "legacy" . This means that loading classes with URLClassLoader didn't work. Android has a DexClassLoader!
The DexClassLoader works great if you have the archive on the device. But it has no support for remote class loading. The other thing was that DexClassLoader needs a jar that contains a classes.dex archive. The classes.dex contains all class files (in dex format).
The first problem was: How to create the DEX archive?
Not too hard because Android comes with dx.bat and dx.jar. It's super easy to convert a jar file or a classes folder to a dex archive. After the hardest part was solved, it was simple to implement remote class loading with Android, for our JavaFX application! If you need more information, leave a comment!
Here's the result of our Live Preview experiment as Video:
Window shutter web control
It works great and reduces deployments to a bare minimum: 1
It'll be version 2.2. We have 2 open tickets for this release but both are refactoring tasks, nothing too important. We're already feature complete.
It'll be an awesome release because we have a lot of performance improvements and some really cool features like lazy loading of BLOBs (binary content). The server implementation is now IoT ready and it's pluggable. Support for Lambda expressions with full backwards compatibility for our listener handling. And we have support for application monitoring, style definitions, streamed upload of large files, and much more.
We plan the release for the end of this week.
Our VaadinUI was based on vaadin 7.1.15 and 7.4 was released some days ago. We're happy to announce support for vaadin 7.4.
The repository of JVx' vaadin UI already contains 7.4 libraries and everything is available for you. We don't have an official release right now, because we do some tests and afterwards we'll release a new version of our UI. We don't have a date for you but hopefully in March.
We currently don't use the new Grid component, but we'll replace the current table implementation asap.
The last information is about the next release of VisionX 2.2 preview. It will contain JV' vaadin UI for vaadin 7.4 and some new features like exporting an application for embedded devices (run the application on embedded devices like Raspberry Pi, without application server - "Micro applications").
Oh, finally... Check our github page, because we have new projects for you.
Sure, we fixed some bugs and we also improved overall performance because of improvements in JVx. The most interesting thing is the support for embedded devices like RaspberryPi.
It's the In-Memory database system of SAP, developed in 2010 for, or togehter with some customers to handle big data. You'll find all details here.
The system should be super fast and brilliant... That was the reason why we thought it might be interesting for VisionX and of course, VisionX could be useful for HANA customers.
So what?
We have a lot of experience with most important database systems like Oracle, SQLServer, DB2, PostgreSQL and MySQL but we had absolutely no idea what HANA was. But it has a JDBC driver . We also have a lot of experience with JDBC drivers.
So we had the Know-How to do some cool things with HANA. Our simple idea was the integration into VisionX via JDBC driver like all other databases which are already supported. We tried to find out how we could start.
To be honest... We didn't read a lot of documentation because we are Researcher. Simply clicked on Try SAP HANA and... found more information.
The first thing we had to learn was, that it's not too easy to start and there's a lot of information about everything and nothing. We tried the "SAP HANA Cloud Platform Developer Edition" but got an error...
We love using Eclipse and SAP has HANA studio and Eclipse plugins. Sounds great, and we found a strange site. A really simple site with minimal information but we didn't find information about the JDBC driver. We read about HANA client which should contain the JDBC driver, but it also was available here. It was another place for downloading HANA software.
Did I tell you that we are Researcher? We love to solve complex and tricky software problems but why are there so many different download sites. All sites are different with more or less information.
Did I tell you that we're tough? You're right, we found the little pieces.
After we found the right path, we made progress because Plugin installation was as simple as it should be. The registration of a dev account was not big problem.
The next "problem" was using Eclipse because we didn't find a simple web site with configuration details. After some googling we had some stackoverflow hints but no complete guide. But it wasn't that hard to find out how it works. Oh I forgot to mention that we tried to get direct access to the DB and not to create a hello world example.
The SAP HANA Administration Console perspective was our friend and we tried to add a new System. After we saw that there's an option for Cloud system, we made some progress But don't think it's that easy. Don't forget to create a schema via online system, called Cockpit!
To shorten the story: It's NOT easy to start and too much documentation doesn't help if someone forgets to KIS.
After we had access to our HANA schema and understood how the cockpit worked, we tried to create our first application with VisionX. The next problem was that it's not allowed to connect to HANA instances directly via Internet, without tunneling (as usual). To create a standard JDBC connection via VisionX, we had to create a tunnel. What do you think: An easy task for about 5 minutes or a job for Google?
Long story short:
Learn using NEO (console client). It's part of the HANA SDK.
Working command:
neo open-db-tunnel -h hanatrial.ondemand.com -u p012345678 -a p012345678trial --id schemaID
(The URL is important! We found other URLs which didn't work)
Used the result of the command to create a JDBC connection and we were back in the game.
What was next?
Our dev environment was up and running and VisionX could connect to HANA but we had to do some laborious tasks because HANA had some specifics (not surprisingly). We solved most problems in HanaDBAccess which is now available in JVx.
One of the biggest problem was the JDBC driver. Especially if you try to find some answers in the HANA forum about getting generated keys. The driver developers should listen to their community! (Don't ignore defacto standards)
But ok, that was only one thing. A big problem was the performance of metadata operations. If you try to get a list of unique keys, a list of colum names for a table or foreign keys, be sure you have some extra time because such operations can take a minute or more. Not sure if trial accounts are the botleneck but we thought HANA is always super fast.
We're not sure if no one needs metadata or if we have special requirements, but especially metadata access should be fast in any case!
We learned to live with slow performance and we're pretty sure that SAP will solve this problem.
Did we reach our goals?
What do you think about this:
HANA application with VisionX
This video demonstrates the creation of an application based on HANA. The application was developed with VisionX and deployed as JVx' Vaadin application. I'm not sure if there's a tool which can do it like VisionX but I don't think so because SAP doesn't have one
One hint
If you have problems with locked accounts because of invalid connection attempts. Use Eclipse, connect to your schema and execute:
alter user p012345678 drop connect attempts;
Our Eclipse was blocked with this command, but everything worked fine after restart.
It's done. We proudly present an awesome VisionX release. It has the version number 2.1.905 and has doubled its features.
Here are some of them:
Undo & Redo
It's now possible to Undo and Redo Actions and Reports. Simply add an action to a button undo the creation if you want. The action will be removed from the screen. It's also possible to add the action again, via redo.
In VisionX 2.0, only UI elements could be deleted but not actions or reports.
Eclipse integration
It's a developer feature and allows bidirectional communication between Eclipse IDE and VisionX. Simply select an editor in VisionX and the source code in Eclipse will be selected. The integration allows faster development because you jump exactly to the source file and code line of your screen. Don't was time for searching properties and files. More...
Layout Assistant
The Layout assistant (designer) of VisionX 2.0 was column oriented and it wasn't possible to create free-form layouts without fixed positioning. The new layout assistant still is column oriented but you can use it free-form. You have all features of a layout manager (preferred size, automatic size calculation) but it's easy to create individual layouts which are not column oriented.
ActionEditor
It's a small feature, but the action editor now allows Finish without explicite validating the action. It save so many unnecessary klicks.
PDF Reporting
We have built-in support for toPDF in VisionX. With VisionX it's possible to create PDF reports as Document and Spreadsheet with Word and Excel. Create your report templates with Word or Excel and create PDF reports out-of-the-box. More...
Mobile and Web
VisionX got wizards for mobile und web settings. They allow styling of web and mobile applications like background color, background images, ...
Simply define which image should be used in web or mobile applications instead of the original image, e.g. the mobile application should use flat images but the
desktop shouldn't.
Developer features
It's now possible to set the name/ID of components. This feature is a developer feature and useful for automated GUI tests or styling via CSS. More...
License options
We offer subscription based VisionX usage. You can use and pay on a monthly base. We don't offer SaaS. VisionX will run in your environment.
Also new is the support for SAP' Hana. If you work with Hana, you could use VisionX to create Hana based applications.
Popup menu
It's very easy to create custom popup menus for a component. Simply use the new customizer and define the action. More...
Manual dropdown-list configuration
We allow the creation of custom dropdown lists directly with VisionX. Create your own statements or storages and use the data wizard to configure the editors. More...
Solution store
The solution store offers ready-made solutions. We offer free and demo applications for learning purposes and also commercial solutions. The solution store is also available for your environment. You can install the store for your intranet, if you need a distribution platform your your applications, addons or modules. More...
Responsive application
Your new web applications will be responsive - out of the box. The styling of the application will be changed dependent of the browser size. We have an API for software developers to create responsive work screens. More...
Desktop application
Create a desktop application per click. Use VisionX to create a desktop application package.
The last official JVx release was in May and last VisionX version was released in July. We think it's time to update both and planned the release of JVx 2.1 and VisionX 2.1 for the end of November. Currently, we are in time and shouldn't have any delays.
There are some open tickets for JVx and VisionX, but the planned features are done. The open tickets are nice to have and favoured from the 2.2' release.
Especially VisionX 2.1 will be an awesome new release because it contains soo many new features. The new solution store, the styling of mobile and web applications, the new GUI designer, PDF reporting, IDE integration, subscription based licensing and many more. The release will be the first with full Oracle Forms migration support. It has all known features of Oracle Forms like Repeating Frames, Focus order, Popup Menu configuration.
The release will contain solutions for over 200 tickets.
And what's in JVx 2.1?
We've some cool changes, e.g. great support for automatic tests (unique component names), reduced metadata caching, JNDI support for configuration files, Replacement and StrictIsolation annotations, REST refactoring and many more.
The upcoming release of VisionX will support PDF report creation. We didn't re-invent the wheel and used our existing reporting engine with our templating mechanism. You'll simply create a word or excel template as usual and the result will be a PDF file.
The new PDF options
PDF reports
Our solution is based on toPDF and we recommend the commercial SDK, but it's also possible to integrate an OpenSource alternative or your own product. We'll help you if you need support!
We think that an end-user should create reports with word and excel instead of custom reporting tools. Of course, a developer will love it Don't waste time anymore!.
The big advantage of our solution is that the reports will look exactly as designed and you won't use new tools to create pixel perfect reports.
We have a nice looking Reporting application in our solution store. It's a standard JVx application with a styled table.
But it's not a table demo! It demonstrates report creation for offline data manipulation. Simply create Excel sheets for your contacts, change the contact offline and update the online record with a simple upload. The Excel file has choice fields and allows same features as the online form.
Here it is
Reporting demo
of course, it's free
Simply open the solution store and install the application
Unser Produkt VisionX verhalf uns zu einem Artikel in der aktuellen Computerwelt, TOP 1001.
Darin erklärt der Autor auf eindrucksvolle Weise wie KMUs von VisionX profitieren können. Der Artikel bezieht sich auf die Zielgruppe kleine und mittelgroße Unternehmen, doch das Prinzip kann auch auf große Unternehmen übertragen werden.
Falls die aktuelle Ausgabe der Computerwelt nicht zur Hand ist, kann der Artikel auch hier nachgelesen werden.
A new demo application is available for VisionX.
It's a very simple application that demonstrates the user and role capabilities of VisionX.
Ready made solution
The application has two screens: Overview and Project types.
The overview screen has three buttons:
Overview screen
The buttons Report and Details are not enabled for users with role Read. The Add button near type field only is visible for users with Manage role. If a user has Read role, the window title will contain (readonly). The assigned user roles will be shown beside the project name.