Filemaker Developers: What would Help you Convert to Servoy?

In talking with other FM developers considering using or converting to Servoy, and in reading the posts on this forum, it seems we have a lot of questions/needs in common about Servoy. Perhaps starting a thread to gather these needs together would help the Servoy team prioritize (and/or respond where we’re simply mis-applying workarounds we don’t need anymore.) …So I’d like to pose a question and see how much info we can get together :wink:

TO FILEMAKER DEVELOPERS CONSIDERING SERVOY:

-WHAT FEATURES/ISSUES ARE A TOP PRIORITY?
-WHAT IS GETTING IN THE WAY OF YOU FULLY ADOPTING SERVOY ON NEW CLIENT PROJECTS?

A tool to convert layouts would be a big help.

This would help me to maintain a familiar look for clients and give me confidence that in the layout/form design capabilities of Servoy are a match for Filemaker.

I would also like to be able to convert a few scripts to enable me to see how my familiar Filemaker logic looks in Servoy. I think a few sample script conversions would help my learning process considerably.

A blck box full conversion tool would be interesting, but I expect I would want to rebuild most solutions to get the best from Servoy

Cheers

PJ

I know ADP was talking about a convertion tool on their website but haven’t seen any output till today.

On the other hand I can imagine only a database table import tool would be interesting since the rest is so filemaker specific (with all its workarounds in them) that you really don’t want to use such a tool. This will also give you the opportunity to re-evaluate your application and make a major upgrade instead of a plat-switch…

If you are a FileMaker developer checking out Servoy, you probably immediately see the benefits of:

M-^U zero client install, usable over a WAN
M-^U scalability
M-^U connecting to and combining robust data sources
M-^U object oriented, event driven interface
M-^U time saving interface objects like the tab panel, custom controller and display form in dialogue
M-^U standard scripting language
M-^U easy server management
M-^U versioning control
M-^U centralized security
M-^U etc…

It has features similar to FileMaker:

M-^U forms development methodology
M-^U use of relations, value lists, portals, buttons, and other familiar interface elements
M-^U methods (scripts) attach to a button onAction event (and a bunch of other object events)
M-^U users interact with a Servoy application like a FileMaker application (find and print mode, etc)

You are probably challenged by:

M-^U setting up named connections to data sources, especially to an external database
M-^U getting used to the new terminology
M-^U becoming familiar with all the properties and events available with each object
M-^U learning how to script (Oddly enough, the challenge here is not learning JavaScript because of the sample code and correct syntax available for each function but learning where everything is at and what each function does.)

At the outset, you want to know if Servoy does what it says it does. If you read any amount of posts in this forum and get the demo going you quickly see that it is a “for real” product.

The next step is mulling whether or not Servoy has advantages to you that make it worth learning. Some people switch just so they don’t ever have to create and manage 25 different layouts to implement a double tab panel again in their life. Or install the client software and five plugins on 100 different computers. Or being able to add a field without dumping everyone off the server (much less being able to roll back to the previous version if something goes wrong with your new version). The list goes on.

So consider your time it takes for these kinds of tasks currently. Compare that to what it will take for you to learn a new development environment. The decision will either be clear or it won’t :) After that, it’s just a matter of digging in and tackling the learning curve like anything else. Without a doubt, if you need Servoy’s features – it is SO worth it.

One word of warning: if you are a FileMaker developer who knows all the tricks in your world, the hardest part for you will be unlearning some of your habits. The good news is that if you have the capacity to learn all the FileMaker work-a-rounds then learning Servoy should be WELL within your capabilities. :)

  • david

Well said, David!

HJK:
Well said, David!

Include me :wink:
But looking at my own experiences with Servoy since May 2003 I think most of us (former) FM Developers do have some trouble reading and deploying JavaScript because ScriptMaker makes in a way ‘more sence’ or sounds ‘more logic’ in other words ‘more readeble’.
But one has to get over this little hill to get your solutions going. The new documentation on the site (PDF’s) is in my opinion more extended much better arranged then the first ones in May 2003 and later.

