Elevate Software


Login Login

ProductsBulletSalesBulletSupportBulletDownloadsBulletAbout





Home » Elevate Software Blog » Progress Update on Elevate Web Builder 2.07

Icon Progress Update on Elevate Web Builder 2.07

Posted by Tim Young on Mon, Nov 27 2017
I just wanted to take some time to update everyone on the (now) very-late 2.07 update to Elevate Web Builder and solicit some comments on potential areas of improvement in the IDE. I also figured that I would do this in a proper blog post, primarily because I don't blog enough about what's going on here at Elevate Software and this is an effort to change that. Smile

To recap, Elevate Web Builder 2.07 will be quite a big update for a minor release. In fact, it's essentialy a major release crammed into a minor release. The list of improvements include:
  • The IDE has been given a facelift and looks quite a bit different in several ways. Part of this is due to the need of starting the process of making the IDE high-DPI aware, and the other part is the need to improve the look and feel of the IDE, especially in terms of negative space and ease-of-use. The new IDE tries very hard to make sure that what one needs is only a single click or keystroke away, whether it be recent projects or saving debug messages to a text file.


  • The web server has also been given a facelift, in addition to several other major improvements listed below. There isn't a user interface for the web server anymore, and instead all administration is performed through the IDE or via a web interface. You can still run the web server as an interactive console process for development purposes, but it is primarily designed now to run exclusively as a service without a user interface.


  • The web server now includes built-in SSL support. The first platform supported will be Windows, of course, so I have implemented the SSL support using the Windows crypto API. This will make things easier to deal with in terms of Windows security updates and improvements, and allow administrators to control how the web server works in terms of which crypto cipher suites are used, as well as which base versions of SSL/TLS are used. And all of this can occur without the developer needing to configure anything in the web server itself, making deployments much easier. Other future platform targets will use the OpenSSL libraries.


  • The web server now includes built-in GZip support. This will greatly improve the Elevate Web Builder client application loading performance over slow connections (mobile), especially when updates to the client applications are deployed.


  • The web server now includes support for loading and executing server-side applications that use the Elevate Web Builder runtime. The runtime is an interpreted Object Pascal execution environment that has been present in the IDE since Elevate Web Builder 2.00, but has only been used for design-time execution of code. It has been updated to include functionality for working with web server requests, files, HTML, and more. What this means is that 2.07 will allow you to create and deploy server-side applications in much the same way that you do now for client applications that run in a browser.


  • The IDE now includes support for creating server-side applications that use the Elevate Web Builder runtime available in the web server. The server-side applications are monolitic and self-contained, so there are no dependency issues. The server-side applications are also compressed, and can be encrypted in order to keep the code secure.
At this point, I'm hoping that we can get a public beta out before Christmas. However, in the meantime, I need some input from everyone on any minor changes that they want to see in the IDE that aren't there currently. What I mean by "minor" are features that are useful for productivity or usability and are mostly cosmetic. Features like code completion or other related code editor features rely on incremental compilation improvements to the Elevate Web Builder compiler, and will be coming next in the compilation improvements to the Elevate Web Builder compiler. So, those types of features are not what I'm looking for. For example, a component navigator was added to the IDE for 2.07 that allows you to see the designer components in a treeview on the left. The component palette was also changed so that it shows the name of the component in addition to the component icon. Things along those lines are what I'm looking for, especially if it deals with improving the productivity or usability of the IDE.

Thanks very much for your feedback.


Tags: Elevate Web Builder, 2.07 Progress Update, Server-Side ApplicationsPermanent Link

Comments Comments (37) You must be logged in to comment

Comment Rick said... Reply
Thanks Tim, looking forward to the update. Here are a few suggestions for the IDE:

- Use a ribbon bar instead of a main menu.

- Include a search facility for locating components in the palette. Especially useful if the palette is now a treeview/list.

- Include a maximize/restore button on the code editor window. Sometimes it's useful to only see the code and a button is easier than resizing the window manually via mouse.

- Include a window manager that can save the IDE window layout and allow it to be restored later. Would be useful if it could save any number of layouts.

- Place an X button on each opened tab to close it without requiring a right-click.

Rick

Comment Rick said... Reply
Tim, a few more IDE suggestions:

- Include a minimap function similar to VS Code to show a "10,000 foot view of your code."

