Adam’s June 2018 Meeting Feedback
Agenda
- Talk: My Experiences with Intraweb – Paul Woodhams
- Nugget: uniGUI – Martin Hamilton
- Nugget: TMS Web Core – Jason Chapman
- Talk: Google Sites – Eric Thorniley
- Nugget: Iterating the DOM – Mark Jacobs
Adam’s Feedback
Paul spoke on Intraweb.
Intraweb is a web development framework within the Delphi IDE. It produces standalone EXEs and ISAPI dlls which run on the server and serve out data to a browser which sees a conventional website.
Intraweb is probably the oldest webframework in Delphi. It is still in active development, now on Version 15. It is probably fair to say that it is a mixed bag, as Paul showed. It can be used to produce good internal web-systems, but the components are quite complex, and the help, documentation and support are patchy.
Intraweb is unusual as it is a third party component which itself has third party components … The TMS Intraweb components. Intraweb costs $199 or £399 for Standard and Ultimate editions. It is possible to do extensive work with the free version that comes with Delphi.
Martin spoke on uniGUI.
uniGUI is a more modern framework than Intraweb, but it solves the problem in a similar way, compiling standalone EXEs and ISAPI dlls in the same way, with similar features such as shared data-modules and web-pages created as a series of forms.
Martin showed how closely uniGUI cleaves to the VCL. He converted two projects from VCL to uniGUI simply by renaming component names and “tidying up a bit”. This included a very impressive conversion of a complex program which created a TCanvas object on the server.
uniGUI includes a large array of help and support, and a responsive support team. The product costs $680 or $890 for “Professional” and “Complete” versions.
uniGUI is built on the Sencha ExtJS libraries. This adds some complexity to the picture of uniGUI as a tool, as Embarcadero have recently bought Sencha, creating a bit of uncertainty about whether they themselves may be aiming to integrate the two products.
Jason spoke on TMS Webcore.
TMS are a respected and professional component vendor. Many of us already TMS’s “all access” component license, which bundles WebCore making it easy to adopt. The pack has a cost of 95 Euro, making it the cheapest system to adopt, of those shown on the day.
WebCore is different from uniGUI and Intraweb in that it uses an open source pas2js converter to convert object pascal into java-script.
TMS are making a really big thing of the fact that you can use their FNC (Framework Neutral Components) in a project and compile it as as a Win 32 EXE, Android App and Web App without changing the code. If this really works it is incredibly impressive, and really delivers on Delphi’s promise of “platform independent development”.
WebCore has a full suite of GUI components and some amazing features like integrated debugging from the browser to Delphi.
Integrating its web-apps with data appears to be somewhat more complex, and (at present) requires using the whole of the TMS data-access “stack”, including xData and Sparkle or writing / consuming another source of data RestFul API’s, Socket Server etc.
TMS’ point is that you aren’t constrained by their full stack solution as it comes with the components to consume other standard interfaces for data. Down side is, if you are providing the data, you have to write it.
Eric spoke on Google Sites.
Originally JotSpot, bought by Google in around 2008, Sites offers ‘build your own website in a browser’ capability, with simple, streamlined functionality. Eric demo’d his own use of the tool to produce a couple of good looking websites. The resulting sites can be hosted for free by Google, but linked to your own domain.
You can add media such as YouTube videos, images etc., but more complex embedding (for example image sliders) needs to be done by pulling in outside libraries. It is possible to embed capability to send emails from sites. There are paid for third party tools to exist a Sites website.
Google Sites has relatives like WordPress, Wix, MoonFruit and (probably) countless other similar systems.
Mark spoke on Iterating the Document DOM.
Mark was given the task of altering a web-page developed by a third party. He could not change the original page, but had to write code to intercept it, as it displayed, and rewrite the internal HTML of the page so it displayed as the customer requested.
Mark showed that Javascript includes tools to inject functions into an HTML page to rewrite it, based either on the Element IDs or by iterating from these known IDs to other points on the page.
Document.getElementsByTagName(”) and methods like ParentNode, FirstElementChild etc. can be iterated, and the content of these elements can then be rewritten, for example removing a particular page element from display, changing its font size, position, or the image icon that should be displayed.
As well as showing some excellent javascript functionality Mark’s presentation certainly made me pretty nervous about how easy it is to hack into web-pages and change their functionality, if you have the right type of admin access.