M-^U setting up named connections to data sources, especially to an external database
M-^U getting used to the new terminology
M-^U becoming familiar with all the properties and events available with each object
M-^U learning how to script (Oddly enough, the challenge here is not learning JavaScript because of the sample code and correct syntax available for each function but learning where everything is at and what each function does.)

Add to this simple back up ability. With FileMaker I log in over Appleshare and download the nightly back-up. If I want to move the FM db to mySQL and Servoy, I’d have to figure this out. Although I have a tape back-up of my Linux server (and I suppose if I were to run the DB locally in mySQL or FireBird on OS X, I could just do the same thing I am doing now with a cron job), I am always paranoid when it comes to mySQL dbs.

Another problem, of course, is the OS 9 fiasco that Apple has wrought. While I am attmpting to design the functionality that is used by our OS 9 people in a web interface (and then hope to integrate that with the more robust Servoy back end), there is a steep learning curve and overall a desire amongst everyone not to upset the Apple cart.

Maybe some people other than David (who has done an admirable job giving us pointers) should detail how and how they plan to overcome the obstacles associated with this migration. As David knows, my situation is grossly complex. I am hoping though, that by gathering little pieces of knowledge I will be able to make the big leap eventually.

beerguy:
Add to this simple back up ability. With FileMaker I log in over Appleshare and download the nightly back-up. If I want to move the FM db to mySQL and Servoy, I’d have to figure this out. Although I have a tape back-up of my Linux server (and I suppose if I were to run the DB locally in mySQL or FireBird on OS X, I could just do the same thing I am doing now with a cron job), I am always paranoid when it comes to mySQL dbs.

This is where knowing just a little about “real” databases comes in handy for the FileMaker developer. Read a chapter on backups and replication in a book somewhere and you’re set – it’s quite easy. For MySQL, there is the “DUMP” command that you can run from the command line. If you are like me though, that is too hard so use a 3rd party utility like phpmyadmin that provides a graphical interface for MySQL database management. To backup the Firebird repository, copy the entire Servoy directory as needed.

beerguy:
Another problem, of course, is the OS 9 fiasco that Apple has wrought. While I am attmpting to design the functionality that is used by our OS 9 people in a web interface (and then hope to integrate that with the more robust Servoy back end), there is a steep learning curve and overall a desire amongst everyone not to upset the Apple cart.

Eventually, you’re OS 9 users will have to move to OS X. That’s a given. Why develop a web interface just so they can stay on OS 9 for a while longer? Especially when the same interface in Servoy is SO MUCH faster to create and deploy.

I hope this is helpful and adds a little piece of knowledge. :)

  • david

To backup the Firebird repository, copy the entire Servoy directory as needed.

Just to be complete here: don’t do this when developer or server is running.
Use the gbak function for this!
In the firebird tutorial, this is discribed.
Also in the help (F1) of Servoy this is discribed.

i am a fm programmer new to servoy- maybe i dont have the latest version of the docy but I don’t think the chapter on methods was as in-depth as it could be, explaining the method editor and how to use it was fine but I am also a ColdFusion/PHP programmer and I am used to having reference manuals for every function in the language and a sample of how to use it. I think that would be excellent tool for any programmer, to see the name, description, and sample of every method function. In my opinion, (most) FM programmers are not familiar with other coding methods and using Servoy methods was (and still is) the most difficult part for me to grasp: how to do things in servoy methods that I could easily do with FM scripts.

smokey:
…(most) FM programmers are not familiar with other coding methods and using Servoy methods was (and still is) the most difficult part for me to grasp: how to do things in servoy methods that I could easily do with FM scripts.

Can you provide us with some specific examples of things that you commonly do in FileMaker that are difficult to figure out how to do in Servoy?

