Ask Reuben
GDC VS GBC
Should I use the GDC or GBC?
What factors influence the decision to use GDC or GBC?
A very good question I got asked in one of the recent WWDC events was wether you should use the GDC or GBC? Both use Universal Rendering so the appearance is the same, so what dictates use of GDC or GBC? There is no right or wrong answer but there are several factors you should consider in your decision making. Using GDC, you have to come up with a mechanism to initially deploy the GDC application to your users desk-tops, and to also deploy a GDC short-cut for them to click on to start the application. Most Enterprise customers will have procedures in place for deployment of applications to users PC, and for these larger customers it used to be that the techniques you used to get outlook.exe, excel.exe etc onto your Windows desktop are the same you use to get gdc.exe onto your Windows desktop. We do provide the AutoUpdate facility but you still need to get the initial GDC application out onto your users desk-tops. Using GBC, you are relying on the fact that most PC’s have Web Browsers and these auto-update every two weeks. You do not have to explicitly deploy anything to your end-users other than giving them a URL to click-on and/or to add to their bookmarks. Browsers also have a wider range of devices where you will find them. GDC will run on Windows, Mac, Linux desktops. Web Browsers (and hence GBC) run on these as well and in addition you will find Web Browsers running on phones, tablets and other devices. Hence there with GBC there is a wider range of devices all capable of rendering your Genero application. If you want this wider range, then this is an argument for using GBC. Using GDC, you have the choice of Direct-Connection or connecting via HTTP and Genero Application Server. Using Direct Connection, each user requires a logon to the back end Application Server and the fglrun process runs as this user. When connecting via GAS, there is a single application user on the back end Application Server and the fglrun process runs as this user. Using GBC, there is no Direct Connection option, and you connect using HTTP and Genero Application Server. There is a single application user on the Application Server and the fglrun process runs as this user. For most, when moving from GDC Direct Connection to a solution using Genero Application Server, this is something they have to take into account with their application and transform it accordingly. Not all Front Calls function calls are available on all front-ends. With GDC, you have the popular shellExec and execute Front Calls that are not available via a Web Browser and GBC. With GBC these Front Calls are not available due to Web Browser security limitations. You have to work within what a browser allows you to do. So in the case of shellExec, this typically means that instead of using FGL_PUTFILE to move a file from the Application Server to the front-end and then opening it using the shellExec front-call, you would use filenameToUri to make the file available via the launchUrl front-call from your application server. Strictly speaking we should rename some of the “standard” front-calls as “gdc” front-calls if they are only available on the GDC. The same security restrictions that impact the use of shellExec and execute front-calls also impact use of GBC in other areas. Activities such as Drag and Drop, Printing immediately, Clipboard Interaction that function one way in the GDC you may find have a different user experience in the GBC. When you encounter this, just ask yourself what would a malicious website developer do if they could do if they had the same powers as you have in the GDC. For example using GDC you can print immediately to your desktops printer without any user interaction. A malicious web site developer might start printing advertisements or worse on your printer if they had the same power. Using GBC the user has to explicitly indicate that they want to print something. If you need a strong layer of desktop interaction, you might lean towards the GDC. You might also ask yourself, how does a web developer do what I am trying to do. For example, a web developer does not have the WinDDE/ WinCom front-calls to interact with Excel, but they do have ability to interact with an Excel document via use of JAVA ApachePOI libraries and create an Excel document that is then made available to download. When creating your own user-defined front-calls, using GDC you are creating these in C++. , using GBC you are creating these in Javascript. If you are interacting with a 3rd party tool, you maybe constrained by the API of this 3rd party tool and what it can interact with. Sometimes a thorough read of the 3rd party tool API documentation will uncover more than one way of interacting with it. You may find a slight performance improvement using GBC. With GDC and Universal Rendering, you are displaying your Genero application into a browser that is shipped as part of the GDC. Similarly if typeahead is important to you, get your fast users and see how GDC and GBC react when they are a number of keystrokes ahead of what is displayed on the screen. For ISV’s, you need to consider does your product have more sales appeal if it is sold via a Browser or if it is sold as a Desktop application. Just as in the early 2000’s our Text User Interface customers and even our BDS customers found that they were no longer relevant because they did not offer a proper GUI solution and so they transformed to Genero and the GDC. Nowadays the same thing is said if you don’t have a Web Browser solution. Being able to run using GBC allows you to tick that box. There is no one fits all answer. The factors listed above can all influence your decision as to wether to use GDC or GBC. When using Genero Application Server to serve both, you can consider having both in your solution.
Deployment
Application User
Front Calls
Desktop Interaction
User-Defined Front-Calls
Performance
Marketing Appeal
Summary