CndRemoteDevelopment70Proposal

Major concerns of the old UI:

  1. Confusing file sharing model
  2. Configuration was proved to be error-prone step but without a way for user to understand his issues
  3. User / Host managements is a way too system specific
  4. Not all local features are supported

User's Workflow

Assumed persona: Steven.

  1. Steven is using Windows and has new version of NetBeans which he uses for C/C++ development.
  2. He have noticed new toolbar telling him his current platform is "Windows (localhost)" and decided to try remote development on his Linux server named stev-linux.
  3. He created a Welcome project on local machine in his favorite folder "D:\work". It was set as Main Project (default behavior).
  4. He clicks on "Edit..." item in the combobox at remote development toolbar
  5. The "Server List" windows popped out. Steven clicked on "Add" button
  6. In the "New Remote Host" wizard he chose the Linux server he usually use for development
  7. On the next page he entered authorization data. And watched as his server was configured and one GNU toolchain was found.
  8. He reviewed summary of his server and pressed Finish.
  9. He clicked on combobox on toolbar and chose newly added "Linux (stev-linux)" platform.
  10. He noticed as project name changed to Welcome (on stev-linux) and clicked "Build" button.
  11. In the output window he observed build process in the window title (Welcome (Build) - stev-linux", which completed successfully without additional requests.
  12. He tried "Run" and "Debug", which worked the same way as during local work.

Proposal (v.2)

N.B.: in UI instead of user@hostname we will have Platform (hostname). User name will be a property of the remote host.

1. Server List window

This is the place where user can manage development platforms.

There were an ideas to integrate this page with toolchains one or add as additional tab (because there should be a possibility to user remote hosts w/o any connection to toolchains one day). But there is no clear vision of UI here, so for now there will be only one change:

In addition to old functionality this page will provide access to a popup window with host properties, like:

  • user/password used to connect to this host
  • source management model
  • remember password option
  • allowing of UI redirection over xhost
  • maybe more

2. Adding new platform.

Clicking on add new platform will open "Add new platform" wizard:

2.1 Choose Host panel

This window provides user an option to choose a host to provide new platform Below host name there is a window which is populated by network hosts. It should provide next functionality:

  • host name
  • platform
  • simple filtering (hide hosts w/o ssh, hide hosts with the same platform as localhost, sorting by platform)

http://wiki.netbeans.org/attach/CndRemoteDevelopment70Proposal/networkneighborhood_CndRemoteDevelopment70Proposal.png

User shouldn't wait till window with network hosts will be populated. He can just enter known hostname and click Next.

This panel can also provide help text about SSH requirement for remote host. Maybe links on some help topic about firewall/ports and other connectivity issues.

NB.: idea of hosts list functionality is based on Windows's network neighborhood. There is possibility that it can be not accessible from Unix-based systems and that is shows only Windows hosts. (TODO: investigate)

2.2 Connection

This window allow user to enter his login information and track connection process.

http://wiki.netbeans.org/attach/CndRemoteDevelopment70Proposal/remotewizard2_CndRemoteDevelopment70Proposal.png

User will be notified about any issues happened during connection problems. E.g.:

  • requested server doesn't support SSH
  • login/password were rejected
  • server doesn't have required tools
  • no toolchains were found
  • some other abnormal termination of remote operation

Workflow is next: After entering Login information user clicks Connect button and can review connecting process in Details view. If there is no problem occurred confirmation error will be shown in log and "Next" button will be unlocked. Otherwise, the detailed error message will be shown in log (with clues/links to help?).

2.2 Summary

On this (last) page user will be provided with the next information: - Platform, Host, User Login - Toolchains available on this Host - An option to choose which toolchain will be default for this Platform

http://wiki.netbeans.org/attach/CndRemoteDevelopment70Proposal/remotewizardSummary_CndRemoteDevelopment70Proposal.png

3. Remote Development toolbar.

Functionality: - Active Development Platform combobox - Edit platforms button, which leads to panel, described in the next section - State of the host providing selected platform (offline, online, connected): this state button is disabled in connected/offline state and leads to "connect/authorize" functionality otherwise.

4. Project properties

Field Platform is removed and Development Host becomes Platform.

Value in the "Development Platform" combobox in the toolbar switched development server for Main Project. Switching host changes name of the project in the "Projects" view (and only there) to ProjectName (on ServerName).

http://wiki.netbeans.org/attach/CndRemoteDevelopment70Proposal/remoteToolbar_CndRemoteDevelopment70Proposal.png

N.B.: this screenshot assumes we switches development hosts for all project with value "global" as development platform. But this model was recognized as too confusing.

Another option is to provide this functionality in the project context menu to avoid using global toolbar which works only for C/C++ projects:

http://wiki.netbeans.org/attach/CndRemoteDevelopment70Proposal/contextmenu_CndRemoteDevelopment70Proposal.png

5. Sources/Path Mappings

New way of sources handling should be introduced:

  • Sources will be replicated to the remote host and build there, all local changed should be sent to the remote host. This model will be default one for the managed project.
  • For Makefile based project this model require additional knowledge about user's files participating in the build process. New UI should be introduced to add directories to the list of "replicated" ones. It can be:
  1. set up by user
  2. populated by Discovery engine (?)
  • Previous model will be available in the host properties (properties can be opened from toolbar or hosts panel described in Section 1).
Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo