Servoy 8.0.0 alpha

Release notes for Servoy betas

Servoy 8.0.0 alpha

Postby Jan Blok » Fri Nov 28, 2014 5:37 pm

We are pleased to announce the availability of Servoy 8.0.0 public alpha release (releaseNumber 3011)

This version is available through the download at the Servoy website.

This release brings a new client type called NGClient, which is based on HTML5 and webcomponent specifications.
For more details see: New in 8.0

As this is a first public alpha, the product is not feature complete yet.
The main goals of this release are:
-show webcomponents usage in NGClient
-show the new form editor capable working with webcomponents
-acquire feedback on webcomponent development
-acquire feedback on extended form validation mechanism

Progress made since ServoyWorld demo's:
-stabilized the webcomponent specification format (in order to limit future changes)
-completed the foundset interface which is usable from webcomponents
-improved the form editor to be mostly complete in absolute layout form design
-improved NGClient performance
-get to a reasonable backward compatibility with existing solution like the servoy_sample_crm
-made scrollable tableview/listview/portal default behaviour

What to expect in next alpha’s:
-responsive design capabilities in form editor (responsive design is currently only possible via solutionModel)
-better backwards compatibility for existing solutions (not every existing solution might run just yet)
-improved NGClient performance (utilizing one-time binding mechanisms)
-bug fixes

Known problems:
-field formatting is not working yet when component is in a tableview/listview/portal
-having a date field in a tableview/listview/portal makes it slow
-date fields in find mode does not work UI wise
-resize of a tableview form does not work correctly
-war export is broken for ngclient type solutions

Note:
-It is possible to revert to the old form editor for smart/webclient solutions in the developer preferences
Jan Blok
Servoy
Jan Blok
 
Posts: 2684
Joined: Mon Jun 23, 2003 11:15 am
Location: Amsterdam

Re: Servoy 8.0.0 alpha

Postby sjoerd1337768711 » Sat Nov 29, 2014 6:06 pm

I have downloaded the servoy_installer.jar and also the .exe for windows. On both Windows and Mac OSx servoy 8 is not running.
Eclipse is installed but not the servoy-design part in Eclipse.

I think something is wrong with the signing/packing of the servoy_installer.jar.
When I look at the installed software there is no META-INF in the directory "developer/features/com.servoy.eclipse.feature_8.0.0.3011"
sjoerd1337768711
 
Posts: 14
Joined: Wed May 23, 2012 12:25 pm

Re: Servoy 8.0.0 alpha

Postby david » Sat Nov 29, 2014 8:01 pm

sjoerd1337768711 wrote:I have downloaded the servoy_installer.jar and also the .exe for windows. On both Windows and Mac OSx servoy 8 is not running.
Eclipse is installed but not the servoy-design part in Eclipse.


On Mac 10.9.4, I had to install Java 8 jdk — not jre — to get things to work.
David Workman, Kabootit

Image
Everything you need to build great apps with Servoy
User avatar
david
 
Posts: 1723
Joined: Thu Apr 24, 2003 4:18 pm
Location: Washington, D.C.

Re: Servoy 8.0.0 alpha

Postby ars » Sat Nov 29, 2014 9:53 pm

Hi All,

Do I need to install Java 8 as well in windows? Because, I am also could not able to see the designer window in Servoy 8.

Thanks,
Arup Ranjan Sahoo

Servoy Developer and Consultant

Find me @ arup.sahooATgmail.com
Skype me @ arup.sahoo
GTalk me @ arup.sahoo
User avatar
ars
 
Posts: 210
Joined: Thu Jun 28, 2007 2:04 pm
Location: India

Re: Servoy 8.0.0 alpha

Postby mboegem » Sun Nov 30, 2014 1:00 pm

david wrote:
sjoerd1337768711 wrote:On Mac 10.9.4, I had to install Java 8 jdk — not jre — to get things to work.


Correct, at least you need JDK, we discovered this earlier in the private program.
This might as well be Java 7, not necessarily 8...
_____________________
Marc Boegem
Solutiative / JBS Group, Partner
• Servoy Certified Developer
• Servoy Valued Professional
• Freelance SAN Developer