- A split editor feature would be useful to edit the code for two or more units side-by-side. A scroll lock/sync feature would allow the code for both units to scroll simultaneously.

- Code regions/folding would help with minimizing noise during editing.

Rick

Comment Max Evans said... Reply
Hi Tim,

Perhaps you could allow ANY dropdown combo in the object inspector to display more than 8 items at once. Not having to scroll through items would save some time for me.

I'm looking forward to the update.

Cheers

Max

Comment Rick said... Reply
Tim, how about showing an example of each font in the Object Inspector Font Name drop down. Would make it easier to choose during selection. Something similar for the IconName drop down so that we can see what the icon looks like before selecting it. Rick.

Comment Michel said... Reply
HI Tim,

What I miss most in the IDE is the ability to navigate code with multiple bookmarks.

I use that very often in Delphi.

Ctrl-K-N (N is 0 to 9) to set a bookmark
and
Ctrl-Q-N to go to the corresponding bookmark.

Thanks,

Michel

Comment KimHJ said... Reply
Get Geo Location.

Thanks,
Kim

Comment Allen Hunt said... Reply
Hi Tim,

Thank you for allowing us to provide you with input.  At the moment, the only thing important to me would be a "Clear Recent Projects" option.  Delphi has is under File | Reopen | Properties where a dialog pops up.  I don't ever use the dialog but a simple Clear Recent Projects as a - last item under "File | Reopen" would really help.

2) It would be nice to have a folder button like you have in the Project Manager that opens up the File Explorer to the C:\Users\{user name}\AppData\Local\Elevate Software\Elevate Web Builder 2 where the ewbide.ini is located so we can edit it with our favorite editor.  The other option would be a button or something to easily open it up in your code editor.

3) I know this is not IDE related but the Configure Server dialog for the web server is not resizable.  It makes it especially hard to manage DataSet Names and SQL statements because the listbox is so small.  You may have already addressed this since you said it got a facelift.

I'm looking forward to the update.  EWB is awesome!  Have great holidays!

Best Regards,
Allen

Comment erickengelke said... Reply
My requests are weird

1. Allow a user-defined post-build cmd script to be defined for a project to copy files or do whatever one wants (including making a backup if they please)

2. allow a compile-time option for  EWB line number to be written to JavaScript
eg. // line 234
which would help with debugging.  It wouldn't be a lot of work on your part.

Erick


Comment edwinyes said... Reply
code-complete, please, I'll buy it immediately once this feature is available.

Comment Richard Mace said... Reply
When we Ctrl and Click to jump to a defined code element, can we have a back (and forward) button (like in Lazarus IDE), so we can easily jump forward and backwards to different parts of code?

Richard

Comment Mark Brooks said... Reply
Tim

Great update.

In the words of Barry White "Don't go changing to try to please me, I love you just the way you are". However .............

1) Left-click "cross" on editor tab to close that file
2) Right-click on editor tab with context menu to close all other files
3) Project option to include user-customisation in HTML output
4) Specific comment format that creates a "todo" and list of such kept in IDE e.g. // $TODO

Cheers
Mark

Comment Matthew Jones said... Reply
The number one thing I'd like is keyword expansion, where you type "ig" and space and it replaces it with " : Integer;". Doesn't have to be fancy. "for" into "for nLoop := 0 to .Count -1 do" would be lovely, but if you can add in a | character for where to leave the cursor, that would be even better.

Conditional compilation in IDE and command line.

I also echo previous suggestions of bookmarks and jumping back after a click to see some reference.

