Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 5 of 5 total
Thread EWB3 Deployment
Wed, Nov 25 2020 5:39 PMPermanent Link

Richard Harding

Wise Nutrition Coaching

Tim

I am using EWB3 Beta build 20.

When EWB3 applications are compiled, the following message is displayed.

Success (0 hints, 0 warnings, 0 errors)
Existing D:\DATA\EWB3\examples EWB3\musiccollection\client\output\musiccollection.js kept (total size is 620.33 KB - compressed)
Existing D:\DATA\EWB3\examples EWB3\musiccollection\client\output\musiccollection.html kept (total size is 169.61 KB - compressed)
[Internal] Running application (http://localhost/musiccollection.html)

However, the output files are now located in the following folder - not in the above folder.
%localappdata%\Elevate Software\Elevate Web Builder 3\server\content\

If the output files are deleted from this folder, they are only recreated if the source has been changed.

-------------------------------------------------------------------

The "Default project deployment structure for new projects" allows
1) Deploy into Project-Specific Folder
2) Deploy into Root Folder

What are these folders? When the project is deployed, it does not seem to copy the deployment files.

The option "Default project base output name" is disabled with the text field set as "index". What is the purpose of this field?

-------------------------------------------------------------------

The following message is displayed when an EWB3 application is run.

[Internal] Running application (http://localhost/musiccollection.html)

How does this work? How does http://127.0.0.1/ get mapped to %localappdata%\Elevate Software\Elevate Web Builder 3\server\content\ ?

Upon deployment, the following message is displayed. What does this mean?
"Server information successfully loaded from Internal"

-------------------------------------------------------------------

I have watched the video. The part about deployment lots and lots of times. Looks great but I still do not understand how to deploy applications and copy databases.

Lets say I have a test application with one table and two forms.
1) Summary list with a grid and
2) An edit form.

The table is a country table with ISOCode, UNCode, Country, Capital, Population, Area, a calculated field Population Density plus lots more. No images of flags - no CLOBs, NO BLOBs. Works fine in the IDE.

It is not obvious to me what steps that I need to perform to copy the database and their associated datasets and deploy the application to another system.

Richard
Wed, Nov 25 2020 11:35 PMPermanent Link

Raul

Team Elevate Team Elevate

On 11/25/2020 5:39 PM, Richard Harding wrote:
> I am using EWB3 Beta build 20.

Same here

> When EWB3 applications are compiled, the following message is displayed.
>
> ...
> However, the output files are now located in the following folder - not in the above folder.
> %localappdata%\Elevate Software\Elevate Web Builder 3\server\content\

Not seeing that here - in my case compile results in file being in the
expected folder  (output folder of the source files) as per log entries.

The other folder you're referring to is the content folder of the
internal server - files would be put there once you deploy (but not for
compile).

>
> If the output files are deleted from this folder, they are only recreated if the source has been changed.

Can confirm this - if deleted they do not get re-created unless you
change source. Looks like a small bug.

>
> The "Default project deployment structure for new projects" allows
> 1) Deploy into Project-Specific Folder
> 2) Deploy into Root Folder
>
> What are these folders? When the project is deployed, it does not seem to copy the deployment files.

It's the "%localappdata%\Elevate Software\Elevate Web Builder
3\server\content\" folder.

It's defined in the ewbide.INI (C:\Users\raul\AppData\Local\Elevate
Software\Elevate Web Builder 3\ewbide.ini) under section
[Server_Internal] and then look for various entries  for directories :

Database Directory, Content Directory, Application Directory, Module
Directory


>
> The option "Default project base output name" is disabled with the text field set as "index". What is the purpose of this field?

It basically controls what the project loader and script file names are.

it should be enabled when you choose "deploy into project specific
folder option" and disabled when "deploy into root folder".

index.html is usually the default file loaded by web servers so if you
deploy to unique folders you can just use index.html and index.js and
when you deploy the URL to the folder path will load the app (instead of
showing contents of folder when enabled or giving user and error).

