Source language: Translate to:

Modulair applications

Questions about using NeoBook's scripting language

Moderator: Neosoft Support

Modulair applications

Postby ebear » Mon Mar 23, 2015 2:12 pm

Hello All,

I already had a forum topic before about another issue,http://www.neosoftware.com/community/viewtopic.php?f=1&t=20546 and until now I can not get the idea out of my head.

So I give it another try:

My office application has several, let say "modules" (Stock management, production management etc etc)
I would like to have a system where each module is a separate application (for example with the extension DLL). Each application will be opened in a rectangle of the main application (I use HPW treeMenu controlled from a database)
Benefit from this approach will be the possibility to maintain and add "modules" to the main application, without the need to recompile/replace everything. It keeps the various "modules" smaller and also licensing will be simpler.
I putted a lot of time in this system, but I found never a good solution; Running applications in a rectangle doesn't work always right etc etc.

Is there somewhere out there who had the same idea to discuss about???

Best regards,

Eric
http://www.lunarsoftware.eu - Lunar Software ERP database Development. Manufacturing processes, Document management, QMS, Stock management. Standalone solutions or connected to Helios Orange and other ERP systems.
User avatar
ebear
 
Posts: 270
Joined: Wed Jan 18, 2012 3:12 am
Location: Vrchlabi - Czech republic

Re: Modular applications

Postby DIGIROSS » Mon Mar 23, 2015 6:51 pm

I've begun work on a major project I've been dreaming/designing for awhile now. I've had thoughts about the exact same topic.

In past tests I came to the same conclusion about inconsistent results running neobook applications in a rectangle.

I've been at a crossroads myself about how to proceed with my project. I've come up with 3 ways to approach it:

1) Application that is all-encompassing (different sections are different pages, no modules)
PRO'S - All-in-one makes easy to work and move around
CON'S - Large .exe file, big memory overhead, honestly really large neobook applications seem laggy at times, updating the application can mean larger download or full install (unless a patcher program from internet)

2) Main application running modules (seperately developed applications that get launched) when necessary
PRO'S - Smaller .exe file, lower memory footprint, individual modules allow greater flexibility (basically treat the loaded application like a new window with multiple tabs rather than the run in rectangle), updating smaller parts means less to download, main application allows more cohesive program as a "whole"
CON'S - Seperate application to develop, have to pass some information back and forth (which can be minimized if programmed with saving/writing files appropriately)

3) Toolbar application for launching modules
PRO'S - Smallest .exe, lowest memory footprint, individual modules allow greater flexibility, updating smaller parts means less to download
CON'S - Seperate application to develop, no main application to unify the "parts"

I've begun with Option #2 and things are working well at the moment. I'd go into more details about my project but i'm not ready to unveil it yet. Hopes this helps a bit. Discuss.
User avatar
DIGIROSS
 
Posts: 15
Joined: Fri Apr 05, 2013 5:35 am
Location: Virginia

Re: Modulair applications

Postby Neosoft Support » Tue Mar 24, 2015 10:07 am

Have you considered using the RunNeoBook action to switch between the different modules?

From the help file:

[Use RunNeoBook to] execute another compiled NeoBook publication. The current publication will be closed and the new one opened in its place. RunNeoBook can be used to link several smaller publications together to gain the same functionality as a single larger publication. Variables can be shared between publications.

When using this option to link multiple publications, the first publication must be compiled as a fully executable exe or runtime package (with NBRun5.exe). Other publications in the group can be compiled as runtime packages or web browser plug-ins to conserve space.
NeoSoft Support
Neosoft Support
NeoSoft Team
 
Posts: 5593
Joined: Thu Mar 31, 2005 10:48 pm
Location: Oregon, USA

Re: Modulair applications

Postby stu » Tue Mar 24, 2015 11:47 am

Haya!

I worked on a similar project using a fullscreen work desktop containing nothing but a menu that linked to other 5 applications (Customers, Orders, Stock, Stats, Reports) and a configuration page that stores global variables that all applications share. Each modules containing its own tabs, pages, customwindows, etc. Recently I added the possibility to compare its own checksum with a hash stored online and update itself if they don't match with a simple FTP connection that downloads and overwrites the EXEs. So as DIGICROSS says his option No 2 its the way to go, IMO.
User avatar
stu
 
Posts: 318
Joined: Wed Aug 07, 2013 11:37 am

Re: Modulair applications

Postby DIGIROSS » Tue Mar 24, 2015 4:57 pm