BTW: Have you read the publication “Servoy Advanced Programming Guide for FileMaker Pro Developers”?

ALL: Thank you for your insights! We are striving to make learning and using Servoy easy for developers who are used to other tools. Any and all feedback in this area is welcome and encouraged!

Sincerely,

Bob Cusick

bcusick:
ALL: Thank you for your insights! We are striving to make learning and using Servoy easy for developers who are used to other tools. Any and all feedback in this area is welcome and encouraged!

Since it seems that Servoy is being appreciated and adopted from some big company, putting some case study on Servoy web site could be a useful tool for convincing people :wink:

Can you provide us with some specific examples of things that you commonly do in FileMaker that are difficult to figure out how to do in Servoy?

Matt P made this suggestion earlier - as I develop, I’d really appreciate an easier way to organize methods. In FM I number all of my scripts and can quickly go to any script by typing the number in. Also can add separators easily. I’d like to see the ability to number Servoy methods and to have each method fall into place automatically as it’s created. Thanks!

I finally did get the Programming Guide for FM developers and I’m currently reading through it, things are starting to become a bit clearer for me. Some things confusing to me are that it seems to only deal with 200 records at a time in large found sets. I dont know what would happen in a loop in that situation, only use the first 200 records or evaluate entire found set? Also, each form being directly linked to a table is changing things a bit. This is probably not the right forum topic, but since I’m here I would love to see Servoy server replicate. My DB servers cluster as well as my web server, it would be really cool if my application server clustered as well. I’m not sure how it would work, but maybe multiple servoy servers sharing a central repository?

thanks,
smokey

I’m currently evaluating alternatives to Filemaker.

FM is a great tool but some of it’s limitations are making less productive. Servoy is clearly far superior to FMP in many ways - frankly I cannot think of any thing FMP does better (though I’m pretty sure there are some ;-).

Many of the things I look for in a database builder tool are in Servoy and then some more. But the missing things are the subject of this post. Since I don’t know Servoy I might mention some aspects that are already implemented or on the way to being implemented. I’m sorry if I’m not aware of this (though it shows many other would be servoyians might not be aware too) - maybe a list of features seldom missed by Filemaker users/developers could be useful for converting people! I also may mention some aspects that are untrue. I’m sorry for this in advance and would appretiate very much to be informed.

So here go the features I miss in FM (and guess most FM users do too) that are also not in Servoy (as much as I’m aware of):

  1. Custom Menus
  2. Context menu (a.k.a. right-click, a.k.a. Short-cut)
  3. Set Application Item (everywhere including mainFrame)
  4. No Splash Screen - PLEASEEEE - this always been a huge FM no no for a huge number of people
  5. Exception Handling!? Something in the form of: try / except

try:
{ somecode }
catch [[, ]] :
{ somecode }
end try

If you’re aware of Python You’ll no what I’m talking about

  1. Object orientation!
    Have objects inherit from other other objects. At least to the extent that it would be possible to subclass objects and use them in different forms
    6.1. Allow a developer to develop it’s own object library
    ? Actually I don’t know the extent of JavaScript’s power but I’m under the impression that Servoy is using a subset is this true?
  2. Dynamically setting columns titlename in table views/portal
  3. Having the controler anywhere! Not just on the right side - It could look be placed like a toolbar
  4. Custom Toolbars (drag and drop would be great!)
  5. Multi-Threading!!
  6. Last but not least. Pricing is very much ok when compared to FM but leaves some to desire when compared to other interesting solutions out-there. This is specially true in regard to the runtime builder 500 limit - for this price most of the tools that produce runtimes are much cheapper. This is not terribly import because it’s not the main focus of Servoy (and I guess it’s because of some licencing in your product).

Probably many FMP users would not ask for points 5 to 6.1. That’s just me.
HTH

Best regards,
Miguel

Riccardino:

