It is available from the project page.
What’s different?
We fixed some important bugs and implemented new security checks. The new release does not have new killer features and it is more of a stabilization release. We think that the "Christkind" or maybe Santa Claus will have JVx 1.0 GA in the bag.
- Security checks
The MasterSession did not have a special security check for accessing the life-cycle object. If the security manager checked the login credentials as valid, it was possible to access the life-cycle object for the Master Session. The problem was that is is possible to set the life-cycle name via API, before you open the connection. It is always possible to open a MasterSession with the life-cycle object of a SubSession. But if the used security manager (e.g. DBSecurityManager) has custom access rules and does not allow the access to specific SubSessions, we had a vulnerability.
Now the MasterSession checks the access with the security manager, in the same manner as the SubSession. The ISecurityManager interface got new methods for the access checks. The DBSecurityManger contains a reference implementation.
- Utilities
The Utility classes are very important for JVx, because there is power inside. We tweaked existing and added new useful methods. The external program execution works now platform independent. The FileViewer now supports Linux, MacOSX and Windows.
Check the Changelog for a complete list, and use our Forum to talk with us
It is available from the project page.
What’s different?
We fixed some smaller bugs and improved metadata caching. A very cool NEW feature is the block fetching for RemoteDataBooks.
- MetaData caching
We have a metadata cache on the server side to reduce database calls and we have a cache role on the client-side to reduce remote calls. But it was not possible to change the cache role for specific connections. If the cache was enabled, it was enabled for the whole application.
Now it is possible to set a connection property to change the cache handling for all databooks which use the connection.
connection.setProperty(IConnectionConstants.METADATA_CACHEOPTION, MetaDataCacheOption.Off.toString());
Off means no metadata on client-side and reload metadata from database on server-side.
On means always use the metadata cache and ignore the default setting.
Default means that the connection uses the client cache role setting.
- Block fetching
This is an amazing new feature and boosts an application!
Before beta-4, every Master/Detail selection change executed a remote call if the detail was not already fetched. It depends on the number of detail databooks, but if you have one master and 5 detail databooks, every master-change executes 5 remote calls to retrieve detail data. 5 requests is not very clever because it should be possible in only 1 request? With 1.0 beta-4 this optimization is implemented, but not used per default. It depends on th number of records and number of details if it is possible to fetch all defail databooks as one block. It is your decision if it makes sense to use block fetching!
Be careful, the block fetch columns are not the same as used for the master reference definition!
Example:
rdbWorkScreenMembers.
setMasterReference(
new ReferenceDefinition
(new String[] {"APPL_ID",
"CLASSNAME",
"PARENT_NAME",
"PARENT_METHOD"},
rdbWorkScreenMembers,
new String[] {"APPL_ID",
"CLASSNAME",
"NAME",
"METHOD"}));
//Block fetching does not need PARENT information, because we want all PARENTs
rdbWorkScreenMembers.setBlockFetchColumnNames(new String[] {"APPL_ID",
"CLASSNAME"});
- JNLP service access for Applets
If you use the jnlp_href tag for your applet, it is now possible to use the clipboard, file open and file save JNLP services without additional coding effort. Since 1.6 u24 it is not possible to copy/paste to/from text components. We made it possible in the Swing UI and now it is available for all your applications.
- Refactoring
We moved IDataBook.searchNext to IDataPage and added searchPrevious to the API.
Check the Changelog for a complete list, and use our Forum to talk with us
We got a page in the current edition of FRESH VIEW on technologies.
Read the whole article - it is available in English and Chinese.
Today, we updated our VisionX Beta installation to the current version. It contains many performance improvements - Be surprised
The short list:
- VisionX works now on MacOS X (Snow Leopard)
- Clipboard support for JREs >= 1.6.0 u24
- Drop only database objects and/or the database user
- MetaData caching
- Application loading without additional server requests
- Screen locking - prevents simultaneous editing of the same screen
- German/English translation upates
- Bugfixes
All test systems were resetted. Let's create applications with amazing new features!
The reset was necessary because we changed the project structure and a migration in the current product stage is not funny.
Thanks to all VisionX users. We collected a lot of performance data because of your use. With this, we were able to reduce some bottlenecks.
Now, an application starts without delays and the designer opens a screen without additional remote calls.
Our next optimization concerns the remote calls of data objects. There are savings in the range of seconds. This optimization will be done directly in JVx and because of this, JVx developers will love it
Today we installed the first update for VisionX. It contains many improvements, based on our user feedbacks.
A short list:
- The screen creation with large spreadsheets (> 200 columns) works now
- DB Specification does not show empty tags anymore
- Show icons for user tables/views and system tables/views
- We fixed some translations
- Added a workaround for JRE >= 1.6.22 html formatting problems
- Color selection for GroupPanels is now supported
We fixed a lot of smaller problems and started with performance tuning. Now we have enough data to reduce bottlenecks. We send too many requests especially during design mode switching, but that was important to find where it makes sense to optimize.
Stay tuned.
Today is a great day for us! We launch VisionX as public beta.
VisionX is available as installation in the cloud, even if it was not yet fully optimized for the Cloud. Some options could still be better adapted to the Cloud, but VisionX is not only a cloud tool. It is designed for Intranets or desktop PCs too.
The launched version allows application creation, screen design with a great visual designer, database object creation, help and specification creation. It is possible to export an application as eclipse project and import an external application archive into VisionX. The installation on remote application servers is also available. But of course, we have some limitations and not implemented features.
The caching is completely disabled because we want to gather real-world performance data. Because of that, VisionX needs some extra time after login, the application start or during visual design. But the performance is still quite acceptable.
Some important features like search/filter, actions, edit menus, user management are still in development and are disabled. We will activate the disabled features in the course of the coming weeks.
Use the registration form to get access to VisionX.
We look forward to your feedback
Today I have some links to frameworks or news which sounds great or are very useful:
- Ace Cloude Editor
If we don't find a Cloud IDE for VisionX, it would be possible to use a great code editor. Additional we need a sort of tree for our source files and the first step is done.
- UnQL
That sounds great and makes JVx storage creation easier.
- Angular
Not very popular, but creates clean pages and is very simple to use.
It is available from the project page.
This version should be the last beta before release 1.0, but we changed our plan a little bit. VisionX starts the open beta phase in the next weeks and we want release VisionX 1.0 with JVx 1.0. Because of that, we extend the beta phase for JVx. The current beta of JVx is almost production ready but does not contain all features for 1.0.
A short delay should not be a problem for you, and our beta releases are always in high quality.
What’s different?
The current beta contains some very useful productivity features and a lot of important changes in our database access layer.
- AbstractBean serialization
Our AbstractBean is an instance of Map and because of that we serialized objects as Map. That worked well but produced a ClassCastException when you tried to cast the serialized object to the wrong type. Now it is clean!
- StackTrace manipulation
Stack Trace Elements of SecurityExceptions are now shrinked, because it is not clever to show all details on the client. If you need the whole Stack Trace, enable debug logging for AbstractSecurityManager.
- Live config
In production use, a Master session caches the application configuration and changes are not considered until you create a new Master connection. If you need up-to-date sessions, you have now an option. Add:
<liveconfig>true</liveconfig>
to your server config.xml.
- Virtual Filesystem support
Versions prior 1.0 beta-3 have deployment restrictions for some application servers. JVx works without problems with all application servers but e.g. JBoss uses two different deploment modes. As application archive (.war) or "exploded". If you tried to install a JVx application as war, you had the problem that config files were not found. The problem does not occur if you install the application "exploded". With the current beta, the problem is solved and JVx applications work as war or "exploded".
- Openness
We introduced a new ISession implementation called DetachedSession. With this Session it is possible to work "outside" the JVx lifecycle. You can create a DetachedSession from a Servlet, a Filter or wherever you want. All you need is the application name. The session has its own SecurityManager and allows fast username switching. You need at least one DetachedSession for your external services. Thats saves time and memory.
The AbstractSecurityManager got new methods to create SecurityManagers for any ISession or just for an application name. You can now use the JVx authentication mechanism for you third party services, without much coding effort.
Furthermore, our DBSecurityManager allows connection access. Use the connection of the security manager to save connections.
A practical example for above changes is the integration of REST services, with or without authentication. Now it is enough to create a new DetachedSession and use the configured security manager to authenticate clients, e.g.:
DetachedSession sess
= new DetachedSession
("demo");
DBSecurityManager secman = (DBSecurityManager)sess.getSecurityManager();
sess.setUserName("jvx");
sess.setPassword("beta-3");
secman.validateAuthentication(sess);
sess.setUserName("visionx");
sess.setPassword("v1.0");
secman.validateAuthentication(sess);
Connection con = secman.getConnection();
//Execute queries
- Database access
We fixed some problems with PK, FK and UK detection for all supported databases. Now our automatic link cell editors work without database restrictions.
Check the Changelog for a complete list, and use our Forum to talk with us
Our VisionX is not an IDE, it is designed for end-users. Of course, everything in VisionX is Source Code driven, but that is behind the scenes. Application Source Code is not relevant for end-users but very important for developers. An application export/import is included in VisionX and because of that a developer can work with preferred IDEs. But sometimes it would be great to change the application source code without IDE, direct in the browser.
There are some first attempts available in the web, for Cloud IDEs. Our favourite ones are
- Orion
It is an Eclipse project and tries to bring some parts of Eclipse to the browser. Currently it does not support Java development because its focus lays on Javascript. A big advantage is that you can download Orion and install it on your own Server.
- Cloud-IDE
It is currently in a closed beta phase, but the feature list looks very powerful. It supports Java development and looks like Eclipse light.
- Others
There are a lot of other Cloud IDEs e.g. Bespin, Cloud9 IDE, Coderun Studio, Kodingen, ... But they have no support for Java.
For VisionX it is important that a Cloud IDE supports Java. Currently only Cloud-IDE has support for it. Let's see how things evolve.
We don't plan our own IDE for VisionX applications because there is no market for another IDE. But we plan to integrate VisionX into other IDEs and/or support Cloud IDEs.