Chapter 21
Upgrading From Lasso Professional 7

[p]This chapter contains important information for users of Lasso Professional 7 who are upgrading to the latest version of Lasso Professional 8.5. [/p]

[p]If upgrading from an earlier version of Lasso, this chapter should be read in conjunction with the subsequent chapters on upgrading from Lasso Professional 6, Lasso Professional 5, or Lasso Web Data Engine 3.x or earlier. [/p]

[p]Topics in this chapter include: [/p]

Introduction

[p]All Lasso Professional 7 solutions which were written using preferred syntax should run without modifications in Lasso Professional 8 except for the issues mentioned in this chapter. [/p]

[p]Significant effort has been expended to ensure that existing solutions will continue to run in Lasso Professional 8 with few if any modifications required. However, please read through this chapter to learn about changes that may require modifications to your solutions. [/p]

Lasso Studio and Lasso Updater

[p]Lasso Studio includes an Lasso Updater that can be used on code from earlier versions of Lasso to bring it into compliance with the latest version of Lasso. See the documentation for Lasso Studio for more information. [/p]

SQLite

[p]The internal data source in Lasso Professional 8 has been changed from Lasso MySQL to SQLite. This change has several ramifications for developers who are upgrading to Lasso Professional 8. [/p]

[p]All of the internal functionality which makes use of the internal data source including Lasso security, the email queue, scheduled events, sessions, etc. have been rewritten to use SQLite. No modification to any code that makes use of these features should be required. [/p]

Multi-Site

[p]Lasso Professional 8 has an entirely new multi-site architecture. All solution code is run within a site that is automatically spawned by Lasso Service. Each site has its own site level folder that contains duplicates of the folders at the master level. [/p]

[p]Lasso Professional 8 is installed with a single default site. The easiest transition from Lasso Professional 7 is to use this default site for all of the Web hosts on the server. Once the Lasso Professional 8 transition has been made additional sites can be added if needed. [/p]

[p]The structure of the Lasso Professional 8 application folder appears below in abbreviated form. When Lasso is loading or needs a resource it checks both the site level and the master level. In general, the folders at the site level are checked first and if the resource is not found then the master level is checked. [/p]

[pre]Lasso Professional 8/
LassoAdmin/
LassoModules/
LassoStartup/
SQLiteDBs
… [/pre]

[pre] LassoSites/
default-1/
LassoAdmin/
LassoModules/
LassoStartup/
SQLiteDBs

… [/pre]

[note][b]Note: [/b]The appropriate installation chapter of the Lasso Professional Server 8 Setup Guide has a more complete listing of all installed files. [/note]

[pre]///Applications/Lasso Professional 8/LassoSites/default-1/ [/pre]

[p]When upgrading a server from Lasso Professional 7, any third-party modules or JDBC drivers can be moved into the master level. They will be available to the default site and to any sites that are defined on the server. [/p]

Namespaces

[p]Lasso Professional 8’s namespace support should be transparent to most users of Lasso. However, there are a couple situations where updates may be needed. [/p]

[note][b]Note: [/b]Custom tag definitions which are not redefining built-in tags do not require any modifications to work with Lasso Professional 8. [/note]

[pre][Define_Tag: 'Ex_MyTag_TagName'] … [/Define_Tag] [/pre]

[pre][Define_Tag: 'TagName', -Namespace='Ex_MyTag_'] … [/Define_Tag] [/pre]

Digest Authentication

[p]Lasso Professional 8 supports digest authentication as a Web browser authentication method. Digest authentication is more secure than the basic authentication supported by earlier versions of Lasso since passwords are only sent after they have been encrypted using a one-way hash algorithm. [/p]

[p]Digest authentication is supported by all modern Web browsers. Lasso can send both digest and basic authentication challenges. An older browser that does not recognize digest authentication should fall back on basic authentications. Digest authentication can be turned on and off in the Setup > Site > Syntax section of Site Administration. [/p]

[p]One important advantage of digest authentication is that the realm name is significant. A site visitor can be authenticated against several different realm names with different usernames and passwords for each. However, this can present a problem is a site uses many different realm names that were previously ignored. The best solution is to modify all the realm names to be the same or to use Lasso’s default realm name of [code]Lasso Security[/code]. [/p]

[p]In order to support digest authentication Lasso must have the password for each user in the [code]security_user[/code] table stored in plain text. In prior versions of Lasso all passwords were stored as MD5 hashes. Digest authentication will only work for users created or modified with Lasso Professional 8 so the plaintext password is stored properly. Lasso will fall back on basic authentication for users who do not have a plaintext password. [/p]

[p]The [code][Client_Authorization][/code] tag can be used to see what type of authentication is being used for the current site visitor. [/p]

On-Demand LassoApps

[p]All of Lasso’s built-in LassoApps are now provided as on-demand LassoApps which load from the [code]LassoApps[/code] folder in the Lasso Professional 8 application folder. The [code]/Lasso/[/code] folder is no longer required in the Web server root. This means that the traditional URLs to load Lasso Administration will not necessarily work any more. Instead, the following URLs should be used. [/p]

[pre]Server Administration – http://www.example.com/ServerAdmin.LassoApp [/pre]

[pre]Site Administration – http://www.example.com/SiteAdmin.LassoApp [/pre]

[pre]Database Browser – http://www.example.com/DatabaseBrowser.LassoApp [/pre]

[pre]Group Administration – http://www.example.com/GroupAdmin.LassoApp [/pre]

[pre]Lasso 8 Reference – http://www.example.com/LDMLReference.LassoApp [/pre]

[pre]XML-RPC / SOAP – http://www.example.com/RPC.LassoApp [/pre]

[pre]Lasso Studio – http://www.example.com/LassoStudio.LassoApp [/pre]

[p]If the Web server requires it (e.g. Apache on Mac OS X) a [code]/Lasso/[/code] folder can be created in the Web server root so that the URLs from prior versions of Lasso will work. Simply creating an empty folder will allow Lasso to load its on-demand LassoApps from the Lasso Professional 8 application folder. [/p]

Syntax Changes

[p]None of the syntax changes in Lasso Professional 8 should require modifications to existing sites. All of these changes are fully backward compatible. [/p]

Parentheses Syntax

[p]Lasso now supports parentheses syntax in which a tag name is followed by parentheses that include the parameters of the tag. [/p]

[pre]Tag_Name(-Param, -Name=Value); [/pre]

[p]The syntax of prior versions of Lasso is called colon syntax and is also fully supported in Lasso Professional 8. There are no plans to deprecate colon syntax. [/p]

[pre]Tag_Name: -Param, -Name=Value; [/pre]

[p]The two syntax methods can be used interchangeably, even in the same expression. No modification of existing sites should be required. [/p]

[note][b]Note: [/b]Partial support for parentheses syntax was provided in Lasso Professional 7. Some sites written using parentheses syntax will run fine in Lasso Professional 7 or Lasso Professional 8. However, the use of parentheses syntax in Lasso Professional 7 is not fully supported. [/note]

BlowFish Encryption

[p]Earlier versions of Lasso included a BlowFish implementation that was not compatible with most third-party BlowFish implementations. This could make it difficult to transmit data to other Web application servers, Java applets, etc. using a secure BlowFish channel. [/p]

[p]A new BlowFish2 algorithm is now provided which uses an industry standard implementation. The [code][Encrypt_BlowFish2[/code]] and [code][Decrypt_BlowFish2[/code]] tags are the preferred tags to use when performing BlowFish encryption and should always be used when communicating with another software product using BlowFish. [/p]

[p]However, the original [code][Encrypt_BlowFish[/code]] and [code][Decrypt_BlowFish][/code] tags are still provided for backward compatibility. These tags are safe to use for existing solutions and are recommended for a solution that needs to be able to share data with older versions of Lasso or for communication with older versions of Lasso. [/p]

Tag Name Changes

[p]The table below summarizes the names of all the tags that have changed since Lasso Professional 7. The old tag name is still supported in Lasso Professional 8, but future development should use the new tag name. [/p]

Table 1: Tag Name Changes

[table][tr][th]Old Name[/th][th]New Name[/th][th] [/th][/tr]

[tr][td][Array->FindIndex][/td][td][Array->FindPosition] [/td][/tr]

[tr][td][Lasso_SiteID][/td][td][Site_ID] [/td][/tr]

[tr][td][Lasso_SiteName][/td][td][Site_Name] [/td][/tr]

[tr][td][Lasso_SiteRestart][/td][td][Site_Restart] [/td][/tr]

[tr][td][Lasso_SiteIsRunning][/td][td][Server_SiteIsRunning] [/td][/tr]

[tr][td][Lasso_SiteStart][/td][td][Server_SiteStart] [/td][/tr]

[tr][td][Lasso_SiteStop][/td][td][Server_SiteStop] [/td][/tr]

[/table]

[p]Lasso uses positions to reference elements within compound data types. Positions run from [code]1[/code] to the size of the compound data type. The [code][Array->FindIndex][/code] tag has been renamed [code][Array->FindPosition][/code] to reflect this terminology. [/p]

[p]The [code][Lasso_Site…][/code] tags were renamed in Lasso Professional 8.1.0 in order to separate them into tags which could be called from within each site and tags which could only be called within Server Administration.[/p]