When you deploy to root folder each project must use unique name hence
the options is disabled and IDE uses project name for file name.


> -------------------------------------------------------------------
>
> The following message is displayed when an EWB3 application is run.
>
> [Internal] Running application (http://localhost/musiccollection.html)
>
> How does this work? How does http://127.0.0.1/ get mapped to %localappdata%\Elevate Software\Elevate Web Builder 3\server\content\ ?

See above for INI entries but web server has default directories mapped
to root URl (/) and looks for content there.

Use the Server Manager -> Server tab and navigate into server File and
you can see how it's mapped and upload/download files and create folders
(and see them them then on file system).

>
> Upon deployment, the following message is displayed. What does this mean?
> "Server information successfully loaded from Internal"

Not seeing it here so not sure.

My guess it IDE reloading internal server info from server !?


> Lets say I have a test application with one table and two forms.
> 1) Summary list with a grid and
> 2) An edit form.
>
> The table is a country table with ISOCode, UNCode, Country, Capital, Population, Area, a calculated field Population Density plus lots more. No images of flags - no CLOBs, NO BLOBs. Works fine in the IDE.
>
> It is not obvious to me what steps that I need to perform to copy the database and their associated datasets and deploy the application to another system.

Assuming the server you're using is EWBSRVR and you have access to it
over network the simplest way is if you have HTTP access to it.

1. Setup the EWBSRVR on another system

2. Add a 2nd server in the IDE - in Server manager you can right click
on servers and add a new one

3. Now you can click on internal server and select "migrate server" and
it prompts you to copy over various server objects.

4. You can also use server manager to manager remote server same way you
manager internal - minimally I suggest you set new administrator
password for remote server

5. This 2nd server is now also available as a deployment target in the
IDE so you deploy right to it


if you do not have access then almost everything needed in in the server
db/apps/content folders and INI and can be copied manually (though you
do then need to edit then INI and such on destination side)

Raul
Sun, Nov 29 2020 4:01 PMPermanent Link

Richard Harding

Wise Nutrition Coaching

I uninstalled EWB3 beta and removed the two EWB3 ini files in %localappdata% and %allusersprofile% (important).

Reinstalled EWB3 beta.

On two occasions, after EWB3 beta was deleted, I needed to delete EWBSRVR3 entries from the following registry folder - HKLM\SYSTEM\CurrentControlSet\Services\EDBSRVR3\

Changed port numbers for EWBSRVR3 service and EWBSRVR and EWBSRVR3 are both running fine. Making progress.

===============================

I still have some more questions.

<<In EWB 3.x, you can only run the command-line debug version of the EWB Web Server as a normal application. The other versions of the EWB Web Server can only be run as Windows services, and do not have an interface.>>

What does the command-line debug version of the EWB Web Server do? When I run it as a normal application, it displays the cmd prompt with some diagnostic information.

===============================

The folder Servers\Internal\Files\Content shows a list of files in the Content folder but it does not indicate where the Content folder is located. How about showing the location of the Content folder when the "Content" node is selected.

Also, the hint for some text fields is found in the Content folder is "Specify the name of the privilege" which is incorrect.

A right-click on the "Servers" folder shows the menu item "Migrate Server" which is not a valid option.

===============================

I have my little network consisting of computers wck, wck2. In EWB2, I can run the multimedia example application by http://wck:82/multimedia.html.

When I compile and run the EWB3 Music Collection example, EWB3 runs the application  "http://localhost/musiccollection.html".

