At XDC 2019 Greg O’Lone of Xojo showed us the current status of Web Framework 2.0.
The design goals for the web framework:
Update the server technologies.
Improve responsiveness
Modernize the framework
New and Updated Controls
Improved Browser Support
HTTP 1.1 compliant server.
Minified frameworks and Client Rendering (more done on the browser now)
jQuery – feature rich JavaScript library
Boostrap and FuelUX controls
Browsers:
Support as many of the current browsers as possible. Current framework parses headers to determine what to support but most browsers lie. Going to ask the browser what it supports. The controls themselves will determine what they can do. Things like TouchEvents and File API support might change.
Adding Browser History triggers. Can tell the session that something happened. For example if user was filling out form partially and hit back button. When they come back to the site the HashTagChanged event fires can allow you to get that information back
Visual Session Controls.
Server Connection Monitor. New dialog to show user that it’s having problems communicating.
Layout Modes: Fixed, put a control on a layout and it just stays there. Fluid layout lets controls flow around in the container. Auto(layout) – not in version 1.
Big list of already supported controls. New ones: MessageDialog, PagePanel, Breadcrumb, Rich Text Editor.
Big functionality updates: File Uploader (splitting engine from the interface). Listbox has pagination, dynamic data sources, sortable columns, built-in filtering, custom column types. Canvas has layers, events, and Drag and Drop on browser side. Toolbar is Bootstrap (but will have icons) and it will act more like the desktop toolbar. TextFields gets browser side text formatting and validation. MenuItems are theme compliant, disabled items, hierarchical, separators, and headers.
Styles: Existing editor is painful. All projects will get the global Bootstrap theme. Drop-in theme replacement. Themes can be previewed in the IDE!!! Selective control-level customization more like what we get on the desktop. Property-level style access which means will be able to change styles via code!
Project transition is a one way operation. Using API 2.0 but will still use the deprecated API. Some things like ListBox.AddRow will automatically converted to new API. CGI projects are going away and the only option will be standalone.
Xojo Cloud will be using only 64-bit standalone apps. You’ll get Load balancing and multiple domain names. Must be using the newer server configurations.
WebSDK 2.0: jQuery, Bootstrap and FuelUX will be included. Browser feature detection and we’ll be able to query to see if a browser can do something.
TypeScript allows us to compile the Javascript that all browsers use. Get some definition files and other things.
Greg shows us a demo of the Web Framework 2.0:
Shows a WebPage that has working TabPanel. Layout Editor drag and drop not working quite like it will in release version. Shows me MessageDialog. Shows new ChartingControl.
He then shows us changing the theme. Simple drag and drop of Cyborg theme changed everything in the project. Very nifty.
Greg shows us pre-Alpha Feedback using Web Framework 2.0. TextField support password managers now! Buttons are Escape and Enter sensitive now. Listbox has custom column types: Picture column and URL column. Clicked on a link (Feedback report) and then opened it. Showed use of the back button that took us to previous action. Then showed Dynamically Load listbox an dhow it loaded more data as he scrolled to the bottom of the list.
Very functional demo!
Q & A:
Message Dialogs have icons? Yes, just like current desktop.
The demo showed 3 buttons. Will it return values? Yes, just like current desktop.
Will container control will be draggable? Redesigning drag and drop. So maybe? Might not be right away.
Pushing more stuff down to the client will be have access to hardware/devices on client side? You’d have to use Internet Explorer and the WebSDK to load and ActiveX control.
How easy to support Dark Mode in web apps? Only supported in Safari. Answer is maybe and change the stylesheet on the fly.
Recommend load balancer for new web framework? No. Used it with several load balancers and they all worked. Changed how much data is being transferred between client and server. Transmissions cut down by 60%.
Can users change theme at runtime? Yes. Maybe not in version 1.
With Xojo Cloud load balancing is there any scheduling or rules? Control distribution is up front – no thoughts on scheduling.
With new Canvas control would you be able to create a game with it? Their intention is to expose the canvas handle to developers. Some restrictions.
Custom skinning on progress wheels? Yes. Current one is SVG and it just rotates it.
How will editing in web listbox work? Custom column type. Doesn’t work today but a huge want.
Listbox has a built-in Search Field. ListBox in general has a number of things built-in. By Default has pagination and search field. Will eventually support multiple layout types (list, picture) but not for version 1.
Open events work by the way.
Will tags be available in more places? We haven’t done that yet. Unknown if it will get into version 1.
User get click happy is there a way to prevent weird stuff from happening? Still have the Auto Disable for buttons. There is some mechanism in place to prevent the exact same event from being sent to server.
Column sorting and pagination? Adopted desktop behavior for column sorting. Sorting a column will requery the database. Always goes back to the data source.