As a follow up to the dev post, I created a test application to us the RunNeobook and it works well. When compiling the bare modules as .pkg the module is a mere 3k, if it's done as an .exe then its 736k so size is a big savings.

However, with the RunNeobook it will always close the previous application which for my project won't work since it's a main application and i need/want to launch the module section (i.e.- Customers) into it's own window with navagation etc. but still see the main application and when done save the data and the main application is still there for the other features

I noticed a "Close Window" checkbox in the RunNeobook, however checked or unchecked it still closed the window to launch the other one. Bug maybe? Interesting command anyways.

Thanks for starting this topic, as a developer we constantly have to be thinking about the best solutions for the job.
User avatar
DIGIROSS
 
Posts: 15
Joined: Fri Apr 05, 2013 5:35 am
Location: Virginia

Re: Modulair applications

Postby Neosoft Support » Tue Mar 24, 2015 5:25 pm

The CloseWindows checkbox closes open windows created with ImageWindow, TextWindow or CustomWindow. When unchecked, these windows will remain open after loading the other publication.
NeoSoft Support
Neosoft Support
NeoSoft Team
 
Posts: 5593
Joined: Thu Mar 31, 2005 10:48 pm
Location: Oregon, USA

Re: Modulair applications

Postby DIGIROSS » Tue Mar 24, 2015 5:38 pm

Ahhh gotcha, makes sense.
User avatar
DIGIROSS
 
Posts: 15
Joined: Fri Apr 05, 2013 5:35 am
Location: Virginia

Re: Modulair applications

Postby ebear » Tue Mar 24, 2015 6:23 pm

Hello All,

Very interesting suggestions, but not yet where I'm looking for. Of cause I try to archive something that's maybe even not possible right now ;-) In my case archiving a smaller footprint of the modules isn't really necessary.

The main problem I have is that I use a main treemenu, if I use the RunNeoBook option this will not work anymore. See image:

Image

I tried also an Menu (menu bar) application with the modules running as an separate application, this gives in my opinion not a real user friendly environment. Having the menu bar running on the left side of the screen, and the module next to it, is problematic with different screen resolutions. Also users closing the module and the menu bar not visible on the screen brings confusion.

The RunInRectangle was the best solution if worked, even now I did some tests but no luck.

Regards,

Eric
http://www.lunarsoftware.eu - Lunar Software ERP database Development. Manufacturing processes, Document management, QMS, Stock management. Standalone solutions or connected to Helios Orange and other ERP systems.
User avatar
ebear
 
Posts: 270
Joined: Wed Jan 18, 2012 3:12 am
Location: Vrchlabi - Czech republic

Re: Modulair applications

Postby DIGIROSS » Wed Mar 25, 2015 5:11 am

Thanks for the image, it helps to better visualize what your intending. I'm no expert but honestly I think Option #1 (All-in-One) in my above post is going to be your best option since the run in rectangle doesn't work that well.

Any updates will just require a larger download but with modern internet speeds it won't be an issue. Back in the day of 2400 baud modems yes, but nowadays most people have atleast DSL connection.

Also, the larger memory footprint is negated by modern computers. Hard to run across a computer that isn't atleast Windows Vista or higher and 2-4 gig RAM or higher.
User avatar
DIGIROSS
 
Posts: 15
Joined: Fri Apr 05, 2013 5:35 am
Location: Virginia

Re: Modulair applications

Postby Gaev » Wed Mar 25, 2015 5:45 am

Two questions ...

a) Will there ever be a requirement to have more than one "module" to be running at any one time ?

b) Does selection of a "module" (from the left panel) automatically close the "module" running in the right panel ?
User avatar
Gaev
 
Posts: 3718
Joined: Fri Apr 01, 2005 7:48 am
Location: Toronto, Canada

Re: Modulair applications

Postby Neosoft Support » Wed Mar 25, 2015 9:59 am

Since RunNeoBook allows you to leave custom windows open between modules, put your menu in a fixed-position custom window. The menu window will stay open between modules allowing you to navigate between them. Here is a sample pub:

http://www.neosoftware.com/software/pubs/ModularAppExample.zip
NeoSoft Support
Neosoft Support
NeoSoft Team
 
Posts: 5593
Joined: Thu Mar 31, 2005 10:48 pm
Location: Oregon, USA

Re: Modular applications

Postby ebear » Wed Mar 25, 2015 10:48 am

Hello Dave and the rest,

This sample is really interesting approach, I'm going to do some tests with it. Thanks a lot.

Gaev,

