1

I’m planning to recreate a Windows based desktop application as a web application which will be hosted on Azure.

I wonder what technology stack should be used to recreate this application as a WebApp.. For one, JavaScript, HTML, CSS, C# can be used. What other technology frameworks can be used?

Current desktop application contains rich GUI and has the following capabilities:

Examples of graphical capabilities:

  1. Draw rectangles using the mouse (as in PowerPoint)
  2. Display some pictures and icons on the boxes
  3. Connect rectangles using the mouse
  4. Change positions of the rectangles using Drag and drop
  5. Pan (scroll) the diagram horizontally and vertically
  6. Zoom the diagram
  7. Split the window using a splitter
  8. Display hierarchical information in a tree (pretty much like the folder structure in Windows Explorer)
  9. Dynamically (at run time) create screen elements like Push buttons, etc.
  10. Popup windows for user input (User generally provides input by selecting one or more items in a grid control, or by entering values into a table similar to a spread sheet).
  11. Table interface (data displayed in rows and columns, each cell can be edited, or contain controls like list boxes, text boxes, icons, buttons, check boxes, etc.). Also, the table contains fixed rows & fixed columns.
  12. Tabbed dialog interface (similar to sheets in Excel or Property Pages in Windows).
  13. Display 3D scenes (created in Direct3D) with panning, zooming, rotating, animating capabilities.
  14. Based on some front-end event (for example, the user clicks a button), the diagram is computed on the fly by applying some algorithm, which may take a few minutes. While the backend calculations are happening, an hour glass is displayed.
  15. Read files (typically, flat files) from local disk

Examples of Backend capabilities:

  1. Save the whole diagram to the database (like SQL Server/MySQL, etc.). The database table contains columns like the Rectangle position, and dimensions, etc.
  2. Call functions written in other languages (like C++, Java or C#) to apply some business logic.

Now, the new application should have the additional capabilities:

Deployment capabilities:

  1. Application should be platform independent (Windows, Linux, iOS, etc.)
  2. Application should be device independent (laptop/desktop/mobile device/tablet/etc.)
  3. Application and supporting database should be hosted on cloud (Azure, AWS, Google, etc.)
  4. Application should be scalable, High Available, provide DR capability, etc. (which will be taken care by the Cloud infrastructure)
0

As a starting point, you may want to look at https://github.com/jgraph/drawio , as it seems to cover much of what you intend. The usable site is https://app.diagrams.net/.

What other technology frameworks can be used?

If it's going to be a web app, it's almost certainly html, css, javascript on the client side.

The backend could be almost anything. Pretty much every language and server framework could handle this, so it is up to you on what you are comfortable supporting. The diagrams.net example appears to use Java (servlets, etc) as a backend, and serializes information to files.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.