How does running the application (http://localhost/musiccollection.html) get mapped to %localappdata%\Documents\Elevate Web Builder 3\Projects\musiccollection\client\output\musiccollection.html?

Compile messages for Music Collection sample are:

Success (0 hints, 0 warnings, 0 errors)
Existing D:\DATA\EWB3\examples EWB3\musiccollection\client\output\musiccollection.js kept (total size is 620.46 KB - compressed)
Existing D:\DATA\EWB3\examples EWB3\musiccollection\client\output\musiccollection.html kept (total size is 169.61 KB - compressed)
[Internal] D:\DATA\EWB3\examples EWB3\musiccollection\client\output\musiccollection.html already exists in /Content and hasn't changed
[Internal] D:\DATA\EWB3\examples EWB3\musiccollection\client\output\musiccollection.js already exists in /Content and hasn't changed
[Internal] Running application (http://localhost/musiccollection.html)

In EWB3, as Raul indicates, I need to set up another server. So, I create another Server and call it "wck".

I do not know how to configure another server that allows me to access EWB3 applications such as  http://wck:8103/musiccollection.html.

Richard
Mon, Dec 21 2020 2:47 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Richard,

<< However, the output files are now located in the following folder - not in the above folder.
%localappdata%\Elevate Software\Elevate Web Builder 3\server\content\ >>

That's the location of the emitted application files after being deployed.

<< If the output files are deleted from this folder, they are only recreated if the source has been changed. >>

I've fixed this so that the compiler checks for missing output in the project output directory, and re-emits any necessary output (including external files) if they are missing.

<< The "Default project deployment structure for new projects" allows
1) Deploy into Project-Specific Folder
2) Deploy into Root Folder

What are these folders? When the project is deployed, it does not seem to copy the deployment files. >>

Please see here:

https://www.elevatesoft.com/manual?action=viewtopic&id=ewb3&topic=Deploying_Project

Some of the documentation still has broken links.  Sam and I are in the process of fixing these right now as one of the last steps in finishing the documentation.

<< The option "Default project base output name" is disabled with the text field set as "index". What is the purpose of this field? >>

Please see here:

https://www.elevatesoft.com/manual?action=viewtopic&id=ewb3&topic=Settings

under "Project".

These are just settings that control how new projects are set up.  You are always free to change the deployment settings for a project after that point.

<< The following message is displayed when an EWB3 application is run.