bcusick:
ALL: Thank you for your insights! We are striving to make learning and using Servoy easy for developers who are used to other tools. Any and all feedback in this area is welcome and encouraged!

Since it seems that Servoy is being appreciated and adopted from some big company, putting some case study on Servoy web site could be a useful tool for convincing people :wink:

We WELCOME any and all case studies, success stories, quotes, etc. You can send them directly to my attention at: bcusick@servoy.com.

Thanks!

mjekl:

  1. Custom Menus
  2. Context menu (a.k.a. right-click, a.k.a. Short-cut)
  3. Set Application Item (everywhere including mainFrame)
  4. No Splash Screen - PLEASEEEE - this always been a huge FM no no for a huge number of people
  5. Exception Handling!? Something in the form of: try / except

try:
{ somecode }
catch [[, ]] :
{ somecode }
end try

If you’re aware of Python You’ll no what I’m talking about

  1. Object orientation!
    Have objects inherit from other other objects. At least to the extent that it would be possible to subclass objects and use them in different forms
    6.1. Allow a developer to develop it’s own object library
    ? Actually I don’t know the extent of JavaScript’s power but I’m under the impression that Servoy is using a subset is this true?
  2. Dynamically setting columns titlename in table views/portal
  3. Having the controler anywhere! Not just on the right side - It could look be placed like a toolbar
  4. Custom Toolbars (drag and drop would be great!)
  5. Multi-Threading!!
  6. Last but not least. Pricing is very much ok when compared to FM but leaves some to desire when compared to other interesting solutions out-there. This is specially true in regard to the runtime builder 500 limit - for this price most of the tools that produce runtimes are much cheapper. This is not terribly import because it’s not the main focus of Servoy (and I guess it’s because of some licencing in your product).

Hi Miguel,

Here’s some answers:

  1. Coming via a plug-in

  2. Right-click is there. Also, more are coming in a future version.

  3. I don’t know what this means.

  4. There is no splash screen on the client.

  5. You can use try/catch blocks today.

  6. Subclassing probably won’t happen in the immediate future. What items do you want to subclass? You can write inline Java code - so you can use the full OOP of Java to create your own classes/subclasses. Same with plug-ins. Same with JavaBeans.

  7. It’s on the planning. For now, put labels in the header part and you can change those dynamically.

  8. You can do that now - just use a tabless tabpanel. You can put anywhere and have as many “forms” in the tabpanel as you want and dynamically change them at runtime.

  9. Doable via plug-in. Drag and drop is on the planning.

  10. It is threaded.

  11. If anything, the price is too low. If you’re looking to do more than 500 runtime copies - that is possible as well - it just depends on your solution.

Thanks for your feedback!

bcusick:
Hi Miguel,

Here’s some answers:

  1. Coming via a plug-in

These plug-ins I’ve seen none around. I suppose most of them are sold by developers. Is this so or will Servoy, BV distribute the Menu plug-in?
This means it’s also possible to make an app with no menu?
Is there a webpage where plug-ins are listed?

bcusick:
3) I don’t know what this means.

Sorry for my mistake. I mean the application icon, both on the main frame and on the desktop! When the client downloads it set’s an icon on the desktop, I would like to define this icon too.

bcusick:
6) Subclassing probably won’t happen in the immediate future. What items do you want to subclass? You can write inline Java code - so you can use the full OOP of Java to create your own classes/subclasses. Same with plug-ins. Same with JavaBeans.

Ooops never expected to in-line Java. Bit scarry. I wonder where you would put the class declarations: in Global Methods?
Mainly forms and form objects (buttons, menus, text areas, …). In same cases it might be possible, per example, to have an account class and subclass/specialize it into Suppliers Account and into Clients Account. I’m sure there are people here that probably value the use of OOP more than me though (I’m a hobbyist :-)

bcusick:
8) You can do that now - just use a tabless tabpanel. You can put anywhere and have as many “forms” in the tabpanel as you want and dynamically change them at runtime.