Keep up the great work!  (OMG - just seen you have "reset" on your comment form. Kill it - it was the worst mistake ever made on web forms. People know how to delete! But they accidentally click buttons in the bottom right because that's where submit goes! I nearly lost my message...)

Comment kamran said... Reply
Hi Tim

In case you missed my comments of 20/11/2017:

In the EWB IDE:

1. Can we have another button to "toggle" the coding editor window into full screen and back again. (even with my 24 inch screen it would be much easier to see the full screen when editing code.) - an additional button near where you have the existing "show code editor" button

2. Can we another button to "Backup" the current project folder
(an additional button near where you have the existing "show code editor" button

e.g: a user defined backup folder c:\web\backups\current project folder\

But where a new folder is created with a date and time stamp each time you press it.

e.g: c:\web\backups\webcafe\2017.11.20 19.30

That would be a simple and great way to make backups on the fly from within the IDE.


Keep up the good work!

and looking forward to version 2.07

Thank you

Kamran

Comment Tim Young [Elevate Software] said... Reply
@Rick

" - Use a ribbon bar instead of a main menu."

The new IDE uses a ribbon bar.  It's not an MS control, either, so it doesn't require anything special in terms of common controls.

"- Include a maximize/restore button on the code editor window. Sometimes it's useful to only see the code and a button is easier than resizing the window manually via mouse."

So, you're asking for a button that will hide all ancillary tool windows and only show the code editor ?

"- Place an X button on each opened tab to close it without requiring a right-click."

This is also in the new IDE.

The rest I've added to the list, thanks.

Comment Tim Young [Elevate Software] said... Reply
Rick,

"- Include a minimap function similar to VS Code to show a "10,000 foot view of your code."

- A split editor feature would be useful to edit the code for two or more units side-by-side. A scroll lock/sync feature would allow the code for both units to scroll simultaneously.

- Code regions/folding would help with minimizing noise during editing."

These are all more likely to happen with the code editor improvements.

Comment Tim Young [Elevate Software] said... Reply
@Max,

"Perhaps you could allow ANY dropdown combo in the object inspector to display more than 8 items at once. Not having to scroll through items would save some time for me."

The new IDE defaults to making the drop-down half the height of the component inspector window, but I can make the count be configurable.

Comment Tim Young [Elevate Software] said... Reply
@Michel,

"What I miss most in the IDE is the ability to navigate code with multiple bookmarks."

Bookmarks are pretty easy, so I'll see if I can fit them in.

Comment Tim Young [Elevate Software] said... Reply
@Kim,

"Get Geo Location."

EWB 2.06 Build 9 has geo-location services.

Release Notes:

https://www.elevatesoft.com/download?action=info&category=ewb&type=ewbtrial&majorversion=2&version=2.06

Comment Tim Young [Elevate Software] said... Reply
@Allen,

"Thank you for allowing us to provide you with input.  At the moment, the only thing important to me would be a "Clear Recent Projects" option.  Delphi has is under File | Reopen | Properties where a dialog pops up.  I don't ever use the dialog but a simple Clear Recent Projects as a - last item under "File | Reopen" would really help."

That's a good idea.  The new IDE has the recent projects (and units/interfaces, and they aren't combined anymore) as a drop-down toolbar button, so this would be a nice addition to the end of the drop-down (along with the actual open from folder button).

"2) It would be nice to have a folder button like you have in the Project Manager that opens up the File Explorer to the C:\Users\{user name}\AppData\Local\Elevate Software\Elevate Web Builder 2 where the ewbide.ini is located so we can edit it with our favorite editor.  The other option would be a button or something to easily open it up in your code editor."

Another good idea.

"3) I know this is not IDE related but the Configure Server dialog for the web server is not resizable.  It makes it especially hard to manage DataSet Names and SQL statements because the listbox is so small.  You may have already addressed this since you said it got a facelift."

Yes, this is addressed indirectly through the new ways of administering the web server.

Comment Tim Young [Elevate Software] said... Reply
@Richard,

"When we Ctrl and Click to jump to a defined code element, can we have a back (and forward) button (like in Lazarus IDE), so we can easily jump forward and backwards to different parts of code?"

That's a really good idea, thanks.  This is exactly what I'm talking about in terms of productivity.

Comment Tim Young [Elevate Software] said... Reply
@Matthew,

"The number one thing I'd like is keyword expansion, where you type "ig" and space and it replaces it with " : Integer;". Doesn't have to be fancy. "for" into "for nLoop := 0 to .Count -1 do" would be lovely, but if you can add in a | character for where to leave the cursor, that would be even better."

I'll have to look into this further to see how involved it would be.

"Conditional compilation in IDE and command line."

Are you referring to the compiler directives in the Project Options ?  EWB already does conditional compilation, it just lacks the ability to define project-wide directives interactively.

"OMG - just seen you have "reset" on your comment form. Kill it - it was the worst mistake ever made on web forms. People know how to delete! But they accidentally click buttons in the bottom right because that's where submit goes! I nearly lost my message..."

It's gone now (that's the benefit of using a site generator).

Comment Matthew Jones said... Reply
""Conditional compilation in IDE and command line."

Are you referring to the compiler directives in the Project Options ?  EWB already does conditional compilation, it just lacks the ability to define project-wide directives interactively."

