pbower wrote:I understand why the "standalone build for web" has been dropped.
Within this discussion it seems that people imply the lc server will do everything that the standalone builder would.
I've not come across such a discussion, and I'm afraid that's incorrect: the old Standalone Builder option was for delivering CLIENT-side materials, while LiveCode Server is a SERVER-side solution.
With client-server systems, each side has a unique role: a server provides the content the client will display, but that content must be in a form the client software can understand.
If the client is a Web browser, there's only one interactivity language all web browsers support: JavaScript.
With dark irony, there's an upside to having only one choice for providing interactivity for the browser: we needn't spend any time evaluating alternatives to decide which language to learn, because there aren't any alternatives.
The content a Web browser can understand and display must be HTML, augmented with styling provided in CSS and with interactivity provided with JavaScript. No viable alternatives exist for this, so anyone interested in delivering apps specifically within a Web browser have no choice but to learn at least the basics of those three components. Thankfully they're enormously well documented, and reasonably self-consistent, and with each only a handful of things is necessary to learn to get started, so they're not all that hard to learn.
That said, in many cases it can be quite useful to use the Web's HTTP protocol to deliver native LiveCode stacks with all the benefits of a Web browser app in terms of central storage, instant updates, etc., by switching the client from an ordinary Web browser to a custom app built with LiveCode.
Doing so can be as simple as this one-liner in the client standalone:
Code: Select all
go url "http://somedomain.com/mystack.livecode
In the LiveCode IDE, see Development->Plugins->GoRevNet as one example of this sort of thing - aside from the first stack that displays the download progress, all the stacks and data you see that point on are delivered from several different Web servers.
A custom Web-savvy standalone is easy to build, and provides some advantages a Web browser can't, including a UI dedicated to what you're app does (obviating the need to handle such disruptive distractions of how to handle the Back button or other controls browsers include for things that may not be relevant to your app), and even using the secureMode option to deliver an experience that's actually more secure than any Web browser can be.
As with the old browser plugin RunRev once experimented with as delivery option for the Web, a custom standalone also requires a one-time install. And like the old plugin, once installed it can download and run any stacks you put on your servers, but with fewer constraints and much more flexibility than the plugin could deliver.
But all that only addresses the client side.
On the server side, LiveCode Server has a role very similar to PHP, in providing a language that lets you process instructions sent to the server to generate data the server will then pass back to the client.
When the client is a Web browser, the data returned must be HTML so the client can display it (or if called from an AJAX routine, it may be XML or other format suitable for that discrete operation).
When the client is a LiveCode-based standalone, LiveCode Server can deliver data in any format your client can use. I frequently have server routines that deliver simple tab-delimited lists that LC-based clients use by just putting the data into a list field for quick and easy display in one step.
In a world that's increasingly realizing the benefits of dynamically-generated, user-specific content, LiveCode Server is finding a useful role in a wide range of client-server apps, both with Web-based clients and with clients built as custom standalones with LiveCode.
But the two roles, client and server, are very different from one another, and for all of LiveCode Server's usefulness it can't turn an ordinary Web browser into something that can understand LiveCode stack files.