But will this panel be addressable by the same conventions (controller,…)?

1), 4), 5), 7), 9) - Great!!

bcusick:
10) It is threaded.

So it is now possible to start a thread in another method as asked in?:
http://forum.servoy.com/viewtopic.php?t … ca0b1a473c

bcusick:
11) If anything, the price is too low. If you’re looking to do more than 500 runtime copies - that is possible as well - it just depends on your solution.

For some of Servoys functionality, namely: web access and deployment of thin clients; access to multiple database backends. Great for devoloping a tool that accesses multiple sources.
For more traditional apps it’s possible to get a Tool/language/IDE that allows you to create unlimited runtime solutions.

bcusick:
Thanks for your feedback!

Thank you very much for the great info!

By the way I read your FM history a couple of years ago or so - on how you ventures begining as an FM developer. It was great. Congratulations on history and also on a great story telling.

Miguel

mjekl:
These plug-ins I’ve seen none around. I suppose most of them are sold by developers. Is this so or will Servoy, BV distribute the Menu plug-in?
This means it’s also possible to make an app with no menu?
Is there a webpage where plug-ins are listed?

We bundle a number of plug-ins at no charge - but this menu plug-in is being developed by a third party. Yes, you can take off all menus (you would have to write a plug-in). We are working on putting together a single place where plug-in developers can list their plug-ins. Right now check out the “plugins and beans” topic in the forum.

mjekl:
Sorry for my mistake. I mean the application icon, both on the main frame and on the desktop! When the client downloads it set’s an icon on the desktop, I would like to define this icon too.

Yep - you can customize all the icons.

mjekl:
Ooops never expected to in-line Java. Bit scarry. I wonder where you would put the class declarations: in Global Methods?
Mainly forms and form objects (buttons, menus, text areas, …). In same cases it might be possible, per example, to have an account class and subclass/specialize it into Suppliers Account and into Clients Account. I’m sure there are people here that probably value the use of OOP more than me though (I’m a hobbyist :slight_smile:

Check out this thread: Using Object Oriented feauters of JS in Servoy - Classic Servoy - Servoy Community

mjekl:

bcusick:
8) You can do that now - just use a tabless tabpanel. You can put anywhere and have as many “forms” in the tabpanel as you want and dynamically change them at runtime.

But will this panel be addressable by the same conventions (controller,…)?

Yes, of course. The tabpanel just DISPLAYS other forms. Let’s say you had a form called “navigation” that was shown in a tabpanel. You can still program anything in that form by using: form.navigation.controller…

mjekl:
So it is now possible to start a thread in another method as asked in?:
http://forum.servoy.com/viewtopic.php?t … ca0b1a473c

Sorry - I misunderstood. You cannot have multiple methods running concurrently at this time.

mjekl:

bcusick:
11) If anything, the price is too low. If you’re looking to do more than 500 runtime copies - that is possible as well - it just depends on your solution.

For some of Servoys functionality, namely: web access and deployment of thin clients; access to multiple database backends. Great for devoloping a tool that accesses multiple sources.
For more traditional apps it’s possible to get a Tool/language/IDE that allows you to create unlimited runtime solutions.

I agree with you. If you’re looking to create a double-clickable application - then this is probably the wrong tool for you.

mjekl:
Thank you very much for the great info!

By the way I read your FM history a couple of years ago or so - on how you ventures begining as an FM developer. It was great. Congratulations on history and also on a great story telling.

Thank you very much for your kind words! I hope you choose to continue to explore Servoy - and we appreciate all your input!

“Make it easy to create hybrid web and native client apps”

This is something that FMP does well, and Servoy apparently does not. The whole issue of not being able/allowed to interact directly with the SQL backend with a web app due to Servoy caching and broadcasting has been an ongoing point of concern for me. I’m aware of some of the workarounds, but, so far, they all seem a bit awkward.