Image
User avatar
mboegem
 
Posts: 1382
Joined: Sun Oct 14, 2007 1:34 pm
Location: Hoofddorp, The Netherlands

Re: Servoy 8.0.0 alpha

Postby jcompagner » Mon Dec 01, 2014 10:28 am

as far as i then have tested it, you don't need a jdk, the only thing is that on the mac you think it is running with the jre 7 or 8 that you installed
But this is not the case, All the guys for which i looked at that problem where really running with java6 i believe

When you install a jdk the home dirs of java and so on are really pointing to that install..

What you all should try to do is Help->About->Installation details

there you should see stuff like:

java.runtime.version=1.8.0_20-b26

or java.home

then you can exactly see what java is really used. That should be at least java 7
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 7974
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

Re: Servoy 8.0.0 alpha

Postby mboegem » Mon Dec 01, 2014 1:32 pm

jcompagner wrote:as far as i then have tested it, you don't need a jdk,

That's not my experience for a couple of installs I was asked about.
They all had problems running it, but none of them had JDK installed.
After installing the JDK, and (re) installing Servoy 8, it worked right away.
_____________________
Marc Boegem
Solutiative / JBS Group, Partner
• Servoy Certified Developer
• Servoy Valued Professional
• Freelance SAN Developer

Image
User avatar
mboegem
 
Posts: 1382
Joined: Sun Oct 14, 2007 1:34 pm
Location: Hoofddorp, The Netherlands

Re: Servoy 8.0.0 alpha

Postby jcompagner » Mon Dec 01, 2014 2:04 pm

in the training of 8 they also said that
They said i have a jre 7 installed and it is now running with that
But when i really looked they where really running with java 6

there should be no need to run with a JDK, we don't depend on that at all i really think that it is a problem of paths and home dirs
Don't assume that you are running with jre7 or jre8, really look through the about dialog
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 7974
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

Re: Servoy 8.0.0 alpha

Postby Harjo » Mon Dec 01, 2014 3:39 pm

Yeah, it has something todo with the java Home path or something.
I have installed & run Java JRE 7 fine for more than a year on my mac, but if you do this in a Terminal: java -version
it gives: 1.6.0_55

So maybe the JDK installer, changes the default Java Home path/folder on MAC??
Harjo Kompagnie
Direct ICT / Servoy Hosting / ServoyCamp
Servoy Certified Developer
Servoy Valued Professional
SAN Developer
User avatar
Harjo
 
Posts: 4269
Joined: Fri Apr 25, 2003 11:42 pm
Location: DEN HAM OV, The Netherlands

Re: Servoy 8.0.0 alpha

Postby david » Mon Dec 01, 2014 5:09 pm

How about composing components? For example, say I want to build a component that uses the button and image components. As far as I can tell, currently components are one-stop kind of deals where you have to reimplement functionality that might already be implemented in another component.
David Workman, Kabootit

Image
Everything you need to build great apps with Servoy
User avatar
david
 
Posts: 1723
Joined: Thu Apr 24, 2003 4:18 pm
Location: Washington, D.C.

Re: Servoy 8.0.0 alpha

Postby jcompagner » Tue Dec 02, 2014 9:19 am

david,

you can include other components just fine inside your components if you want

The only thing is that then the api in the designer and in the script editor only sees your "top" component
So you have to encapsulate the components and expose stuff on the api and model the the top component that you pass on the the child components.

How would you like to have this really done? Do you want to have predefined components structure that are the selectable in the designer and are directly really form components with there own state and api on the server side?
So what do you really want or have?
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 7974
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

Re: Servoy 8.0.0 alpha

Postby sjoerd1337768711 » Tue Dec 02, 2014 10:45 am

I did some testing with the new NG-Client. Very impressive to see all the new possibilities for future development.
First questions/remarks:

CSS
CSS on solution level is not working yet? In the source-code of the NG-client-page I see: <link rel="stylesheet" ng-href='{{solutionSettings.styleSheetPath}}'/>
It is not filled with the CSS file from the media folder.
Why is the solution-level CSS file from the media-folder and not from resources/styles? Maybe you have double style sheets for backwards compatibility?