Two questions ...

a) Will there ever be a requirement to have more than one "module" to be running at any one time ?
No only one module will run at a time. The user will switch between these.

b) Does selection of a "module" (from the left panel) automatically close the "module" running in the right panel ?
Yes as above, the open module will be closed when another is selected.

The main reason is that a solution will give the possibilities to add "on the run" a new module. As we normally would replace the complete application, with my idea it is enough to copy the new module to the PubFolder and to add the module to the Tree Menu database. After a DBRefesh the module will be available for the user. Also an update on one module will not affect the whole system.
This means that I can work on each module separate. Of cause there are more advantages in this modular system like file size etc, but that's for me only a extra...

All thanks a lot, I will do some tests with the approach Dave created and will report back.

Also if someone interested in the way I use the HPW tree menu please let me know. I'm glad to share.

Rest regards,

Eric
http://www.lunarsoftware.eu - Lunar Software ERP database Development. Manufacturing processes, Document management, QMS, Stock management. Standalone solutions or connected to Helios Orange and other ERP systems.
User avatar
ebear
 
Posts: 270
Joined: Wed Jan 18, 2012 3:12 am
Location: Vrchlabi - Czech republic

Re: Modulair applications

Postby Gaev » Wed Mar 25, 2015 2:53 pm

Eric:

One "thinking out of the box" type of design you might consider is ...

1) have each module run as a separate publication e.g a.exe, b.exe, c.exe etc. ... make sure each has ...

- identical width and height
- a (placeholder) rectangle on the left for the menu items

2) When user clicks on one of the menu item for one of the other Modules ...
Code: Select all
SetVar "[NextAction] "name of corresponding App"
Exit "" ""


3) in each of the publications' Shutdown section ...
Code: Select all
Run "[NextAction]" etc. etc.
Delay "x000" ... optional


4) in each of the publications' Startup section, populate the (placeholder) Rectangle ... do something like this ...
Code: Select all
SetVar "[CallFileName]" "![PubDir]PopulateMenuRectangle"
Call "[CallFileName]" "optional parameters"


Just place the function file called PopulateMenuRectangle in the same folder as the module Apps.



You can tweak it a bit (to give the user the impression that it is one and the same Application) by exploiting NeoBook Global Variables ...

[WindowState]
[WindowsOrder]
[WindowLeft]
[WindowTop]

... and perhaps even replace the Delay command (in the exiting App) with something in the starting App that explicitly closes it.
User avatar
Gaev
 
Posts: 3718
Joined: Fri Apr 01, 2005 7:48 am
Location: Toronto, Canada

Re: Modulair applications

Postby DIGIROSS » Thu Mar 26, 2015 6:24 am

Neosoft Support wrote:Since RunNeoBook allows you to leave custom windows open between modules, put your menu in a fixed-position custom window. The menu window will stay open between modules allowing you to navigate between them. Here is a sample pub:

http://www.neosoftware.com/software/pubs/ModularAppExample.zip


Interesting example, the more I use NeoBook the more I realize it can do just about anything. The NeoAppBuilder will be a nice addition, but also I can't wait for updates to the core since I develop for desktops mostly. Cheers! :P
User avatar
DIGIROSS
 
Posts: 15
Joined: Fri Apr 05, 2013 5:35 am
Location: Virginia

Re: Modular applications

Postby ebear » Fri Mar 27, 2015 7:47 am

Hello All,

After a few days of experimenting with the example of Dave and some extra from me I'm pretty close to the perfect solution.
Only one problem I didn't solve till now:

- I'm building my applications for a minimum resolution of 1280 x 800, we have a lot of tablets etc with this resolution. Next to the tablets the most monitors in my company are 1920 x 1080.

In Dave's example the screen size is the same, but I need to start the application in full screen. Now when switching between the modules you see the module grow from 1280 x 800 to full screen on a 1920 x 1080 monitor. Hopefully my explanation is understandable ;-)

This looks not very professional. If there is a way to prevent this, I think the "Modular application" issue is solved and I will be glad to share.

Best regards,

Eric
http://www.lunarsoftware.eu - Lunar Software ERP database Development. Manufacturing processes, Document management, QMS, Stock management. Standalone solutions or connected to Helios Orange and other ERP systems.
User avatar
ebear
 
Posts: 270
Joined: Wed Jan 18, 2012 3:12 am
Location: Vrchlabi - Czech republic

Next

Return to NeoBook Action Commands

Who is online

Users browsing this forum: No registered users and 1 guest

cron