Yes, a global definition that I can set in a project, or on the command line to control features. So ENABLE_ADMIN might compile code not in the main build, for example, across all units.

Comment Rick said... Reply
Tim,

"So, you're asking for a button that will hide all ancillary tool windows and only show the code editor ?"

Yes, I would like the code editor window to be the only one shown when clicking a button, maximized as well. The button should also allow the code editor window to be restored along with all other ancillary tool windows to the same layout as before the button was pressed.

By the way, did you see my request for fonts and icons? Didn't see a comment about that.

I also like the idea of a feedback button in the IDE so if a problem is encountered during development that needs to be fed back to you (spelling error, etc.) then it can be done immediately and not forgotten.

Do you have a list somewhere (or even an IDE screenshot) of the enhancements that will be coming so that we don't request features that you've already implemented? A published list of all EWB enhancement requests that you have received over time would also be useful so that we don't request what someone else already has. Obviously such a list does not imply a commitment to implement and a suggestion is just a suggestion so not really an IP secret. An enhancement voting feature may also be useful.

Thanks, Rick.

Comment Uli Becker said... Reply
Tim,

I quite often modify or add datasets both in the IDE and the WebServer.

At the moment I use a Delphi tool which copies new/modified datasets, stops the service, imports these datasets and restarts the service.

It would be great to simplify that and being able to add/modify datasets using the new webinterface without the need to stop and restart the WebServer.

Thanks Uli

Comment Mario Enríquez said... Reply
Please have a flag to select if the deploy dialog should be automatically closed or not.

I find it really annoying to have to close it after every deploy....

Comment Anthony said... Reply
Looking forward to 2.07 and all the new features few requests if not already included elsewhere
* Currently must relaunch the IDE if renaming an existing dataset in the IDE
* Tree structure of form objects to determine parent object
* Next and previous buttons on the quick find bar after pressing CTRL + F
* Ability to add custom HTML code for E.g. Google Analytics
* Backup project to zip including relevant datasets used in project rather than all datasets
* I know it’s not an IDE feature but ability to force traffic to https if initially accessed via http, as apache rewrite
* Undo deletion of component
* Collapse Manager and Object Inspector and messages panels rather than just close

Comment Richard Harding said... Reply
Hi Tim,

I would like a "whole word only" option added to Find.

Richard Harding

Comment Trinione said... Reply
Tim,
Ability to specify which DataSet to import. Also, export selected DataSet/s to an ini file.

Comment Trinione said... Reply
Tim,
Ability to specify which DataSet to import. Also, export selected DataSet/s to an ini file.

Comment Walter Matte said... Reply
Tim

It would be nice to see Help in a separate non  modal window (rather than the tab) so I can drag to another monitor - allowing me to code and view help at the same time.

Walter

Comment Matthew Jones said... Reply
Presets for layouts. Ideally, ones I can set myself. But TopLeft, consume right, and TopRight, consume left are common. It would be really nice to have some way to apply these to selected components. Or to copy them from one to another. Or something. i can of course select multiple and apply changes to all, but I put it out there in case it triggers a thought.

Comment Steve Gill said... Reply
+1 for Matthew's layout suggestion.  I have a couple of form layouts I use a lot and they generally take several steps to create.  Being able to apply a layout by selecting it from a list would save a bit of time and effort.

Comment Uli Becker said... Reply
Simple cloning of existing forms like in Delphi:
1. Open an existing form
2. Rename it
3. Save as...
Done.

Comment Tim Young [Elevate Software] said... Reply
@Regarding the databases/datasets

The way that databases/datasets are stored will change quite a bit in 2.07, so you won't have to worry about the cumbersome way that they are currently managed with importing/exporting.  You'll be able to easily migrate databases/datasets from the internal web server to a production web server, and vice-versa.

Comment Anthony said... Reply
Will it also be easy to specify different development and production databases when migrating from IDE to production web servers?
Are things still on schedule to deliver a public beta for Christmas?

Comment Michael Dreher said... Reply
An IDE option would be nice, that opens the message window automatically when it's closed and the compiler detects an error.

Thanks M. Dreher

Comment Huseyin Aliz said... Reply
I am not sure if it exists in latest version/builds, but something like selecting multiple controls and chosen code in assigned for all selected, like keypressed, or keydown.. and the ide puts the code in all selected. I hope it's clear Smile

Image