Webcomponents and SolutionModel
When you create your own webcomponents is it then possible to set all the properties with solution model?
SolutionModel is getting the new webcomponent as JSBean type. Only with a few settings.

Can you tell your component what type it is? For example if you make your own field-type webcomponent that it uses all the setting of the JSField type?
Maybe something is possible with JSDoc/@type. That it will read the .spec file for all the properties of that webcomponent.

When I try to put the dataproviderID for example it gives the error:
Java class "com.servoy.j2db.scripting.solutionmodel.JSBean" has no public instance field or method named "dataProviderID".


TableView
I have tested with a large foundset. Is it still loading in blocks of 200 records? I see some delay in loading with scrolling.
Table sorting and resize the full width of the screen is not possible yet?
sjoerd1337768711
 
Posts: 14
Joined: Wed May 23, 2012 12:25 pm

Re: Servoy 8.0.0 alpha

Postby jcompagner » Tue Dec 02, 2014 11:09 am

sjoerd1337768711 wrote:I did some testing with the new NG-Client. Very impressive to see all the new possibilities for future development.
First questions/remarks:

CSS
CSS on solution level is not working yet? In the source-code of the NG-client-page I see: <link rel="stylesheet" ng-href='{{solutionSettings.styleSheetPath}}'/>
It is not filled with the CSS file from the media folder.
Why is the solution-level CSS file from the media-folder and not from resources/styles? Maybe you have double style sheets for backwards compatibility?


besides adding it in the media did you also set it in the solution property "stylesheet" ?

