RTC Forums
April 27, 2024, 09:50:58 PM *
Welcome, Guest. Please login or register.

Login with username, password and session length
 
   Home   Help Login Register  
Pages: [1]
  Print  
Author Topic: Compatibility Best Practice  (Read 4972 times)
Andrew.W
RTC License
***
Posts: 43


« on: April 09, 2010, 01:12:56 PM »

Hi

I have upgraded our server to use the latest RTC SDK.

Now, what about the clients? There are clients out there on RTC3.30 - what is the best practice - force these clients to be upgraded? Or can they be safely left as they are?

Cheers,

Logged
D.Tkalcec (RTC)
Administrator
*****
Posts: 1881


« Reply #1 on: April 09, 2010, 02:10:06 PM »

It will mostly depend on your own implementation (how you wrote your remote functions, for example) if your Server will be able to handle parameters received from old and from new Clients.

As far as the RTC SDK goes, it is safe to use Clients compiled with an older RTC SDK version (or even different older RTC SDK versions) together with a Server compiled with a newer RTC SDK version. What you should NOT do, however, is use a Server compiled with an OLDER RTC SDK version together with a Client compiled with a NEWER RTC SDK version.

In other words, if you keep your own Server-side code backwards compatible with your older Clients and you always upgrade your Server(s) before upgrading any of your Clients, you will be on the safe side.

It would be a good idea if you would have your Clients auto-update themselves (download the latest version from the Server) every time they are started, so your Clients do not continue using the oldest versions for too long, so you do not have to keep your Server code compatible with very old Clients, but ... there should be NO breaking changes in the RTC SDK which would force you to upgrade your Clients every time you upgrade the Server. The whole idea of the RTC SDK is to allow you to use Clients of different versions with the same (new) Server, and NOT to force you to upgrade all Clients every time you upgrade your Server.

Best Regards,
Danijel Tkalcec
Logged
kavetu
Newbie
*
Posts: 20


« Reply #2 on: April 12, 2010, 09:42:53 AM »

I would like my Clients app auto-update themselves as you mentioned in this post, how do i do this?

Manfredt Kavetu Smiley
Logged
D.Tkalcec (RTC)
Administrator
*****
Posts: 1881


« Reply #3 on: April 12, 2010, 10:07:14 AM »

Downloading a file from the Server should be easy by using the TRtcDataProvider component on the Server and TRtcDataRequest component on the Client. If you need a working example, take a look at the File_Client and File_Server demos in the RTC SDK package.

Once you have the new Client EXE downloaded from the Server into a file on the Client, provided you have downloaded the new EXE into the "AppFileName+.new" file, simply rename "AppFileName" to "AppFileName+.old" and "AppFileName+.new" to "AppFileName", then start a new instance of "AppFileName" and terminate.

Best Regards,
Danijel Tkalcec
Logged
kavetu
Newbie
*
Posts: 20


« Reply #4 on: April 13, 2010, 08:17:17 AM »

Thanks for the prompt reply, i will try this. Smiley

Manfredt Kavetu
Logged
Andrew.W
RTC License
***
Posts: 43


« Reply #5 on: April 13, 2010, 03:35:48 PM »

It will mostly depend on your own implementation (how you wrote your remote functions, for example) if your Server will be able to handle parameters received from old and from new Clients.

As far as the RTC SDK goes, it is safe to use Clients compiled with an older RTC SDK version (or even different older RTC SDK versions) together with a Server compiled with a newer RTC SDK version. What you should NOT do, however, is use a Server compiled with an OLDER RTC SDK version together with a Client compiled with a NEWER RTC SDK version.

In other words, if you keep your own Server-side code backwards compatible with your older Clients and you always upgrade your Server(s) before upgrading any of your Clients, you will be on the safe side.

It would be a good idea if you would have your Clients auto-update themselves (download the latest version from the Server) every time they are started, so your Clients do not continue using the oldest versions for too long, so you do not have to keep your Server code compatible with very old Clients, but ... there should be NO breaking changes in the RTC SDK which would force you to upgrade your Clients every time you upgrade the Server. The whole idea of the RTC SDK is to allow you to use Clients of different versions with the same (new) Server, and NOT to force you to upgrade all Clients every time you upgrade your Server.

Best Regards,
Danijel Tkalcec

Thanks for that Daniel - really good information to have, and a really nice feature of the sdk.
Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!
Page created in 0.025 seconds with 16 queries.