[Internal] Running application (http://localhost/musiccollection.html)

How does this work? How does http://127.0.0.1/ get mapped to %localappdata%\Elevate Software\Elevate Web Builder 3\server\content\ ? >>

Please see here:

https://www.elevatesoft.com/manual?action=viewtopic&id=ewb3&topic=Configuring_Server

under "Directory Structure" and "Request Routing".

<< Upon deployment, the following message is displayed. What does this mean?
"Server information successfully loaded from Internal" >>

The server manager is getting loaded during the deployment process.  The deployment process will deploy the application files, and then select them in the server manager so that you can see that they arrived and are there (remote web server).

<< It is not obvious to me what steps that I need to perform to copy the database and their associated datasets and deploy the application to another system. >>

As far as the physical database/database server is concerned, that will need to be handled manually on the target server machine(s).  However, it helps quite a bit to have the database connection properties work correctly for both local development and production usage, so it helps you have your local development setup mirror that of the production setup as far as database names, IP addresses, etc.  I think I'm going to need to add a new option for migrating only the datasets for a database, which might work better than constantly having the database connection properties overwritten in cases where they might not match between local development and production usage.

For migration, you only need to use the server migration option in the server manager:

https://www.elevatesoft.com/manual?action=viewtopic&id=ewb3&topic=Using_Server_Manager

under "Migrating an Existing Server".

Tim Young
Elevate Software
www.elevatesoft.com
Mon, Dec 21 2020 3:18 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Richard,

<< On two occasions, after EWB3 beta was deleted, I needed to delete EWBSRVR3 entries from the following registry folder - HKLM\SYSTEM\CurrentControlSet\Services\EDBSRVR3\  >>

You don't really need to do that: that's the EWB Web Server installed as a Windows service.  As long as you have the ewbsrvr.exe binary in the correct installation location that matches the Windows service, you can uninstall/re-install without touching that registry entry.  However, if you *do* want to uninstall the Windows service, then you need to do so *before* you uninstall the product completely.  Please see here for information on how to uninstall the EWB Web Server as Windows service:

https://www.elevatesoft.com/manual?action=viewtopic&id=ewb3&topic=Starting_Server

under "Installing the Web Server Service".

<< What does the command-line debug version of the EWB Web Server do? When I run it as a normal application, it displays the cmd prompt with some diagnostic information. >>

It is for development purposes when you want to test migration and other types of operations that may require a "simulated" external production web server that isn't the Internal web server instance that is running in the IDE.

<< The folder Servers\Internal\Files\Content shows a list of files in the Content folder but it does not indicate where the Content folder is located. How about showing the location of the Content folder when the "Content" node is selected. >>

It is typically a bad security practice to leak such information out to external clients.  The settings that you want are described here:

https://www.elevatesoft.com/manual?action=viewtopic&id=ewb3&topic=Configuring_Server

under "Directory Structure".

<< Also, the hint for some text fields is found in the Content folder is "Specify the name of the privilege" which is incorrect. >>

This is fixed in the New/Edit Folder dialog.

<< A right-click on the "Servers" folder shows the menu item "Migrate Server" which is not a valid option. >>

This is fixed, also.

<< I have my little network consisting of computers wck, wck2. In EWB2, I can run the multimedia example application by http://wck:82/multimedia.html.

When I compile and run the EWB3 Music Collection example, EWB3 runs the application  "http://localhost/musiccollection.html".

How does running the application (http://localhost/musiccollection.html) get mapped to %localappdata%\Documents\Elevate Web Builder 3\Projects\musiccollection\client\output\musiccollection.html? >>

It doesn't - the output files in that directory are physically deployed to the Internal web server's Content directory, which is, by default, located here:

C:\Users\<User>\AppData\Local\Elevate Software\Elevate Web Builder 3\server\content

In EWB 2, directory mapping was performed for running applications directly from the application project output directory.  In EWB 3, an actual deployment operation takes place so that local deployment is identical to production deployment.  The end result is that you'll have the emitted application files in two locations: the output directory for the application project and the content directory for the Internal web server (or whatever target web server you're deploying to).

As for the URLs, the base portion of the URL comes from the server's Base URL setting configured here:

https://www.elevatesoft.com/manual?action=viewtopic&id=ewb3&topic=Using_Server_Manager

On the "Project" tab of the main menu, you'll see a server selection combo box that allows you to select the server that you want to deploy to.  That determines the base URL.

The rest of the path comes from the deployment path setting on the same "Project" tab.

The mapping of the content URL path (the root) to an actual directory is handled by the web server configuration:

https://www.elevatesoft.com/manual?action=viewtopic&id=ewb3&topic=Configuring_Server

under "Directory Structure" and "Request Routing".

<< In EWB3, as Raul indicates, I need to set up another server. >>

You don't *need* to set up another for development purposes.  The Internal web server in the IDE is all you need for development unless you want to test server migration or some other type of cross-server access like CORS requests on your development machine.

<< I do not know how to configure another server that allows me to access EWB3 applications such as  http://wck:8103/musiccollection.html. >>

1) First, configure the external web server using this guide:

https://www.elevatesoft.com/manual?action=viewtopic&id=ewb3&topic=Configuring_Server

You really only need to worry about these settings:

Port
Secure Port

Just change them to 8103 and 4433, respectively.

2) Then, start up the external command-line web server:

https://www.elevatesoft.com/manual?action=viewtopic&id=ewb3&topic=Starting_Server

under "Starting the 32-bit Console Web Server".

3) Next, add the new "wck" server using the server manager in the IDE:

https://www.elevatesoft.com/manual?action=viewtopic&id=ewb3&topic=Using_Server_Manager

and make sure that you set up the Base URL, Port, and Secure Port settings as:

http://wck
8103
4433

You can name the new server anything you want.

4) Finally, make sure to select the server that you just added as the deployment server on the "Project" menu for the client application project.

You should now be able to deploy and run your application from the new web server.

Tim Young
Elevate Software
www.elevatesoft.com
Image