remote development

Is it possible to run developer against a remote repoisitory and Sybase DB – accessible by IP address?

If so, how???

if that database is accessable through the internet then yest
just specify the right ip/dns adress in the jdbc url..
on the place where the word ‘localhost’ is now in the url

I know that much. That will allow me to coneect the forms I am developing locally with data in the remote DB.

That though is not my question – or I am not understanding how Servoy works (which is entirely possible).

My understanding is that all of the Servoy objects (forms, controls, Servoy relations, etc.) are typically stored in a repository on the developers machine or somewhere on an intranet to which the developer has access. Part of that information is also the connections to remote DB’s that the applications uses.

What I want to know is, can that repository, be stored on a remote server and accessed through the internet (not a corporate intranet) – assuming the appropiate firewalls are opened.

We have three developers on our project: two in one location and another (me) about 6,000 miles away. We know that Servoy is quite setup for team development (yet) and have planned to create our own system of knowing who is currently working on what objects. But we thought that there was the capability of working on a remote project – but now that I am trying to implement that I don’t see how.

Can this be done?

ok. you can’t connect with multiply developers at once to one repository database. Also the server will not see the changes you make (it must be flushed)

So for multi development on one server is currently not possible. You will not gain much over export (locally)-> import (remote)

OK. Understood.

If we go the export/import route, the documentation is not very clear about how the imported solution will merge with the current solution (assuming we select that option).

If there are some forms/methods/relations that are new or updated in the imported solution and other forms/methods/relations that are new or updated in the current solution, but there are no forms/methods/relations that are new or updated in both of the solutions – will everything get merged properly so all of the forms/methods/relations that are new or updated end up in the current solution?

If there are the same forms/methods/relations that have been updated in both of the solutions – which update will take precedence? Based on date/time of the update? Revision number of the two solutions?

In short, what is the best way to do this – and what do we need to be especially careful about?

Thanks for your help!

I have been working on a project with 2-3 developers together for a few weeks.

In short: it is doable…

But be carefull. At the moment there is no support to do this so you really have to pay attention to what you do. NEVER work on the same form apart from each other. The best thing you can do is to assign part of a project to each developer and not let this be touched by others.

One person should take responsibility and be the master. The others should be slave and work on a copy of the master.
You have to ‘sync’ regularly.
And, beware with changes to the database and especially stylesheet. Stylesheets are ‘global’ so again one person should be responsible.

My apologies for not being more specific. It is a process of trial and error and unless you have to do this I should wait untill Servoy support this 100%. To date they don’t so everything I wrote is for your own responsibility. If you do decide to go this road PLEASE make one backup a day (preferrably more frequent) per developer…

Good luck

Very new here…
This post almost answered my question. I started developer on my server at work. I then shut it down, and I believe that leaves sybase and Servoy application server running. Now I would like to develop on one of the solutions in the repository from home. The post says to put in the server URL in jdbc something. I can’t for the life of me find that. Can someone help?

Thanks
Bill Belanger

Bill,

It’s in the Edit → Preferences → DB Servers

Change “localhost” to the IP address in the “repository_server” settings.

Hi Bill,

First let me say welcome to Servoy.

Let me first explain a few things.
When you start Servoy server on your server at work and then Developer on that same machine then Server and Sybase will keep running when you quit Developer.
When you don’t have Server running when you launch Developer then it will also launch Server but in a specific state.
When you quit Developer it will quit that Server instance as well.

However in all scenarios Sybase iAnywhere will keep running.

Another big ‘heads-up’ is the use of servoy sequences.
When your solution uses Servoy Sequences then they will be tracked by the server that you talk to.
When 2 servers are connected to the same database (in the case of the Server and Developer running at the same time, or even multiple developers running on the same database) then you WILL get into trouble when you start adding records.
When your solution uses database sequences then this is not an issue because the back-end database will handle all this.

Now for setting the JDBC URL I see that while writing this reply Bob already answered that one :)

Hope this helps.

Thanks Bob and Robert. So I guess if I quit developer at work, then the Servoy server quit too and that’s why I can’t connect, right?

I’m coming from Filemaker so what I’m used to is running the server as a service then I could connect remotely. In order to do that I would have to have two things run, Sybase as well as Servoy application server. Is that right? Sorry I haven’t been able to read all the docs yet, I’m trying to just get a “quick start”

Bill Belanger

Hi Bill,

If you had Developer only running on the server then indeed will you not be able to connect to Servoy server after you quit Developer.
However you should be able to connect to Sybase iAnywhere.
So doing remote development should be possible by directly connecting to the remote repository database.

If you can’t connect then check if you have a firewall running that is blocking the sybase port. Also if your server is behind a router then you might need to route the sybase port to the correct IP.

And yes, in order to have Servoy running as a service you need both the database service (in this case Sybase iAnywhere) and Servoy server running.
Unlike FMPro you can use any SQL back-end database for your repository and data.

Hope this helps.

Thanks Robert. I’m able to connect with both a web client and smart client. Should I be trying to connect to servoy server through port 8080 with developer?

Bill Belanger

Hi Bill,

Only Multi-Developer, WebClient, Headless Client and Rich Client connect to Servoy Server.
If you run (normal) Developer then you connect directly to the repository database (port 2638). Therefore the running Server (and connected clients) doesn’t know about your changes. Hence the posts in this thread about the dangers of doing so.

Let me explain how Servoy connections work with the different clients/developers.
Rich Client:```
[sybase]----[servoy server]----[rich client]

WebClient:```
[sybase]----[servoy server]----[web client]

Headless Client:```
[sybase]----[servoy server]----[headless client] (same as the batchprocessor)

Developer:```
[sybase]----[servoy server (special mode)]----[developer]

Now if you have Server already running and you connect Developer remotely to the repository you get the following picture:

[sybase]--+--[servoy server]----[any clients]
          |
          |
          +--[servoy server (special mode)]----[developer]

Now as you can see the remote Servoy server is out of the loop when you connect your local Developer on the remote repository.
Servoy Server and the Clients use a lot of caching of data that they already fetched before from the database so any changes you make to the a solution might not be seen by the remote Server and clients.
In fact nasty things can happen when it has to fetch an object you removed. It will break the solution for those users for that session.
Now if there are no users using that solution you could edit it without problems. But you do need to restart the remote Servoy server after the changes.

All in all it’s better you develop on your local machine and export/import the solution to the server environment.

Hope this makes things a bit clearer for you.