A shared network copy removes the need to reinstall the view-only application on 7–10 laptops after every screen change. Place the complete built application in a controlled file-server directory and give each viewer a shortcut to the executable; use the browser snapshot server only when browser access matters more than live desktop behavior. Validate permissions, dependencies, display scaling, and update handling before making the shared copy the production entry point.
The number that matters is the number of independently maintained copies. A 43-inch plant display and a laptop can show the same values, but ten local installations create ten opportunities for version drift, missing files, and inconsistent scaling.
Symptoms and deciding constraints
The primary symptom is administrative: every display edit triggers another round of copying or installation. The secondary symptom is presentation-related: the same build can appear correct on the development PC but compressed or squashed on another PC. Treat these as separate faults. Central deployment addresses version distribution; client display configuration addresses geometry.
| Observation | Likely mechanism | Number or limit that matters | Where to read it |
|---|---|---|---|
| Every manager requests the latest build | Each laptop has an independent application copy | 7–10 maintained copies | Application inventory and shortcut targets |
| A browser shows an intermittently updated image |
SimpleWebServer publishes a snapshot of one form |
Refresh interval of several seconds | Server component configuration and browser behavior |
| The application looks squashed on selected PCs | Client resolution, display scaling, font scaling, or fixed-layout assumptions differ | Client-specific resolution and scaling values | Operating-system display settings and application layout properties |
| The shared executable does not start | Share permissions, execution policy, missing runtime files, or blocked network access | The failing path and security decision | Shortcut target, file-server permissions, and the client event or security log |
| Viewers see different revisions | Shortcuts point to different locations or an old process remains open | Build identity and executable path | Application version display, file properties, and process image path |
Central-distribution mechanism
A local installation couples the application version to each laptop. Replacing the build on one machine changes only that machine. A shared-file deployment reverses that relationship: every shortcut resolves to one executable set on the plant file server, so the next application launch loads the centrally stored revision.
This design centralizes files, not execution. Each laptop still runs its own process and establishes whatever data connections the application normally uses. Ten viewers can therefore create more client sessions and polling traffic than one centrally running instance. Because the screens are display-only, remove or disable control paths in the application itself; a read-only operating intention is not a security boundary if writable controls or credentials remain present.
SimpleWebServer changes the delivery mechanism. It exposes a snapshot of one form and refreshes that snapshot automatically every several seconds. That suits passive status viewing, but it is not equivalent to a continuously rendered desktop client. The browser sees published images at the configured cadence, so short-lived changes between refreshes may not be visible.
ClickOnce retains a per-user application while automating update discovery. The deployment is published through a web server, users follow an installation link, and the application checks the deployment location again when it starts. This reduces manual redistribution but introduces publishing configuration and deployment-state behavior that must be tested.
Deployment-method comparison
| Method | Client experience | Update path | Primary constraints | Best fit |
|---|---|---|---|---|
| Shared executable | Desktop application launched from a network shortcut | Replace the centrally hosted application set | File-server availability, permissions, runtime dependencies, and files held open during updates | Logged-in plant-network users who need the normal application display |
SimpleWebServer |
Browser view of one form snapshot | Change the centrally running form | Firewall rules, browser reachability, one-form scope, and several-second refresh behavior | Passive browser viewing where snapshot latency is acceptable |
ClickOnce |
Installed desktop application | Startup checks the published web location for updates | Publishing quirks, web-server configuration, client trust, and update testing | Users who need local execution with managed updates |
| Remote desktop or VNC-style access | Users view a centrally running session | Update the host copy | Session sharing, credentials, concurrent access, licensing, and operational-security policy | A controlled viewer host with an approved remote-access design |
For the stated 7–10 viewers, the shared executable is the shortest path when all clients already authenticate to the same plant file server. Choose the web snapshot only after accepting its refresh interval and limited interaction model. Choose remote access only when the site can define whether viewers share one session or receive separate sessions.
Shared-executable deployment procedure
- Confirm the view-only boundary. Review every displayed form and navigation path. Remove commands that write values, start equipment, acknowledge conditions, change setpoints, or expose configuration. Apply read-only data permissions where the data source supports them.
- Build a release set. Collect the executable and every file it requires at runtime. A successful launch from the development output directory does not prove that a copied executable alone contains all required libraries, configuration, images, or other resources.
- Create a controlled share. Place the release set in a plant file-server directory reachable by the intended users. Grant viewers read and execute access; reserve modification rights for the maintainer or deployment account.
- Test from a representative laptop. Sign in as a normal viewer, browse to the shared directory, and launch the executable. Confirm startup, data updates, navigation, and access to all resources without relying on development-machine paths.
- Create desktop shortcuts. Point every client shortcut to the same network executable path. Check the shortcut target directly on each laptop rather than relying on its displayed name.
- Control the update window. Have viewers close the application before replacing the shared release set. Open processes can hold files or leave a user on the previous in-memory revision until restart.
- Deploy the complete set. Update the executable and associated runtime files together. Avoid mixing files from different builds, because partial replacement can create startup or behavior differences that resemble an application defect.
- Restart and verify. Launch through the same shortcut a normal user will use, then confirm the build identity and live values from more than one client.
Keep the previously accepted release available through the site’s normal backup or version-retention process. If the new build fails, restoring a known complete set is safer than replacing individual files until the application happens to start.
Browser-snapshot procedure
Use SimpleWebServer when users specifically need a browser and a snapshot refreshed every several seconds meets the monitoring requirement. Firewall behavior is a recurring obstacle because the browser must reach the host service across the plant network.
- Select the published form. Designate the one form whose snapshot will be exposed. Put all essential metrics on that form because the component’s stated scope is one form.
- Place the host deliberately. Run the source application and web component on a machine intended to remain available while managers view the page. Browser availability now depends on that host, its application process, and its network path.
- Configure network access. Read the listening address and port from the component or host configuration. Request only the firewall path required between the viewer network and that endpoint.
- Test locally, then remotely. Open the page on the host first. Next, test from a normal viewer laptop; a local success followed by a remote failure points toward addressing, routing, firewall, or name-resolution work rather than screen logic.
- Measure useful refresh behavior. Change a displayed source value and observe when the browser snapshot changes. Verify that the several-second cadence is acceptable for the metrics and that no operational decision depends on events shorter than the observed interval.
The published page remains a viewing surface, not proof of data freshness. Add a visible changing value or application timestamp if the project already has one available; otherwise compare the browser with the running source form during acceptance testing.
Functional and visual verification
Verification must prove version consistency, data freshness, and screen geometry independently. A correct version can still display stale data, and a live connection can still render a distorted layout.
- Open the application from two viewer laptops and record the executable path shown by the shortcut or running process.
- Confirm both paths resolve to the same shared release set and that both clients report the intended build identity through file properties or an application version display.
- Compare several changing plant values with the established reference display. Include a value that changes often enough to reveal a frozen connection.
- Close one client, deploy a controlled screen change, and restart that client. Confirm the change appears without copying files to the laptop.
- Repeat the restart on a second client to prove that update behavior follows the shared path rather than a machine-specific cache or old shortcut.
- Compare the development PC and an affected laptop for operating-system resolution, display scale, text size, and usable desktop area. Then inspect the application’s fixed dimensions, anchoring, docking, and automatic-scaling choices.
- Test the smallest and largest client display configurations used in service. Check clipped labels, overlapping controls, stretched graphics, unreadable text, and hidden navigation elements.
A squashed screen is usually a coordinate-system problem: the form was laid out for one logical-pixel or font environment and another client maps those dimensions differently. Match the client display settings where operational policy permits, or revise the screen layout so controls resize and anchor predictably. Changing central deployment will not by itself correct client-side scaling.
Recurring deployment pitfalls
Copying only the .exe. Development machines often already contain files or runtimes that mask an incomplete deployment. Test the full release set under a normal user account on a machine that was not used to build it.
Updating while clients are running. A shared location gives one update point, but a running process may retain the old code in memory or lock files. Use a defined close-update-restart sequence and verify that no viewer remains on the previous revision.
Confusing view-only screens with read-only security. Hiding buttons reduces accidental operation but does not remove write capability from drivers, credentials, or unseen navigation paths. Restrict permissions at the data-access layer and test with the actual viewer account.
Treating snapshots as real-time displays. A several-second browser refresh can omit a short transient. Use it for metrics whose required observation interval is slower than the measured refresh behavior.
Using one remote session without an access model. Multiple users can contend for the same pointer, keyboard, session, or login. Define concurrency, authentication, audit expectations, and session ownership before using remote desktop software for plant information.
Diagnosing geometry through resolution alone. Two PCs can use similar pixel dimensions but different display or font scaling. Record all display settings and inspect the application’s layout behavior before rebuilding screens.
FAQ
What happens if users leave the shared AdvancedHMI application open during an update?
They can remain on the old in-memory revision, and open files may block or complicate replacement. Close all clients, update the complete release set, and restart through the shared shortcut.
What happens if I copy only the AdvancedHMI executable to the server?
The application may fail to start or may lose configuration, graphics, or other functions when required runtime files are absent. Deploy and test the complete build output needed by the application.
What happens if the SimpleWebServer page works locally but not from a manager’s laptop?
Check the configured listening address and port, host firewall, routing, name resolution, and client access to the host. A local-only success isolates the problem to network exposure rather than the displayed form.
What happens if the shared screen still looks squashed on some laptops?
Compare resolution, operating-system display scale, text size, and usable desktop area, then inspect anchoring and automatic layout behavior. Central file deployment keeps versions aligned but does not normalize each client’s display geometry.
When should I stop troubleshooting and contact official support?
Stop when a reproducible failure remains after testing the same complete release set, user permissions, network path, display settings, and application logs on a representative client. Record the build identity, failing executable path, host and client configuration, exact reproduction sequence, screenshots, and relevant diagnostic messages. Escalate that package through the product’s official support channel rather than changing unverified runtime or security settings.