Now the solution has that property (and forms don't have that property anymore)

sjoerd1337768711 wrote:Webcomponents and SolutionModel
When you create your own webcomponents is it then possible to set all the properties with solution model?
SolutionModel is getting the new webcomponent as JSBean type. Only with a few settings.


yes this stil has to be done like creating a nice api for this, so that you can do for example:

var mybean = solutionModel.newMyCustomBean();
mybean.property = "something"

for now this is all also possible the only thing is that you need to code it a bit more by using text and generate some json:
Here is an example for that:

https://github.com/Servoy/example_solut ... globals.js

(this example also generates a responsive layout, but you can just look at the newBean syntax and the innerHtml, which is json, property that is then set)
What to use there you could also just look what is inside the frm file when you just use the form editor for that component

sjoerd1337768711 wrote:TableView
I have tested with a large foundset. Is it still loading in blocks of 200 records? I see some delay in loading with scrolling.
Table sorting and resize the full width of the screen is not possible yet?


on the server side it is still loading in 200 records, The data layer is exactly the same.
On the ui layer we use ng-grid (or ui-grid) and that does lazy loading of more records when you scroll down, so it has at first it can even have less then 200
(depending on the size the component has)
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 7974
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

Re: Servoy 8.0.0 alpha

Postby david » Tue Dec 02, 2014 10:02 pm

jcompagner wrote:you can include other components just fine inside your components if you want


I guess I need to see a more complete example then. The only example I see is from here where the child component is included in the markup. Then in the spec I see the child components listed under the model. Wouldn't this be better listed under a "dependencies" section?

Then in the js file, I would expect something like:

Code: Select all
angular.module('servoycomponentsNestedsimplecomponent',['servoy','childComponent1','inheritedComponent2']).directive(...


to expose the functionality of inherited components. In addition to being able to compose multiple components together, this would also cover the ability to create a headless component with a base set of functionality that you would use across a bunch of components. For example, if I wanted to create components for all of Kendo UI's core widgets, I would first create a "base" component (that doesn't get listed in an editor sidebar, so you need a setting for this) with all the common functionality all of their widgets use.

Back to having a dependencies section: currently it looks like you specify a library path to anywhere outside of the component scope if you want to pull in foreign resources. This breaks compartmentalization of components. What if that path resource isn't there? You need a dependencies section so you know what is required and to enforce only allowed paths.

jcompagner wrote:Do you want to have predefined components structure that are the selectable in the designer and are directly really form components with there own state and api on the server side?


This seems natural if your components are architected to allow composition of independent components in a way that maintains their character.
David Workman, Kabootit

Image
Everything you need to build great apps with Servoy
User avatar
david
 
Posts: 1723
Joined: Thu Apr 24, 2003 4:18 pm
Location: Washington, D.C.

Re: Servoy 8.0.0 alpha

Postby jcompagner » Wed Dec 03, 2014 9:51 am

david wrote:
I guess I need to see a more complete example then. The only example I see is from here where the child component is included in the markup. Then in the spec I see the child components listed under the model. Wouldn't this be better listed under a "dependencies" section?

Then in the js file, I would expect something like:

Code: Select all
angular.module('servoycomponentsNestedsimplecomponent',['servoy','childComponent1','inheritedComponent2']).directive(...




the thing is what are we really talking about here?
Are we talking about composition so 1 component uses a few other components to represent itself.
or are we talking about extending? (inheritance)
Inheritance is not really done in angular see for example http://stackoverflow.com/questions/1700 ... -directive for a few option that you have (like require, or having 2 directives with the same name)
But a component (directive) doesn't really have an real option to say "extend".

Nested components, so the things in the spec like mychildcomponents: "components[]", that we talk here above are a bit different all together.
Because that's about composition in for the designer. So the users (servoy developers) of your component can drop in any other component(s) they want and we fill that property
So the module of that component can't include anything, because it doesn't really know what it gets from the system.

more info is also here: https://wiki.servoy.com/display/DOCS/Co ... perty+type

the svy-component-wrapper directive that we provide is just an easy way to use those components that are stored in that property.
But we don't use that ourself, for example you could look at the portal.js code as an example, its a quite big example but for the components part that we get we generate the 'cellTemplate'
based on what is in the model of the childComponents array
(its even more complex because this is also directly a repeater)


david wrote:to expose the functionality of inherited components. In addition to being able to compose multiple components together, this would also cover the ability to create a headless component with a base set of functionality that you would use across a bunch of components. For example, if I wanted to create components for all of Kendo UI's core widgets, I would first create a "base" component (that doesn't get listed in an editor sidebar, so you need a setting for this) with all the common functionality all of their widgets use.


what is the common functionality (what is really a base component?)
Can't you build that in attribute directives? That you then include in the real components?
For example like our svy-format or a simple one like svy-scrollbars that takes care of the scrollbars for a component based on the value it gets.
Or you can build services that components use (that are injected into your components)
Do you also want to sort of "inherited" and 'extends" templates of a component? then i think you need to look at transclude: https://thinkster.io/egghead/transclusion-basics/


david wrote:Back to having a dependencies section: currently it looks like you specify a library path to anywhere outside of the component scope if you want to pull in foreign resources. This breaks compartmentalization of components. What if that path resource isn't there? You need a dependencies section so you know what is required and to enforce only allowed paths.


if component developers really want to use a CDN or something like that then they can do that.
For use that is not recommended because it would be better not to depend on outside resources (maybe the servoy application is really in house)
So yes it is better to use local things, but we will not enforce this.
Our dependency section is the libraries options in the spec file. We even look at the name and the version to see if there are conflicts and we take the latest one of the same name (over all the components)

Maybe in your example we also should have a dependency section in the manifest, because i guess if you make 1 package for kendo, then you want to specify that once and that is then used for all the components in that package.

david wrote:
jcompagner wrote:Do you want to have predefined components structure that are the selectable in the designer and are directly really form components with there own state and api on the server side?


This seems natural if your components are architected to allow composition of independent components in a way that maintains their character.


if you want to create a component that is a composition of other components you can do that just fine, for example this is a components template:

<div>
<anothercomponentsdirective astate="something">
<andsomeother state="else">
</div>

now you composed your new component and it uses 2 others and you pass some state to them from yours.
But this is just for servoy 1 component that has encapsulated 2 others that servoy (the designer or runtime) doesn't know anything about.
If you want to expose properties (that a servoy developer can set in the designer) for those internal components your new top component needs to have those properties in the spec and pass that to the child components through that state object.

But this has nothing to do with the components type that servoy provides. Thats really for doing composition through the designer.
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 7974
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

Next

Return to Latest Releases

Who is online

Users browsing this forum: No registered users and 1 guest